数值分析非线性方程求根实验.doc
文本预览下载声明
实验报告
一、实验目的
1.迭代函数对收敛性的影响。
2.初值的选择对收敛性的影响。
二、实验题目
1.用简单迭代法求方程的根。
分别化方程为如下等价方程:
;;;
取初值,精度为,最大迭代次数为500,观察其计算结果并加以分析。
2.①用牛顿法求方程在0.5附近的根,
分别取初值
观察并比较计算结果,并加以分析。
②用牛顿法求方程所有根。
三、实验原理
简单迭代法程序,牛顿迭代法程序。
四、实验内容及结果
1.用简单迭代法求方程的根:
1)先输入简单迭代法的M程序,在MATLAB的M文件窗口中输入以下内容并保存:
function x=maiter(phi,x0,ep,N)
if nargin4 N=500;end
if nargin3 ep=1e-4;end
k=0;
while kN
x=feval(phi,x0);
if abs(x-x0)ep
break;
end
x0=x;k=k+1;
end
if k==N,warning(已达迭代次数上限);end
disp([k=,num2str(k)])
2)再输入以下程序,在M文件窗口输入以下内容并保存:
clc;
clear;
format long
x1=maiter(inline((x+1)^(1/3)),1.5,1e-5)
x2=maiter(inline(x^3-1),1.5,1e-5)
x3=maiter(inline((1+1/x)^(1/2)),1.5,1e-5)
x4=maiter(inline((x^3+x-1)/2),1.5,1e-5)
3)主窗口显示的结果为:
k=6
x =
1.324719474534364k=500
x2=
Inf
k=7
x =
1.324718688942791k=500
x4=
Inf
2.用牛顿迭代法求方程在0.5附近的根:
1)先输入牛顿迭代法的M程序,在MATLAB的M文件窗口中输入以下内容并保存:
function x=manewton(fun,dfun,x0,ep,N)
if nargin5,N=500;end
if nargin4,ep=1e-4;end
k=0;
while kN
x=x0-feval(fun,x0)/feval(dfun,x0);
if abs(x-x0)ep
break;
end
x0=x;k=k+1;
end
if k==N,warning(已达迭代次数上限);end
disp([k=,num2str(k)])
2)再输入以下程序,在M文件窗口输入以下内容并保存:
clc;
clear;
format long
fun=inline(x^3-x-1);
dfun=inline(3*x^2-1);
-1000,x1=manewton(fun,dfun,-1000,1e-4)
-100,x2=manewton(fun,dfun,-100,1e-4)
-2,x3=manewton(fun,dfun,-2,1e-4)
-1,x4=manewton(fun,dfun,-1,1e-4)
-0.5,x5=manewton(fun,dfun,-0.5,1e-4)
0.5,x6=manewton(fun,dfun,0.5,1e-4)
1,x7=manewton(fun,dfun,1,1e-4)
2,x8=manewton(fun,dfun,2,1e-4)
100,x9=manewton(fun,dfun,100,1e-4)
1000,x10=manewton(fun,dfun,1000,1e-4)
3)在MATLAB的主程序窗口输出以下结果:
ans =
-1000
k=21
x1 =
0.682327804075895
ans =
-100
k=16
x2 =
0.682327803903413
ans =
-2
k=6
x3 =
0.682327803828020
ans =
-1
k=5
x4 =
0.682327803828020
ans =
-0.500000000000000
k=4
x5 =
0.682327803903932
ans =
0.500000000000000
k=3
x6 =
0.682327803828347
ans =
1
k=3
x7 =
0.682327803946513
ans =
2
k=5
x8 =
0.682327803828368
ans =
100
k=14
x9 =
0.6823278
显示全部