※ 引述《[email protected] (想一個人)》之銘言:
> H下用迭代公式可用來解方程式 x^2-a﹦0
> (a) Xk+1=0(Xk+a/Xk)/2 k=0,1,2,3.......
> (b) Xk+1=(Xk+a/Xk)/2-(Xk-a/Xk)^2/8Xk) k=0,1,2,......
> 這是解這方程式的2階和3階迭代公式,如何寫一MATLAB程式完成這些方法
> 並比較得到100.112的平方根至小數5位所需的迭代數目
> 使用初始值為1000
> 這題目該如何用MATLAB來寫呀
寫一個 fpi.m,內容如下:
function k=fpi(p0,tol,gx)
% p0 : initial value
% tol : tolerance
% gx : f(x)=x-g(x), gx is the iteration function.
% k : iteration times
k=0;
gx=inline(gx);
while 1>0
p1=gx(p0);
k=k+1;
if abs(p1-p0) < tol
break;
else
p0=p1;
end
end
以(a)為例
(1) k=fpi(1000,1e-5,'(x+100/x)/2')
則 k=11
(2) k=fpi(1000,1e-5,'(x+112/x)/2')
則 k=11
--
※ Origin: 楓橋驛站<bbs.cs.nthu.edu.tw> ◆ From: 140.134.140.24