- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章 解线性方程组(Systems of Linear Equations).doc
第四章 解線性方程組(Systems of Linear Equations)
在本章中包含 Matlab 的m-file
nvgauss.m nvgauss_digit_k.m
slgauss.m improve.m
trigauss.m jacobi.m
gseidel.m sor.m
richardson.m
steepest.m
7. conjgrad.m
將須要的m-file之檔案夾加入搜尋路徑中
path(d:\yeh\numerical, path)
註: 如果你有安裝Matlab Notebook 要執行下列input cells (綠色指令敘述) 之前必須先執行上面的cell – [path (…) ]
藍色的內容是Matlab [output cells]
1. nvgauss.m -- 自然的高斯消去法(Na?ve Gaussian Elimination)
顯示nvgauss.m的內容
type nvgauss.m
function x= nvgauss( A, b, n)
%to get an approximation solution of Ax=b,
%by naive Gaussian Elimination, where A is n by n matrix
%and obtain the solution by backward substitution
%
x=zeros(n,1); %initialize the solution vector
A1 = A; b1=b ;
for k = 1:n-1
if abs(A1(k,k)) eps
for i= k+1:n
m(i,k)=A1(i,k)/A1(k,k);
for j = k+1:n
A1(i,j)=A1(i,j)-m(i,k)*A1(k,j);
end
b1(i) = b1(i)-m(i,k)*b1(k);
end %loop i
else
disp(Naive Gaussian Elimination fails)
return
end % if
end %loop k
%
%to get the solution
%
if abs(A1(n,n)) eps
x(n)=b1(n)/A1(n,n) ; %start the backward substitution
for i = n-1:-1:1
s=b1(i) ;
for j=i+1:n
s= s-A1(i,j)*x(j);
end %loop j
x(i)=s/A1(i,i);
end% loop i
else
disp(A(n,n) is zero, A is singular )
return
end
例題 1: Solve the linear system.
6 x1 - 2 x2 + 2 x3 + 4 x4 = 16 12 x1 - 8 x2 + 6 x3 +10 x4 = 26 3 x1 -13 x2 + 9 x3 + 3 x4 = -19 -6 x1 + 4 x2 + x3 - 18 x4 = -34
準備必要的參數
A=[ 6 -2 2 4; 12 -8 6 10; 3 -13 9 3; -6 4 1 -18];
b = [16 26 -19 -34];
n = 4;
x = nvgauss(A, b, n)
x =
3 1 -2 1
這個
文档评论(0)