用Matlab求一道数值分析的题用(1)Jacobi迭代法;(2)Gauss-Seidel迭代法;(3)共轭梯度法解线性方程组:[ 10 1 2 3 4 ;1 9 -1 2 -3 ;2 -1 7 3 -5 ;3 2 3 12 -1 ;4 -3 -5 -1 15 ][ x1 ;x2 ;x3 ;x4 ;x5]=[ 12 ;-2
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/16 17:57:45
![用Matlab求一道数值分析的题用(1)Jacobi迭代法;(2)Gauss-Seidel迭代法;(3)共轭梯度法解线性方程组:[ 10 1 2 3 4 ;1 9 -1 2 -3 ;2 -1 7 3 -5 ;3 2 3 12 -1 ;4 -3 -5 -1 15 ][ x1 ;x2 ;x3 ;x4 ;x5]=[ 12 ;-2](/uploads/image/z/10909310-14-0.jpg?t=%E7%94%A8Matlab%E6%B1%82%E4%B8%80%E9%81%93%E6%95%B0%E5%80%BC%E5%88%86%E6%9E%90%E7%9A%84%E9%A2%98%E7%94%A8%281%29Jacobi%E8%BF%AD%E4%BB%A3%E6%B3%95%EF%BC%9B%EF%BC%882%EF%BC%89Gauss-Seidel%E8%BF%AD%E4%BB%A3%E6%B3%95%EF%BC%9B%EF%BC%883%EF%BC%89%E5%85%B1%E8%BD%AD%E6%A2%AF%E5%BA%A6%E6%B3%95%E8%A7%A3%E7%BA%BF%E6%80%A7%E6%96%B9%E7%A8%8B%E7%BB%84%EF%BC%9A%5B+10+1+2+3+4+%EF%BC%9B1+9+-1+2+-3+%EF%BC%9B2+-1+7+3+-5+%EF%BC%9B3+2+3+12+-1+%EF%BC%9B4+-3+-5+-1+15+%5D%5B+x1+%EF%BC%9Bx2+%EF%BC%9Bx3+%EF%BC%9Bx4+%EF%BC%9Bx5%5D%3D%5B+12+%EF%BC%9B-2)
用Matlab求一道数值分析的题用(1)Jacobi迭代法;(2)Gauss-Seidel迭代法;(3)共轭梯度法解线性方程组:[ 10 1 2 3 4 ;1 9 -1 2 -3 ;2 -1 7 3 -5 ;3 2 3 12 -1 ;4 -3 -5 -1 15 ][ x1 ;x2 ;x3 ;x4 ;x5]=[ 12 ;-2
用Matlab求一道数值分析的题
用(1)Jacobi迭代法;(2)Gauss-Seidel迭代法;(3)共轭梯度法
解线性方程组:
[ 10 1 2 3 4 ;1 9 -1 2 -3 ;2 -1 7 3 -5 ;3 2 3 12 -1 ;4 -3 -5 -1 15 ][ x1 ;x2 ;x3 ;x4 ;x5]=[ 12 ;-27 ;14 ;-17 ;12 ]
迭代初始向量取 x(0)= [ 0 ;0 ;0 ;0 ; 0 ]
用Matlab求一道数值分析的题用(1)Jacobi迭代法;(2)Gauss-Seidel迭代法;(3)共轭梯度法解线性方程组:[ 10 1 2 3 4 ;1 9 -1 2 -3 ;2 -1 7 3 -5 ;3 2 3 12 -1 ;4 -3 -5 -1 15 ][ x1 ;x2 ;x3 ;x4 ;x5]=[ 12 ;-2
clear;clc
A=[ 10 1 2 3 4 ;1 9 -1 2 -3 ;2 -1 7 3 -5 ;3 2 3 12 -1 ;4 -3 -5 -1 15 ];
B=[ 12 -27 14 -17 12 ]';
real_X=A\B %实际值
%Jacobi method
x0=[0 0 0 0 0]';
N=length(B);
M=15;% 迭代次数
for k=1:M
for j=1:N
x(j)=(B(j)-A(j,[1:j-1,j+1:N])*x0([1:j-1,j+1:N]))/A(j,j);
end
x0=x';
end
Jacobi_X=x'
%Gauss-Seidel method
for k=1:M
for j=1:N
if j==1
x(1)=(B(1)-A(1,2:N)*x0(2:N))/A(1,1);
elseif j==N
x(N)=(B(N)-A(N,1:N-1)*(x(1:N-1))')/A(N,N);
else
x(j)=(B(j)-A(j,1:j-1)*x(1:j-1)'-A(j,j+1:N)*x0(j+1:N))/A(j,j);
end
end
x0=x';
end
Gauss_Seidel_X=x'
(3)共轭梯度法,俺忘记了.
运行结果:
real_X =
1.0000
-2.0000
3.0000
-2.0000
1.0000
Jacobi_X =
1.0318
-2.0297
2.9451
-1.9920
0.9620
Gauss_Seidel_X =
1.0001
-2.0001
2.9998
-2.0000
0.9999
可见:Gauss_Seidel法收敛速度快.