Newnton 迭代法求解单个方程 MATLAB 代码例子实现

本文介绍了如何在Matlab中实现牛顿迭代法,通过示例展示了如何求解方程x*exp(x)-1在x0=0.5附近的根,达到允许误差0.5*10^(-4)所需的迭代次数。
摘要由CSDN通过智能技术生成

 代码实现

function x=Newnton_iteration(f,x0,error)
%牛顿迭代法求方程解
%x0为初值
%error为误差
format long
syms x;
g=diff(f,x);
g=matlabFunction(g);%将符号函数转化为数值函数
f=matlabFunction(f);
n=1;
x(1)=vpa(x0-feval(f,x0)/feval(g,x0));
e=logical(x(1)-x0);
while abs(e)>error
    x(n+1)=vpa(x(n)-feval(f,x(n))/feval(g,x(n)));
    e=x(n+1)-x(n);
    n=n+1;
end
x=[(1:n)',x'];
end

将其保存为Newton_iteration.m文件。

例子

用Newton迭代法求方程xe^{^{x}}-1=0在x0=0.5附近的根,允许误差为0.5*10^(-4).《数值计算方法》()

syms x;
f=x*exp(x)-1;
Newnton_iteration(f,0.5,0.5*10^(-4))

运行结果

ans =
 
[1, 0.57102043980842220882720994268311]
[2, 0.56715556874411447037891428344197]
[3, 0.56714329053326100150408312501929]
[4, 0.56714329040978387301245641951102]
%第一列对应的是运行次数,第二列为运行结果

通过结果可以看到运行三次的时候就达到题目要求。

  • 7
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值