matlab编程,简单的迭代问题

Z=1/(1-h)-h*b/(1+h)(1)h=a/Z(2)a,b为常数我是把复杂的问题简化成这样形式的。别告诉我h直接代入然后手动化简求解。实际问题很繁琐的。提示是设置... 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语言实现呢?
展开
 我来答
刘贺great
推荐于2018-04-15 · TA获得超过1.6万个赞
知道大有可为答主
回答量:3829
采纳率:100%
帮助的人:1787万
展开全部
你的这个问题看似简单,但你没给出a和b的值,迭代有可能不收敛的哈
给你一个,你参考一下,不难实现的:
clear all;clc;
z(1)=1;
a=2;b=1/3;
for ii=1:100
h(ii)=a/z(ii);
zz(ii)=1/(1-h(ii))-b*h(ii)/(1+h(ii));
k(ii)=abs(z(ii)-zz(ii));
if k(ii)<=0.01
z(ii)=zz(ii);
break;
else
z(ii+1)=zz(ii);
end
end
----------------------------
z =
1.0000 -1.2222 -0.4778 -0.2451 -0.2663
zz =
-1.2222 -0.4778 -0.2451 -0.2707 -0.2663
ii=5,需要5次迭代就可以了。
shejizhe08
2013-02-04 · TA获得超过253个赞
知道小有建树答主
回答量:250
采纳率:0%
帮助的人:161万
展开全部
找一本计算方法书,里面一堆类似的例子,自己动手编写就行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
s15885823584
2013-02-04 · TA获得超过411个赞
知道小有建树答主
回答量:279
采纳率:0%
帮助的人:208万
展开全部
用一个for循环,等到满足精度就break不就完事了啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式