matlab Newton迭代法和二分法
来源:学生作业帮 编辑:百度作业网作业帮 分类:数学作业 时间:2024/04/27 19:38:02
matlab Newton迭代法和二分法
3.分别用Newton迭代法和二分法求解非线性方程非线性方程3*x.^2+x – 2*exp(x)=0在1,10附近的根并比较两种方法的迭带次数.(用函数实现)
3.分别用Newton迭代法和二分法求解非线性方程非线性方程3*x.^2+x – 2*exp(x)=0在1,10附近的根并比较两种方法的迭带次数.(用函数实现)
function test
clear
clc
%实验方程:3*x.^2+x+2*exp(x)=0
%原函数
f=@(x)3*x.^2+x-2*exp(x);
%导函数
df=@(x)6*x+1-2*exp(x);
%原函数在[-1 0]上的图像(有根范围)
fplot(f,[-1 0])
hold on
%牛顿切线法
[x1,n1]=fnewton(f,df,-0.5);
disp(sprintf('牛顿切线法\n在%f附近的根:%f\n迭代次数:%d',-0.5,x1,n1))
%二分法
[x2,n2]=f2fen(f,-1,0);
disp(sprintf('二分法\n在[%f,%f]上的根:%f\n迭代次数:%d',-1,0,x2,n2))
plot(x1,f(x1),'xr',x2,f(x2),'+g')
%-------------牛顿切线法---------------
function [x,n]=fnewton(f,df,x0)
x=x0;%初值
delta=1;
n=0;%迭代次数,下同
while abs(delta)>1e-6
delta=f(x)/df(x);
x=x-delta;
n=n+1;
end
end
%--------------二分法--------------
function [x,n]=f2fen(f,a,b)
xab=[a;b];%两个端点值
pab=sign(f(xab));
n=0;
while diff(xab)>1e-6
x=mean(xab);
p=sign(f(x));
n=n+1;
if p,break;end
xab(p==pab)=x;
end
end
%-----------------------------------
end
clear
clc
%实验方程:3*x.^2+x+2*exp(x)=0
%原函数
f=@(x)3*x.^2+x-2*exp(x);
%导函数
df=@(x)6*x+1-2*exp(x);
%原函数在[-1 0]上的图像(有根范围)
fplot(f,[-1 0])
hold on
%牛顿切线法
[x1,n1]=fnewton(f,df,-0.5);
disp(sprintf('牛顿切线法\n在%f附近的根:%f\n迭代次数:%d',-0.5,x1,n1))
%二分法
[x2,n2]=f2fen(f,-1,0);
disp(sprintf('二分法\n在[%f,%f]上的根:%f\n迭代次数:%d',-1,0,x2,n2))
plot(x1,f(x1),'xr',x2,f(x2),'+g')
%-------------牛顿切线法---------------
function [x,n]=fnewton(f,df,x0)
x=x0;%初值
delta=1;
n=0;%迭代次数,下同
while abs(delta)>1e-6
delta=f(x)/df(x);
x=x-delta;
n=n+1;
end
end
%--------------二分法--------------
function [x,n]=f2fen(f,a,b)
xab=[a;b];%两个端点值
pab=sign(f(xab));
n=0;
while diff(xab)>1e-6
x=mean(xab);
p=sign(f(x));
n=n+1;
if p,break;end
xab(p==pab)=x;
end
end
%-----------------------------------
end
matlab Newton迭代法和二分法
分别用二分法和Newton迭代法求解下列方程
分别用二分法和Newton迭代法求下列方程的正根:
求用MATLAB编制方程求根的二分法和Newton法的 Matlab 程序!
求matlab编程 用二分法和牛顿迭代法求根号a
二分法和弦截法相比于迭代法和牛顿迭代法有何优劣?
关于用MATLAB算Newton迭代法计算方程解,请问相对误差如何在程序里面实现判定?
求应用Newton—Raphson迭代法进行数字相关面内位移数值计算的Matlab程序代码
在matlab中用newton迭代法求解x-sinx=0根,急求,马上交作业了,谢谢高手来解答!
迭代法,二分法,牛顿迭代法,弦截法的算法设计思想
二分法MATLAB实现
matlab二分法编程