【MATLAB】实验五 用Newton迭代法计算方程的根

求e^5x - sinx + x^30 - 20 = 0的根

建立两个函数子程序
%---------- f.m -------------------
function z = f(x)
z = exp(5*x)-sin(x)+x^3-20;
End
%------ f1.m ---------
function z = f1(x)
z = 5*exp(5*x)-cos(x)+3*x^2;
end
主程序
%----------NewtonDiedai.m -----------
function x = NewtonDiedai(x0,k,M,eps)
k=0;
x=x0;
while (k<M)
    c1=f(x);
    c2=f1(x);
    if (c1==0)
        x;break
    else if (c2==0)
            break;
        end
        x1=x-c1/c2;
        if (abs(x1)<1)
            res=abs(x1-x);
        else
            res=abs(x1-x)/abs(x1);
        end
        k=k+1;
        x=x1;
        if (res<eps)
            break
        end
    end
end
命令台输入
>> eps = 10^-10 %控制精度
eps =
     1.000000000000000e-10
>> M = 40 %最大迭代次数
M =
40
>> NewtonDiedai(1,7,M,eps)

若迭代格式为Xn-1 = a*Xn(1-Xn)编写程序并绘图

函数程序
%-----------f.m -----------
function z = f(x,a)
z = a*(x-x.^2);
End
命令台输入
>> u = -5:0.1:5; %横坐标间距0.1
>>  plot(u,f(u,0.7),'b.',u,f(u,2.9),'g*',u,f(u,3.4),'mo',u,f(u,3.7),'r+');
结果如图

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柴妮贝贝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值