24小时热门版块排行榜    

查看: 3388  |  回复: 11

lishuying89

金虫 (小有名气)

[求助] 请教matlab如何增加迭代次数已有3人参与

我正在使用迭代法求解非线性方程组,但是运行过程中总是提示:“Maximum number of iterations reached:increase options.Maxlter.”请问如何增加迭代次数呢?万分感谢!
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

reko34

木虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
你用的迭代程序是自己编的么?这提示怎么看都是人为设置的上限,MATLAB不会去管你迭代了多少次,就算死循环也会一直运行下去。
2楼2014-05-07 21:17:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

f.j.y.good

铁虫 (初入文坛)

【答案】应助回帖

感谢参与,应助指数 +1
引用回帖:
2楼: Originally posted by reko34 at 2014-05-07 21:17:19
你用的迭代程序是自己编的么?这提示怎么看都是人为设置的上限,MATLAB不会去管你迭代了多少次,就算死循环也会一直运行下去。

这个上线肯定是程序里面编写的,不过你可能是想增加运行的内存,那么可以在perference里面的java heap memory中增大内存
新技术,新未来,开创美好明天
3楼2014-05-07 21:28:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

reko34

木虫 (正式写手)

引用回帖:
3楼: Originally posted by f.j.y.good at 2014-05-07 21:28:31
这个上线肯定是程序里面编写的,不过你可能是想增加运行的内存,那么可以在perference里面的java heap memory中增大内存...

我也认为上限是人编的,但这样就神奇了,照理说迭代方程要从原始方程推出来,对每个具体问题迭代都要编不同的程序。如果不是LZ编的,这万能的迭代法是怎么回事?如果是LZ编的,这上限又怎么解释?
4楼2014-05-07 21:47:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lishuying89

金虫 (小有名气)

引用回帖:
3楼: Originally posted by f.j.y.good at 2014-05-07 21:28:31
这个上线肯定是程序里面编写的,不过你可能是想增加运行的内存,那么可以在perference里面的java heap memory中增大内存...

我的程序是这样写的:global iii
iii = 0.0000001*i;
jj=i-3327;
z(jj) = iii;
%迭代初值,无影响
x0=[1;2;3];
        options=optimset('Display','iter');
%调用answer.m文件
%x-x(1);y-x(2);z1;z2-x(3)
        [x,fval] = fsolve(@answer,x0,options);
%结果的第一行x(1)为x
getX(jj) = x(1);
end
plot(z,getX)
没有涉及迭代次数啊,调用的answer函数里也没有涉及迭代次数,只是写了迭代的方程组。
5楼2014-05-08 08:40:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

reko34

木虫 (正式写手)

【答案】应助回帖

引用回帖:
5楼: Originally posted by lishuying89 at 2014-05-08 08:40:00
我的程序是这样写的:global iii
iii = 0.0000001*i;
jj=i-3327;
z(jj) = iii;
%迭代初值,无影响
x0=;
        options=optimset('Display','iter');
%调用answer.m文件
%x-x(1);y-x(2);z1;z2-x(3)
         = fsolv ...

赌5毛问题出在这:
options=optimset('Display','iter')
百度知道:创建options结构变量,其中display的值为iter,即在每次优化迭代的时候都显示输出

你让程序在迭代过程中光计算不显示试试,肯定没这问题。
6楼2014-05-08 09:48:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

f.j.y.good

铁虫 (初入文坛)

【答案】应助回帖

引用回帖:
5楼: Originally posted by lishuying89 at 2014-05-08 08:40:00
我的程序是这样写的:global iii
iii = 0.0000001*i;
jj=i-3327;
z(jj) = iii;
%迭代初值,无影响
x0=;
        options=optimset('Display','iter');
%调用answer.m文件
%x-x(1);y-x(2);z1;z2-x(3)
         = fsolv ...

我知道你的问题了,你在options把最大的迭代次数增大就可以了,还有在options还可以设置误差容限或者具体的算法,直接看matlab中的help文件
新技术,新未来,开创美好明天
7楼2014-05-09 10:04:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

f.j.y.good

铁虫 (初入文坛)

【答案】应助回帖

★ ★ ★ ★ ★
lishuying89: 金币+5, ★★★★★最佳答案 2014-08-18 20:19:47
引用回帖:
4楼: Originally posted by reko34 at 2014-05-07 21:47:56
我也认为上限是人编的,但这样就神奇了,照理说迭代方程要从原始方程推出来,对每个具体问题迭代都要编不同的程序。如果不是LZ编的,这万能的迭代法是怎么回事?如果是LZ编的,这上限又怎么解释?...

我看过他的函数是Matlab自带的函数,在options里面可以设置最大的迭代次数,否则为默认值
新技术,新未来,开创美好明天
8楼2014-05-09 10:15:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lishuying89

金虫 (小有名气)

引用回帖:
7楼: Originally posted by f.j.y.good at 2014-05-09 10:04:46
我知道你的问题了,你在options把最大的迭代次数增大就可以了,还有在options还可以设置误差容限或者具体的算法,直接看matlab中的help文件...

请问具体的语句怎么写呀?哪个表达式表示的是迭代次数呀?谢谢!
9楼2014-05-09 10:50:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lishuying89

金虫 (小有名气)

引用回帖:
7楼: Originally posted by f.j.y.good at 2014-05-09 10:04:46
我知道你的问题了,你在options把最大的迭代次数增大就可以了,还有在options还可以设置误差容限或者具体的算法,直接看matlab中的help文件...

options(14)=0*n
功能:最大迭代次数,该值缺省时被置为n的100倍,n为自变量x的个数,在fmins中,缺省为n的200倍,在fminu中,为500n.
我再百度上找到这个,但是还是不知道怎么写具体的语句···
10楼2014-05-09 10:51:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 lishuying89 的主题更新
信息提示
请填处理意见