MATLAB 迭代法解方程
1、代码如下:
%%牛顿迭代法解方程
function x=newton_interation(fun,dfun,x0,EPS) %简单牛顿迭代法
%fun即迭代函数,dfun即迭代函数的一阶导数,x0为迭代初值,EPS为精度
x1=x0-fun(x0)/dfun(x0); %牛顿迭代公式
d=norm(x1-x0); %计算误差
while d>=EPS
x0=x1;
x1=x0-fun(x0)/dfun(x0);
d=norm(x1-x0);
end
x=x1; %将符合条件的结果输出
2、应用demo
假设函数 f(x) 为:
f
(
x
)
=
x
3
+
4
x
2
−
10
f(x)=x^3 + 4\, x^2 - 10
f(x)=x3+4x2−10
则其一阶导函数为:
f
′
(
x
)
=
3
x
2
+
8
x
f'(x)=3\,x^2 + 8\, x
f′(x)=3x2+8x
这里的format long只是使matlab显示小数点的后几位,并不会影响计算结果,没有这一行,matlab只会默认显示显示小数点后5位,导致看不出两个结果的区别。