全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
10309 5
2008-10-30
<p>方程如下:</p><p>p=a+b<sub>1</sub>/(1+x)+b<sub>2</sub>/(1+x)<sup>2</sup>+b<sub>3</sub>/(1+x)<sup>3</sup>, 除x为未知外,其他变量已知,如何求解?谢谢</p>

[此贴子已经被作者于2008-10-31 11:28:53编辑过]

<br>eblog
 金钱 +50
 魅力 +20
 经验 +30
 奖励 "good question!" 2008-10-31 16:11:09
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2008-10-31 16:10:00

可利用命令nl,编写程序解决之

假设要求方程:1.47/(1+X)+2.56/(1+X)^2+3.19/(1+X)^3-7=0  的解,求解步骤如下:

*第一步
clear all
program nlfaq
syntax varlist(min=1 max=1) [if], at(name)
tempname X A B C
scalar `X' = `at'[1, 1]
scalar `A' = `at'[1, 2]
scalar `B' = `at'[1, 3]
scalar `C' = `at'[1, 4]
tempvar yh
gen double `yh' = 1.47/(1+`X')+2.56/(1+`X')^2+3.19/(1+`X')^3-6 in 1
replace `yh' = `A'- (1+`X') in 2
replace `yh' = `B'-(1+`X')^2 in 3
replace `yh' = `C'-(1+`X')^3 in 4
replace `varlist' = `yh'
end

*第二步
clear
set obs 4
generate y = 0
replace y = 1 in 1

*最后求解
nl faq @ y, parameters(X A B C) initial(X 1 A 1 B 1 C 1)

计算结果如下所示:
 
(obs = 4)

Iteration 0:  residual SS =  76.58403
Iteration 1:  residual SS =  32.03028
Iteration 2:  residual SS =   .011014
Iteration 3:  residual SS =  1.44e-06
Iteration 4:  residual SS =  2.56e-14
Iteration 5:  residual SS =  4.44e-31

      Source |       SS       df       MS
-------------+------------------------------         Number of obs =         4
       Model |           1     4         .25         R-squared     =    1.0000
    Residual |  4.4373e-31     0           .         Adj R-squared =         .
-------------+------------------------------         Root MSE      =         .
       Total |           1     4         .25         Res. dev.     =  -273.754

------------------------------------------------------------------------------
           y |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
          /X |   .0139472          .        .       .            .           .
          /A |   1.013947          .        .       .            .           .
          /B |   1.028089          .        .       .            .           .
          /C |   1.042428          .        .       .            .           .
------------------------------------------------------------------------------

可以看出,方程的解 X=.0139472

以上方法比较繁杂,权当抛砖引玉,希望有人给出更简便的方法。

 

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2008-10-31 18:46:00

回复:(eblog)可利用命令nl,编写程序解决之假设要求...

问题补充:谢谢版主!但是看不懂程序。我要算出来1000家上市公司在上述方程(p,a等已知变量为1*n阶向量)中的每一个x,我应该怎么处理。

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2008-11-1 08:54:00
参见一元三次方程求根公式?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2008-11-2 14:35:00
以下是引用sungmoo在2008-11-1 8:54:00的发言:
参见一元三次方程求根公式?

这个不是重点,比如要求方程:1.47/(1+sqrt(X))+2.56/(1+ln(X))^2+3.19/(1+X)^3-7=0 的解,你的求根公式可能就无用武之地了。但对上面的程序稍加变动即可得出方程的解: X=0.7240698

[此贴子已经被作者于2008-11-2 14:38:07编辑过]

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2008-12-28 02:45:00
在stata中我不会做了,最后我用matlab解决了上述问题,谢谢版主!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群