24小时热门版块排行榜    

查看: 1022  |  回复: 5
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

chuzhenhui

金虫 (小有名气)

[交流] 【求助】用fsolve求解非线性一元方程 已有2人参与

我用fsolve()求解非线性方程,程序如下:
>> t=@(D)(8/pi^2)*exp(-12000000*pi^2*D)-0.092034;
>> [D,f,flag,out]=fsolve(t,0)

运行后结果如下:
Optimization terminated: norm of relative change in X is less
than max(options.TolX^2,eps) and  sum-of-squares of function
values is less than sqrt(options.TolFun).


D =

  1.8370e-008


f =

-8.6133e-006


flag =

     2


out =

       iterations: 22
        funcCount: 36
        algorithm: 'trust-region dogleg'
    firstorderopt: 44.0855
          message: [1x167 char]

请问红色部分是什么意思?我的这个解好像不是很准确,怎么改进啊?
要用optmiset设置参数吗?
大侠指导下,感激不尽!!
回复此楼
找到自己。
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

change0618

铁杆木虫 (著名写手)

方丈大师

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
robert2020(金币+1):谢谢提供意见,欢迎常来仿真模拟版交流。 2010-05-13 22:31:36
怎么成了非线性方程了啊?
变换一下不就成了一个计算式子啊?
D=log(0.092034*pi^2/8)/(-12000000*pi^2)
D =

    1.836935307093815e-008
2楼2010-05-13 19:34:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

change0618

铁杆木虫 (著名写手)

方丈大师

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
nono2009(金币+1):鼓励应助! 2010-05-14 13:12:52
你可以将12000000*D作为新未知数D,结果最后除去12000000即可
>>t=@(D)(8/pi^2)*(exp(-pi^2*D)+(1/9)*exp(-9*pi^2*D)+(1/25)*exp(-25*pi^2*D))-0.907966;
>>[D,f,flag,out]=fsolve(t,0)

D =

   0.001111597655874


f =

    5.475275788313638e-011


flag =

     1


out =

       iterations: 3
        funcCount: 8
        algorithm: 'trust-region dogleg'
    firstorderopt: 1.163031023008677e-009
          message: [1x695 char]



>> D/12000000

ans =

    9.263313798950567e-011

[ Last edited by change0618 on 2010-5-14 at 12:47 ]
4楼2010-05-14 12:46:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

change0618

铁杆木虫 (著名写手)

方丈大师

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
adu886886(金币+1):鼓励交流 2010-05-14 14:56:47
好像你n值逐渐增大,D值会不断增加
可以用symsum对级数求和,但是我没有求出来
5楼2010-05-14 14:24:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 chuzhenhui 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见