- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[设计名称] 数值分析课程设计
[设计时间] 2009年12月19日—2009年12月21日
[机器型号] 东芝 M302
[系统环境] Windows XP
[报告要求]
1.用 Matlab(或c)语言或你熟悉的其他算法语言编程序,使之尽量具有通用性。
2.完成计算后写出计算实验报告,内容包括:计算机型号和所用机时,算法步骤描述,变量说明,程序清单,输出计算结果,结果分析和小结。
3.实习时间: 09年12月19日----09年12月21日。
[实习题目一]
给定方程组
[实习要求]
1用G-S迭代法解该方程组,取初值X(0)=(0,0,0)T迭代到‖x(k+1)-x(k)‖∞≤10-4为止
2讨论迭代法的收敛性
3输出迭代矩阵BG迭代公式,迭代次数及计算结果表[算法描述]
运用LU分解得到L矩阵和U矩阵,将方程组转化为LUX=b,令UX=Y,原方程组转化为LY=b和UX=Y,最后解的原方程组得解X。
用打印函数输出系数矩阵A,b,L,U,X和行列式A的值。
根据矩阵条件数估计的定义,通过程序解得。
[程序清单]
function [x,k]=GassSeidelMathod(A,b)
k=1;
while k=1
x=GSM(A,b,k);
y=x(:,k+1)-x(:,k);
f=fanshu(y);
if f=0.0001
break;
else
k=k+1;
end
end
function x=GSM(A,b,k)
n=length(A);x(1:3,1)=[0 0 0];
for i=1:n
sum1=0;sum2=0;
for m=1:i-1
sum1=sum1+A(i,m)*x(m,k);
end
for m=i+1:n
sum2=sum2+A(i,m)*x(m,k);
end
x(i,k+1)=(b(i)-sum1-sum2)/A(i,i);
end
function max=fanshu(y)
n=length(y);
for i=1:2
max=y(1);
if y(i+1)y(i)
max=y(i+1);
end
end
function Convergence(A)
k=0;
[m,n]=size(A);
for i=1:m
sum(i)=0;
for j=1:n
sum(i)=sum(i)+abs(A(i,j));
end
sum(i)=sum(i)-abs(A(i,i));
if abs(A(i,i))=sum(i)
k=k+1;
end
end
if k==3
G-S迭代法收敛
else
G-S迭代法不收敛
end
function hanshu1(A,b,v1)
D=diag(v1);L=-tril(A-D);
U=-triu(A-D);B=inv(D-L)*U
f=inv(D-L)*b
[输出结果]
[实习题目二]
, 即 AX=b
[实习要求]
1用平方根法解上述方程组。
2讨论当b 有微小变化,即 b+b=(-4.02, 3.5, 10)时,A是否为病态矩阵。给出讨论结果。
3输出分解矩阵L’及解向量 X和 detA。
[程序清单]
function [L,U]=lu(A)
U(1,j)=A(1,j);
if j=2
L(j,1)=A(j,1)/U(1,1);
elseif j=i
for k=1: i-1
sum=0;
sum=sum+L(i,k)*U(k,j);
end
U(i,j)=A(i,j)-sum;
elseif i=j
for k=1:j-1
sum=0;
sum=sum+L(i,k)*U(k,j));
end
L(i,j)=(A(i,j)-sum;
else
break;
end
function x=gauss(A)
[L,U]=lu(A);
x=abs(U(1,1)*U(2
文档评论(0)