Matlab 高斯-赛德尔迭代法怎么用呢?(关键是怎么调用它,附代码)function X=gseid(A,B,P,delta,max1)% Input - A is an N x N nonsingular matrix% - B is an N x 1 matrix% - P is an N x 1 matrix; the initial guess% - delta is the toler
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/05 04:30:00
![Matlab 高斯-赛德尔迭代法怎么用呢?(关键是怎么调用它,附代码)function X=gseid(A,B,P,delta,max1)% Input - A is an N x N nonsingular matrix% - B is an N x 1 matrix% - P is an N x 1 matrix; the initial guess% - delta is the toler](/uploads/image/z/6106378-58-8.jpg?t=Matlab+%E9%AB%98%E6%96%AF-%E8%B5%9B%E5%BE%B7%E5%B0%94%E8%BF%AD%E4%BB%A3%E6%B3%95%E6%80%8E%E4%B9%88%E7%94%A8%E5%91%A2%3F%EF%BC%88%E5%85%B3%E9%94%AE%E6%98%AF%E6%80%8E%E4%B9%88%E8%B0%83%E7%94%A8%E5%AE%83%2C%E9%99%84%E4%BB%A3%E7%A0%81%EF%BC%89function+X%3Dgseid%28A%2CB%2CP%2Cdelta%2Cmax1%29%25+Input+-+A+is+an+N+x+N+nonsingular+matrix%25+-+B+is+an+N+x+1+matrix%25+-+P+is+an+N+x+1+matrix%3B+the+initial+guess%25+-+delta+is+the+toler)
Matlab 高斯-赛德尔迭代法怎么用呢?(关键是怎么调用它,附代码)function X=gseid(A,B,P,delta,max1)% Input - A is an N x N nonsingular matrix% - B is an N x 1 matrix% - P is an N x 1 matrix; the initial guess% - delta is the toler
Matlab 高斯-赛德尔迭代法怎么用呢?(关键是怎么调用它,附代码)
function X=gseid(A,B,P,delta,max1)
% Input - A is an N x N nonsingular matrix
% - B is an N x 1 matrix
% - P is an N x 1 matrix; the initial guess
% - delta is the tolerance for P
% - max1 is the maximum number of iterations
% Output - X is an N x 1 matrix:the gauss-seidel approximation to
% the solution of AX = B
% NUMERICAL METHODS:Matlab Programs
% (c) 2004 by John H.Mathews and Kurtis D.Fink
% Complementary Software to accompany the textbook:
% NUMERICAL METHODS:Using Matlab,Fourth Edition
% ISBN:0-13-065248-2
% Prentice-Hall Pub.Inc.
% One Lake Street
% Upper Saddle River,NJ 07458
N = length(B);
for k=1:max1
for j=1:N
if j==1
X(1)=(B(1)-A(1,2:N)*P(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 contains the kth approximations and P the (k-1)st
X(j)=(B(j)-A(j,1:j-1)*X(1:j-1)'-A(j,j+1:N)*P(j+1:N))/A(j,j);
end
end
err=abs(norm(X'-P));
relerr=err/(norm(X)+eps);
P=X';
if (err
Matlab 高斯-赛德尔迭代法怎么用呢?(关键是怎么调用它,附代码)function X=gseid(A,B,P,delta,max1)% Input - A is an N x N nonsingular matrix% - B is an N x 1 matrix% - P is an N x 1 matrix; the initial guess% - delta is the toler
A=diag(ones(1,50)*12);
A=A+[[zeros(49,1) -2*diag(ones(1,49))];zeros(1,50)];
A=A+[[zeros(1,49); -2*diag(ones(1,49))] zeros(50,1)];
A=A+[[zeros(48,2) diag(ones(1,48))];zeros(2,50)];
A=A+[[zeros(2,48); diag(ones(1,48))] zeros(50,2)];
b=ones(50,1)*5;
x=gseid(A,b,zeros(50,1),0.001,1000)