牛顿迭代法和雅克比迭代法和高斯赛德尔迭代逐次超松弛迭代Word下载.docx
《牛顿迭代法和雅克比迭代法和高斯赛德尔迭代逐次超松弛迭代Word下载.docx》由会员分享,可在线阅读,更多相关《牛顿迭代法和雅克比迭代法和高斯赛德尔迭代逐次超松弛迭代Word下载.docx(34页珍藏版)》请在冰点文库上搜索。
![牛顿迭代法和雅克比迭代法和高斯赛德尔迭代逐次超松弛迭代Word下载.docx](https://file1.bingdoc.com/fileroot1/2023-4/30/113381b8-a290-420f-88d4-acc409ddac31/113381b8-a290-420f-88d4-acc409ddac311.gif)
end
x=xb;
b、雅克比迭代法程序
function[x,n]=Jacobi_Solve(A,b,x0,eps,varargin)
%求解线性方程组的迭代法
%A为方程组的细数矩阵
%b方程组的右端项数字的向量组
%eps为精度要求,默认值为1e-5
%varargin为最大迭代次数,值为100
%x为方程组的解
%n为迭代次数
ifnargin==3
eps=1.0e-6;
M=200;
elseifnargin<
3
error
return
elseifnargin==5
M=varargin{1};
end
D=diag(diag(A));
%求A的对角矩阵
L=-tril(A,-1);
%求A的下三角矩阵
U=-triu(A,1);
%求A的上三角矩阵
B=D\(L+U);
f=D\b;
x=B*x0+f;
n=1;
%迭代次数
whilenorm(x-x0)>
=eps
x0=x;
x=B*x0+f;
n=n+1;
if(n>
=M)
disp('
迭代次数太多,可能不收敛。
'
);
return;
end
c、高斯_赛德尔迭代程序
function[x,n]=gaussseide(A,b,x0,eps,M)
%b为方程组的右端项数字的向量组
%M为最大迭代次数,值为100
elseifnargin==4
M=200;
G=(D-L)\U;
f=(D-L)\b;
x=G*x0+f;
x=G*x0+f;
d、逐次超松弛迭代程序
function[x,n]=SOR_Solve(A,b,x0,w,eps,M)
%x0为迭代初始化向量
%w为松弛因子
ifnargin==4
4
if(w<
=0||w>
=2)
B=inv(D-L*w)*((1-w)*D+w*U);
%inv为矩阵求逆
f=w*inv((D-L*w))*b;
p69.3
(a)、p0=3,求
的近似值
解:
令f(x)=x^2-8,在matlab的命令窗口中输入命令:
>
>
fplot('
[x^2-8]'
[-3,3]);
grid
可得下图:
利用牛顿迭代法,在matlab窗口输入下面命令,得出结果:
formatlong
symsx
f=(x^2-8)
f=
x^2-8
[x,k]=newton(f,3,10^-10)
x=
2.82842712474619
k=
4
由输出结果可以看出:
该方程迭代次数为4,值趋近2.82842712474619
(b)p0=10,,求
令f(x)=x^2-91,在matlab的命令窗口中输入命令:
[x^2-91]'
[-15,15]);
f=(x^2-91)
x^2-91
[x,k]=newton(f,10,10^-10)
9.53939201416946
该方程迭代次数为4,值趋近9.53939201416946
(c)、p0=-3,,求-
[x,k]=newton(f,-3,10^-10)
-2.82842712474619
该方程迭代次数为4,值趋近-2.82842712474619
P129.1
1、4x-y=15
x+5y=9
(1)、利用雅克比迭代法,在matlab窗口输入下面命令,得出结果:
A=[4-1;
15]
A=
4-1
15
b=[159]'
b=
15
9
x0=ones(2,1)
x0=
1
[x,n]=Jacobi_Solve(A,b,x0)
4.00000000000000
0.99999981250000
n=
11
该方程迭代次数为11,值x1、x2趋近4.00000000000000、0.99999981250000
(2)、利用高斯_赛德尔迭代法,在matlab窗口输入下面命令,得出结果:
x0=zeros(2,1)
0
[x,n]=gaussseide(A,b,x0)
3.99999999609375
1.00000000078125
7
该方程迭代次数为7,值x1、x2趋近3.99999999609375、1.00000000078125
(3)、利用逐次超松弛迭代法,在matlab窗口输入下面命令,得出结果:
x0=[00]'
[x,n]=SOR_Solve(A,b,x0,1.25)
3.99999988432715
1.00000006817230
18
该方程迭代次数为18,值x1、x2趋近3.99999988432715、1.00000006817230
2、8x-3y=10
-1x+4y=6
A=[8-3;
-14]
8-3
-14
b=[106]'
10
6
1.99999974539969
1.99999983026646
13
该方程迭代次数为13,值x1、x2趋近1.99999974539969、1.99999983026646
1.99999995226244
1.99999998806561
8
该方程迭代次数为8,值x1、x2趋近1.99999995226244、1.99999998806561
2.00000002616444
1.99999997837304
13
该方程迭代次数为8,值x1、x2趋近2.00000002616444、1.99999997837304
3、-x+3y=1
6x-2y=2
A=[-13;
6-2]
-13
6-2
b=[12]'
2
1.0e+095*
1.32806994437937
200
该方程迭代次数超过200,值x1、x2可能无解,但输出结果为:
1.0e+190*
-1.175********922
-3.52753955432767
1.0e+226*
-0.35386965862240
-1.30298489853231
4、2x+3y=1
7x-2y=1
A=[23;
7-2]
23
7-2
b=[11]'
1.0e+071*
8.29889610418693
1.0e+143*
-0.61492568346508
-2.152********778
1.0e+187*
-0.35583160855020
-1.60284352550685
5、5x-y+z=10
2x+8y-z=11
-x+y+4z=3
A=[5-11;
28-1;
-114],b=[10113]'
5-11
28-1
-114
3
x0=ones(3,1)
2.00000016829305
0.99999983115101
1.00000003586168
15
该方程迭代次数为15,值x1、x2、x3趋近2.00000016829305、0.99999983115101、1.00000003586168
x0=zeros(3,1)
1.99999997279568
1.00000001400703
0.99999998969716
10
该方程迭代次数为10,值x1、x2、x3趋近1.99999997279568、1.00000001400703、0.99999998969716
x0=[000]'
1.99999977839245
1.00000018192410
0.99999980060913
38
该方程迭代次数为10,值x1、x2、x3趋近1.99999977839245、1.00000018192410、0.99999980060913
6、2x+8y-z=11
5x-y+z=10
A=[28-1;
5-11;
-114],b=[11103]'
1.0e+130*
0.52484533232471
2.65394976815761
0.16329887694177
该方程迭代次数超过200,值x1、x2、x3可能无解,但输出结果为:
1.0e+263*
-0.25072816807984
-1.26590037051754
0.25379305060943
1.0e+303*
-1.40390413805135
-8.93130081337209
2.37020575745623
7、x-5y-z=-8
4x+y-z=13
2x-y-6z=-2
A=[1-5-1;
41-1;
2-1-6],b=[-813-2]'
1-5-1
41-1
2-1-6
-8
-2
0.68607064571145
1.03632256067696
-0.10948257868500
1.0e