24小时热门版块排行榜    

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

lnjzh

银虫 (正式写手)

[求助] 这个简单的迭代怎么编程序,matlab语言的

Z=1/(1-h)-h*b/(1+h)
h=a/Z
a,b为常数
回复此楼

» 猜你喜欢

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

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

寒武纪000

银虫 (初入文坛)

【答案】应助回帖

★ ★ ★ ★ ★ ★
lnjzh: 金币+5, ★★★★★最佳答案, 谢谢你。 2013-02-14 10:46:08
csgt0: 金币+1, 谢谢 2013-02-16 09:20:15
你这应该就是求根吧。用fixed position interation 应该可以写出来吧
iter = 0;
while (1)
    xrold = xr;
    xr = func(xr);
    iter = iter +1;
    if xr~=0,ea = abs((xrold-xr)/xr)*100;end
    if ea <= es, break,end
end
root = xr; disp(xr);
end
这是我之前写的Mfile里面的,你把X换成你的Z 应该就可以了吧。
10楼2013-02-09 03:46:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 11 个回答

nono2009

超级版主 (文学泰斗)

No gains, no pains.

优秀区长优秀区长优秀区长优秀区长优秀版主

【答案】应助回帖

感谢参与,应助指数 +1
消去Z,直接用fsolve求解即可
2楼2013-02-04 21:27:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lnjzh

银虫 (正式写手)

引用回帖:
2楼: Originally posted by nono2009 at 2013-02-04 21:27:03
消去Z,直接用fsolve求解即可

Z=1/(1-h)-h*b/(1+h)    (1)
h=a/Z                           (2)
a,b为常数
我是把复杂的问题简化成这样形式的。别告诉我h直接代入然后手动化简求解。实际问题很繁琐的。提示是设置处置Z=1带入(2),然后计算得h带入(1),比较两个Z,设置一个精度,满足精度的Z为答案,不满足的话将得到Z赋值给(2)继续迭代。
这个过程怎样用 matlab语言实现呢?
3楼2013-02-04 22:30:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lnjzh

银虫 (正式写手)

引用回帖:
2楼: Originally posted by nono2009 at 2013-02-04 21:27:03
消去Z,直接用fsolve求解即可

matlab能消去Z吗。可以不用手动推导实现吗。实际问题比这复杂的多,我只是把繁琐的问题简化了。
4楼2013-02-04 22:57:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见