简单迭代法和牛顿迭代法matlab程序设计(含例题)
·



程序代码如下
1、
function x=easydiedai(g,x0,eps,N)
k=0;
while k<N
x=feval(g,x0);
if abs(x-x0)<eps && 0<=x && x<=1
%本题要求根在[0,1]内
break
end
x0=x;
k=k+1;
end
fprintf('迭代次数为%d,根为%s',k+1,x)
if k==N
fprintf(' 提示:精度仍不满足要求')
end
end
2、
function x=newtondiedai(f,df,x0,eps,N)
k=1;
while k<N
if feval(df,x0)==0
I=-1;
break
else
x=x0-feval(f,x0)/feval(df,x0);
end
if abs(x-x0)<eps && 0<=x && x<=1 %本题要求根在[0,1]内
I=0;
fprintf('迭代次数为%d 根为%s',k,x);
break
end
x0=x;
k=k+1;
end
if k==N
I=1;
end
if I==0
fprintf('状态提示:I=%d 求得满足精度要求的近似根',I)
end
if I==-1
fprintf('状态提示:I=%d 因df(x0)=0而计算中断',I)
end
if I==1
fprintf('状态提示:I=%d 迭代N次后精度要求仍不满足',I)
end
end
注:程序框架根据《数值计算方法》第4版第二章第2节所述内容设计,有误勿喷,敬请指教
「智能机器人开发者大赛」官方平台,致力于为开发者和参赛选手提供赛事技术指导、行业标准解读及团队实战案例解析;聚焦智能机器人开发全栈技术闭环,助力开发者攻克技术瓶颈,促进软硬件集成、场景应用及商业化落地的深度研讨。 加入智能机器人开发者社区iRobot Developer,与全球极客并肩突破技术边界,定义机器人开发的未来范式!
更多推荐




所有评论(0)