在MATLAB中用求解高斯—塞德尔迭代法线性方程组程序
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/02 07:19:19
在MATLAB中用求解高斯—塞德尔迭代法线性方程组程序
我笨的可怜,.
(2)使用高斯—塞德尔迭代法解下述方程组.
「10 -1 2 0 | | X1| | 6 |
| -1 11 -1 3 | | X2| = | 25|
| 2 -1 10 -1 | | X3| |-11|
| 0 3 -1 8 」 | X4| | 15|
两边的竖杠是矩阵的框框
我笨的可怜,.
(2)使用高斯—塞德尔迭代法解下述方程组.
「10 -1 2 0 | | X1| | 6 |
| -1 11 -1 3 | | X2| = | 25|
| 2 -1 10 -1 | | X3| |-11|
| 0 3 -1 8 」 | X4| | 15|
两边的竖杠是矩阵的框框
在Matlab命令行下输入:
edit Gauss_seidel.m
然后将下面输入,并保存
function x=Gauss_Seidel(A,b,x0,tol)
if (nargin==2)
x0=ones(size(b));
tol=1e-6;
elseif (nargin==3)
tol=1e-6;
else
sprintf('USAGE:Gauss_Seidel(A,b,x0,tol)')
end
D=diag(diag(A));
U=triu(A,1);
L=tril(A,-1);
G=-(D+L)\U;
d1=(D+L)\b;
x=G*x0+d1;
n=1;
while norm(x-x0)>=tol
x0=x;
x=G*x0+d1;
n=n+1;
end
n
到Matlab主窗口,输入:
A=[10,-1,2,0;-1,11,-1,3;2,-1,10,-1;0,3,-1,8];
b=[6;25;-11;15];
x=gauss_seidel(A,b)
就可以得到结果.
x =
1.0000
2.0000
-1.0000
1.0000
迭代8次.
edit Gauss_seidel.m
然后将下面输入,并保存
function x=Gauss_Seidel(A,b,x0,tol)
if (nargin==2)
x0=ones(size(b));
tol=1e-6;
elseif (nargin==3)
tol=1e-6;
else
sprintf('USAGE:Gauss_Seidel(A,b,x0,tol)')
end
D=diag(diag(A));
U=triu(A,1);
L=tril(A,-1);
G=-(D+L)\U;
d1=(D+L)\b;
x=G*x0+d1;
n=1;
while norm(x-x0)>=tol
x0=x;
x=G*x0+d1;
n=n+1;
end
n
到Matlab主窗口,输入:
A=[10,-1,2,0;-1,11,-1,3;2,-1,10,-1;0,3,-1,8];
b=[6;25;-11;15];
x=gauss_seidel(A,b)
就可以得到结果.
x =
1.0000
2.0000
-1.0000
1.0000
迭代8次.
在MATLAB中用求解高斯—塞德尔迭代法线性方程组
在MATLAB中用求解高斯—塞德尔迭代法线性方程组程序
求用雅可比迭代法和高斯-赛德尔迭代法求线性方程组的C语言程序
雅克比迭代法求解线性方程组的C语言程序?
matlab编写程序 高斯消元求解线性方程组
给定以下线性方程组,用雅可比迭代法和高斯-塞德尔迭代法是否收敛?
求解线性方程组的预处理迭代法
在MATLAB中用LU分解法求解下述线性方程组,并写出相应矩阵分解中的矩阵L、U
SOR迭代法 求MATLAB程序
在matlab中用newton迭代法求解x-sinx=0根,急求,马上交作业了,谢谢高手来解答!
Matlab 求解非齐次线性方程组
matlab 求解线性方程组出错