程序代码如下


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节所述内容设计,有误勿喷,敬请指教

Logo

「智能机器人开发者大赛」官方平台,致力于为开发者和参赛选手提供赛事技术指导、行业标准解读及团队实战案例解析;聚焦智能机器人开发全栈技术闭环,助力开发者攻克技术瓶颈,促进软硬件集成、场景应用及商业化落地的深度研讨。 加入智能机器人开发者社区iRobot Developer,与全球极客并肩突破技术边界,定义机器人开发的未来范式!

更多推荐