- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE
实 验 报 告
课程名称 数值分析
实验项目 解线性方程组的直接法
专业班级 姓 名 学 号
指导教师 成 绩 日 期 月 日
实验目的
掌握程序的录入和matlab的使用和操作;
了解影响线性方程组解的精度的因素——方法与问题的性态。
学会Matlab提供的“\”的求解线性方程组。
实验要求
1、按照题目要求完成实验内容;
2、写出相应的Matlab 程序;
3、给出实验结果(可以用表格展示实验结果);
4、分析和讨论实验结果并提出可能的优化实验。
5、写出实验报告。
实验步骤
1、用分解及列主元高斯消去法解线性方程组
a),
输出中系数分解的矩阵和,解向量和;用列主元法的行交换次序解向量和求;比较两种方法所得结果。
2、用列主高斯消元法解线性方程组。
(1)、
(2)、
分别输出,解向量,(1)中的条件数。分析比较(1)、(2)的计算结果
3、线性方程组的和分别为
,
则解. 用MATLAB内部函数求和的所有特征值和. 若令
,
求解,输出向量和,从理论结果和实际计算两方面分析线性方程组解的相对误差以及的相对误差的关系。
4、 希尔伯特矩阵,其中,
(1)分别对计算,分析条件数作为的函数如何变化。(2)令,计算,然后用高斯消去法解线性方程组求出,计算剩余向量以及。分析当增加时解分量的有效位数如何随变化,它与条件数有何关系?当多大时连一位有效数字也没有了?
将每种情形的两个结果进行表格对比,如:
n=6时:
GAUSS列主消去法求得的
的有效数字
四、实验结果
五、讨论分析
(对上述算例的计算结果进行比较分析,主要说清matlab的算符与消去法的适用范围不同,自己补充)
六、改进实验建议
(自己补充)
1.列主元的高斯消去法
利用列主元的高斯消去法matlab程序源代码:
首先建立一个gaussMethod.m的文件,用来实现列主元的消去方法。
function x=gaussMethod(A,b)
%高斯列主元消去法,要求系数矩阵非奇异的, %
n = size(A,1);
if abs(det(A))= 1e-8
error(系数矩阵是奇异的);
return;
end
%
for k=1:n
ak = max(abs(A(k:n,k)));
index = find(A(:,k)==ak);
if length(index) == 0
index = find(A(:,k)==-ak);
end
%交换列主元
temp = A(index,:);
A(index,:) = A(k,:);
A(k,:) = temp;
temp = b(index);b(index) = b(k); b(k) = temp;
%消元过程
for i=k+1:n
m=A(i,k)/A(k,k);
%消除列元素
A(i,k+1:n)=A(i,k+1:n)-m*A(k,k+1:n);
b(i)=b(i)-m*b(k);
end
end
%回代过程
x(n)=b(n)/A(n,n);
for k=n-1:-1:1;
x(k)=(b(k)-A(k,k+1:n)*x(k+1:n))/A(k,k);
end
x=x;
end
然后调用gaussMethod函数,来实现列主元的高斯消去法。在命令框中输入下列命令:
输出结果如下:
利用LU分解法及matlab程序源代码:
function [L,U]=myLU(A) %实现对矩阵A的LU分解,L为下三角矩阵
A[n,n]=size(A);
L=zeros(n,n);
U=zeros(n,n);
for i=1:n
L(i,i)=1;
end
for k=1:n
for j=k:n
U(k,j)=A(k,j)-sum(L(k,1:k-1
文档评论(0)