数值分析上机实验3.docx

上传人:b****5 文档编号:8419941 上传时间:2023-01-31 格式:DOCX 页数:12 大小:105.31KB
下载 相关 举报
数值分析上机实验3.docx_第1页
第1页 / 共12页
数值分析上机实验3.docx_第2页
第2页 / 共12页
数值分析上机实验3.docx_第3页
第3页 / 共12页
数值分析上机实验3.docx_第4页
第4页 / 共12页
数值分析上机实验3.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

数值分析上机实验3.docx

《数值分析上机实验3.docx》由会员分享,可在线阅读,更多相关《数值分析上机实验3.docx(12页珍藏版)》请在冰豆网上搜索。

数值分析上机实验3.docx

数值分析上机实验3

昆明理工大学理学院

信息与计算科学专业操作性实验报告

年级:

10级姓名:

刘陈学号:

201011101128指导教师:

陈智斌

实验课程名称:

数值分析matlab程序设计开课实验室:

理学院机房

实验成绩:

学风(5)

观察能力(15)

操作能力(30)

调试能力(50)

其它

总分

实验内容:

1.实验/作业题目:

数值分析与matlab程序设计

2.实验/作业课时:

2学时

3.实验过程(包括实验环境、实验内容的描述、完成实验要求的知识或技能):

实验环境:

matlab

实验内容:

1.列主元消去法求L矩阵,U矩阵,P矩阵,det(A)和解向量X的值。

通过实验,掌握matlab列主元消去法操作。

2.ImplementtheGaussianeliminationwithpartialpivotingandsolvethefollowingsystemsoflinearequations:

(i)

=

(ii)

=

(iii)

=

Requirement:

(1)OutputtheLUdecompositionofthecoefficientmatrixA,i.e.,LandUsuchthatPA=LU.

(2)OutputthesolutionX=A−1b.

(3)Outputdet(A).

完成实验要求的知识或技能:

通过这个实验,了解matlab开发环境的配置以及如何通过matlab来编写《数值分析》程序,掌握matlab程序的一些基本结构。

4.程序结构(程序中的函数调用关系图)

 

5.算法描述、流程图或操作步骤:

高斯列主元消去法M文件算法:

function[l,u,p]=Gauss_x(A,b)

[m,n]=size(A);

ifm~=n

error('矩阵不是方阵')

return

end

ifdet(A)==0

error('矩阵不能被三角分解')

end

u=A;p=eye(m);l=eye(m);

fori=1:

m

forj=i:

m

t(j)=u(j,i);

fork=1:

i-1

t(j)=t(j)-u(j,k)*u(k,i);

end

end

a=i;B=abs(t(i));

forj=i+1:

m

ifB

B=abs(t(j));

a=j;

end

end

ifa~=i

forj=1:

m

c=u(i,j);

u(i,j)=u(a,j);

u(a,j)=c;

end

forj=1:

m

c=p(i,j);

p(i,j)=p(a,j);

p(a,j)=c;

end

c=t(a);

t(a)=t(i);

t(i)=c;

end

u(i,i)=t(i);

forj=i+1:

m

u(j,i)=t(j)/t(i);

end

forj=i+1:

m

fork=1:

i-1

u(i,j)=u(i,j)-u(i,k)*u(k,j);

end

end

end

l=tril(u,-1)+eye(m);

u=triu(u,0);

detA=det(A);%求行列式A的值

detA%显示行列式A的值

n=length(b);

X=zeros(n,1);

c=zeros(1,n);

d1=0;

fori=1:

n-1

max=abs(A(i,i));

m=i;

forj=i+1:

n

ifmax

max=abs(A(j,i));

m=j;

end

end

if(m~=i)

fork=i:

n

c(k)=A(i,k);

A(i,k)=A(m,k);

A(m,k)=c(k);

end

d1=b(i);

b(i)=b(m);

b(m)=d1;

end

fork=i+1:

n

forj=i+1:

n

A(k,j)=A(k,j)-A(i,j)*A(k,i)/A(i,i);

end

b(k)=b(k)-b(i)*A(k,i)/A(i,i);

A(k,i)=0;

end

end

X(n)=b(n)/A(n,n);%回代求解

fori=n-1:

-1:

1

sum=0;

forj=i+1:

n

sum=sum+A(i,j)*X(j);

end

X(i)=(b(i)-sum)/A(i,i);

end

X=X';%求出x

X%显示解向量x

上面算法是利用高斯列主元消去法可求L矩阵,U矩阵,P矩阵,det(A)和解向量X的值。

第一题已回答,算法已实现。

主函数:

第二题(i)式

>>A=[10-701;-32.09999962;5-15-1;2102];b=[85.90000151];

>>[l,u,p]=Gauss_x(A,b)

 

第二题(ii)

>>A=[3.016.031.99;1.274.16-1.23;0.987-4.819.34];b=[111];

>>[l,u,p]=Gauss_x(A,b)

第二题(iii)

>>A=[3.006.031.99;1.274.16-1.23;0.990-4.819.34];b=[111];

>>[l,u,p]=Gauss_x(A,b)

6.实验数据和实验结果(用屏幕图形表示,可另加附页):

高斯列主元消去法实验结果:

第2题的(i)结果算的如下:

(i)中的p*A=l*u如下:

第2题的(ii)结果算的如下:

(ii)中的p*A=l*u如下:

第2题的(iii)结果算的如下:

(iii)中的p*A=l*u如下:

总结:

高斯列主元消去法中为方便计算行与行会交换,其中PA=LU中P控制行的交换,PA和LU一样求出的是矩阵A行与行交换后的结果。

det(A)可直接调用。

未知数x是利用回代求出的。

7.改进建议:

改进程序算法使源码简短,使程序能实现更多功能。

评分标准学风--报告格式规范,文字清晰观察能力--正确描述和理解需要操作的问题

操作能力--正确输入程序,熟悉编程环境调试能力--熟练使用调试功能解决程序错误

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1