24小时热门版块排行榜    

查看: 3004  |  回复: 6

cq0932

金虫 (初入文坛)

[求助] 求教fsolve如何查看每次迭代的x值?

利用fsolve可以求解非线性方程的数值解,但是只有最后的结果,没有每步迭代的x取值。
在求解之前设置迭代显示的选项
options=optimset('Display','iter');

输出窗口中显示如下:
                                         Norm of        First-order         Trust-region
Iteration  Func-count       f(x)               step                   optimality          radius
     0          2            2.61482e-007                                 0.000171               1
     1          3            2.61482e-007     0.00152725         0.000171               1
     2          5            1.51338e-007     0.000381811       0.000109        0.000382
     3          6            1.51338e-007     0.000954528       0.000109        0.000955
     4          8            8.78862e-008     0.000238632      8.52e-005        0.000239
     5         10           7.98377e-008     0.00059658        8.75e-005        0.000597
     6         11           7.98377e-008     0.00059658        8.75e-005        0.000597
     7         13           6.53061e-008     0.000149145       8.2e-005        0.000149
     8         15           5.49734e-008     0.000149145      7.79e-005        0.000149
     9         17           4.84382e-008     0.000149145      7.17e-005        0.000149
    10        19           4.1506e-008       0.000149145      6.76e-005        0.000149
    11        21           3.68301e-008     0.000149145      6.25e-005        0.000149
    12        23           3.1814e-008       0.000149145      5.91e-005        0.000149
    13        25           2.87067e-008     0.000149145      5.52e-005        0.000149
    14        27           2.5256e-008       0.000149145      5.26e-005        0.000149
    15        29           2.33751e-008     0.000149145      4.98e-005        0.000149
    16        31           2.10974e-008     0.000149145       4.8e-005         0.000149

输出结果只有f(x)的值,请问如何设置才能看到每步迭代的x取值?
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csgt0

荣誉版主 (著名写手)

彩色挂图


感谢参与,应助指数 +1
xiegangmai: 金币+1, 应助指数-1, 谢谢参与,非应助请勿选择“应助回帖” 2012-11-24 19:45:06
不知道直接怎么设置,自己修改迭代函数吧。
showmethemoney
2楼2012-11-22 16:17:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csgt0

荣誉版主 (著名写手)

彩色挂图

【答案】应助回帖

★ ★
xiegangmai: 金币+2, 谢谢参与 2012-11-24 19:45:25
这样行不,x有3个的,复数输出如下
                                Norm of      First-order
Iteration  Func-count         f(x)          step          optimality   CG-iterations
x(1)=1.000000+0.000000i
x(2)=1.000000+0.000000i
x(3)=1.000000+0.000000i
     0          4              267.268                          89.2
x(1)=1.000000+0.000000i
x(2)=1.000000+0.000000i
x(3)=1.000000+0.000000i
     1          8                267.268        7.26736           89.2            0
x(1)=0.588062+0.400105i
x(2)=0.223569+0.191305i
x(3)=-0.158092+-0.995244i
     2         12                73.6223        1.81684           13.8            0
x(1)=1.914850+-0.478769i
x(2)=-0.760707+1.025506i
x(3)=-2.589293+-2.754627i
     3         16                24.8735        3.63368           36.1            0
x(1)=1.473642+-0.017474i
x(2)=-0.533834+1.507987i
x(3)=-2.481998+-3.272860i
     4         20                0.30956       0.985798           2.03            0
x(1)=1.513119+-0.047554i
x(2)=-0.438356+1.425158i
x(3)=-2.617916+-3.192791i
     5         24            0.000498233       0.208146          0.126            0
x(1)=1.514985+-0.047818i
x(2)=-0.436067+1.426855i
x(3)=-2.617734+-3.195948i
     6         28           1.45562e-010     0.00465524      7.53e-005            0
x(1)=1.514984+-0.047818i
x(2)=-0.436070+1.426856i
x(3)=-2.617733+-3.195949i
     7         32           2.43937e-023    3.0415e-006      1.52e-011            0

Equation solved.

fsolve completed because the vector of function values is near zero
as measured by the default value of the function tolerance, and
the problem appears regular as measured by the gradient.




xlast =

  1.514983763593827 - 0.047817849126132i
-0.436069706071287 + 1.426855556443150i
-2.617733027757387 - 3.195948930097455i
showmethemoney
3楼2012-11-22 17:01:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cq0932

金虫 (初入文坛)

引用回帖:
3楼: Originally posted by csgt0 at 2012-11-22 17:01:14
这样行不,x有3个的,复数输出如下
                                Norm of      First-order
Iteration  Func-count         f(x)          step          optimality   CG-iterations
x(1)=1.000000+0.000 ...

请问这是用什么命令调出来的?
4楼2012-11-24 15:41:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

东平Modelon

金虫 (小有名气)

【答案】应助回帖


xiegangmai: 金币+1, 谢谢参与 2012-11-25 20:04:10
你在定义
function y = f(x)
的第二行加上
x  = x
应该就可以了吧。
5楼2012-11-25 01:02:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csgt0

荣誉版主 (著名写手)

彩色挂图

【答案】应助回帖

引用回帖:
4楼: Originally posted by cq0932 at 2012-11-24 15:41:32
请问这是用什么命令调出来的?...

我修改了迭代函数的输出。当然5楼那个方法好像也不错啊
showmethemoney
6楼2012-11-26 11:09:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

szuwusongbin

木虫 (正式写手)

那个几个参数都不知道啊~Iteration  Func-count         f(x)          step          optimality   CG-iterations这里面的好像我的optimality好像很大啊~
7楼2016-01-28 00:17:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 cq0932 的主题更新
信息提示
请填处理意见