你的这个问题看似简单,但你没给出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次迭代就可以了。
找一本计算方法书,里面一堆类似的例子,自己动手编写就行
用一个for循环,等到满足精度就break不就完事了啊