用MATLAB解决线性代数问题实验报告
MATLAB上机实验报告:MATLAB求解线性方程组和矩阵的初等计算
MATLAB上机实验报告:MATLAB求解线性方程组和矩阵的初等计算MATLAB上机实验报告:MATLAB求解线性方程组和矩阵的初等计算计算机语言类课程实验报告课程名称院系学号MATLAB语言及应用电气信息工程学院实验机房计算机公修实验室三班级机器号实验学时2实验成绩专业电气工程及其自动化姓名任课教师实验日期一.实验名称:MATLAB求解线性方程组和矩阵的初等计算二.实验目的和要求1、掌握利用MATLAB程序编辑器编写应用程序的方法;2、掌握MATLAB 求解线性方程组的方法;3、掌握MATLAB进行矩阵的初等计算的方法三.实验内容教材(《MATLAB及其在理工课程中的应用指南,陈怀琛,西安电子科技大学出版社》)P93-1,2四.实验设计方案(实验步骤或开发过程)1、设a矩阵为各个方程的变量的系数,s为各个变量的列向量,b为等式右边的自然数的列向量,利用s=a\\b,即可求出该方程组的解。
2、利用转置和乘法,以及元素乘法分别算出C1,C2,C3,再通过求逆矩阵inv()这个函数求出C1,C2,C3的逆矩阵。
五.实验中存在问题及解决办法在第一题中当使用右除时,运行出现错误,只有使用左除,这与矩阵除法的定义有关。
六.实验结果1、该方程组的解为:s=[-1.4841-0.68160.5337-1.2429]2、C1=[19-8230d1=[0.00620.0400-0.010612273-0.00460.01690.0030-385429]0.0 1680.02090.0150]C2=[-1516-2436d2=1.0e+015*63-1793-105[-0.9553-0.2391-0.19970.2700226117-600.96670.24200.2021-0.2732194684-10]-0.4473-0.112 0-0.09350.1264-1.1259-0.2818-0.23530.3182]C3=[51624-26d3=不能求C3的逆矩阵-18-12-1572-2-21108-56]七.附录(源程序清单)第一题:求该方程组的解20xx.09.17clcclearalla=[34-7-12;5-742;108-5;-65-210]b=[4;-3;9;-8]s=a\ \b第二题:求出C1,C2,C3,以及它们的逆矩阵d1,d2,d320xx.09.17clcclearallA=[14813;-36-5-9;2-7-12-8]B=[543-2;6-23-8;-13-97]C1=A*B”C2=A”*BC3=A.*Bd1=inv(C1)d2=inv(C2)[m,n]=size(C3);if m==nd3=inv(C3)elsedisp不能求C3的逆矩阵end扩展阅读:袁越强MATLAB上机实验报告一平顶山学院计算机语言类课程实验报告(一)课程名称院系学号实验日期MATLAB语言及应用电气信息工程学院实验机房专业电气工程及其自动化姓名任课教师王凯实验学时23305班级机器号实验成绩二班一.实验名称:MATLAB求解线性方程组和矩阵的初等计算二.实验目的和要求1、掌握利用MATLAB程序编辑器编写应用程序的方法;2、掌握MATLAB求解线性方程组的方法;3、掌握MATLAB进行矩阵的初等计算的方法三.实验内容1、求线性方程组的解3x4y7z12w45x7y4z2w3x8z5w96x5y2z10w8481315432,B6238,求C1=A*B’;C2=A’*B;C3=A.*B,并592、设A36271281397求它们的逆阵。
用MATLAB解决线性代数问题实验报告
实验三使用MATLAB解决线性代数问题学院:数计学院班级:1003班姓名:黄晓丹学号:1051020144实验目的:学习MATLAB有关线性代数运算的指令,主要学习运用MATLAB解决矩阵除法,线性方程组的通解,矩阵相似对角化问题,以及解决投入产出分析等应用问题。
实验内容:矩阵转置:A=[1 2;3 4];B=[4 3;2 1];>> A',B'ans =1 32 4ans =4 33 1矩阵加减:A-Bans=-3 -11 3矩阵乘法:A*B,A.*B(数组乘法)||比较矩阵乘法与数组乘法的区别ans=8 520 13ans=4 66 4矩阵除法:A\B,B./Aans=-6 -55 4ans=4 1.50.6667 0.25特殊矩阵生成:zeros(m,n)||生成m行n列的矩阵ones(m,n)||生成m行n列的元素全为一的矩阵eye(n)||生成n阶单位矩阵rand(m,n)||生成m行n列[0 ,1]上均匀分布随机数矩阵zeros(2,3)ans =0 0 00 0 0>> ones(3,3)ans =1 1 11 1 11 1 1>> eye(3)ans =1 0 00 1 00 0 1>> rand(2,4)ans =Columns 1 through 30.9501 0.6068 0.89130.2311 0.4860 0.7621Column 40.45650.0185矩阵处理:trace(A)||返回矩阵的迹diag(A)||返回矩阵对角线元素构成的向量tril(A)||提取矩阵的下三角部分triu(A)||提取矩阵的上三角部分flipud(A)||矩阵上下翻转fliplr(A)||矩阵左右翻转reshape(A,m,n)||将矩阵的元素重排成m行n列矩阵A=[1 2 3;4 5 6;7 8 9];>> t=trace(A),d=diag(A),u=triu(A)t =15d =159u =1 2 30 5 60 0 9 flipud(A),fliplr(A)ans =7 8 94 5 61 2 3 ans =3 2 16 5 49 8 7矩阵特征值与标准型:[V,D]=eig(A)||返回矩阵特征值与特征向量[V J]=Jordan(A)||返回矩阵的相似变换矩阵和若尔当标准型A=[1 2;3 4];>> [V,D]=eig(A)V =-0.8246 -0.41600.5658 -0.9094D =-0.3723 00 5.3723>> [V,J]=jordan(A)V =0.2389 0.76110.5222 -0.5222J =5.3723 00 -0.3723线性方程组求解A=[1 2 1;3 -2 1];B=[1;4];x=A\B x =1.2500 ||求一特解-0.1250>> A=[1 2;3 -2;1 -1];B=[1;4;2];x=A\Bx = ||求得一最小二乘近似解1.2838-0.1757:方阵的相似对角化及应用:A=[1 1/4 0;0 1/2 0;0 1/4 1];[P,T]=eig(A) P =1.0000 0 -0.40820 0 0.81650 1.0000 -0.4082T =1.0000 0 00 1.0000 00 0 0.5000求得三个特征值1,1,0.5,对应特征向量(1,0,0),(0,0,1),(-0.4028,0.8165,-0.4082),由于三个特征向量线性无关,从而A 可相似对角化,即p-1AP=T.那么A∧n=p[1 0 0;0 1 0;0 0 0]p-1,计算的P*diag([1,1,0])*inv(P)ans =1.0000 0.50000 00 0 00 0.5000 1.0000所以得到近似解。
用MATLAB做线性代数实验
2
0
, 2
5 3
, 3
1
3
, 4
1
4
, 5
1
2
。
3
6
0Hale Waihona Puke 73【程序如下】:
% (1)
A=[1 2 1 3;4 -1 5 6;1 -3 -4 7;1 2 1 1]' r=rank(A) [R,IP]=rref(A) % (2) A=[1 2 0 2 1;-2 -5 1 -1 1;0 -3 3 4 2;P3 6 0 -7 3] r=rank(A) [R,IP]=rref(A)
例如:
已知
A
1 3
2 4
,
B
1 1
2 0
,解矩阵方程
(1)
AX
B , (2) XA B 。
MATLAB 程序如下:
A=[1 2;3 4];
B=[1 2;-1 1];
X1=inv(A)*B % AX=B or
X1=A\B
X2=B*inv(A) % XA=B
X2=A/B
将 p(x) 分解为最简分式之和 q( x)
[p,q]=residue(a,b,r) 将简单分式之和合并为有理分式
例如,将有理分式
f
(x)
x2 x3 2x2 3x2
分解为最简分式之和的程序如下:
p=[1 2];
q=[1 2 3 2];
[a,b,r]=residue(p,q)
输出:a =
-0.2500 - 0.4725i
p=[1 -6 11 -6];
线性代数Matlab数学实验
0.1042 -0.1436 -0.0663 0.0878 0.0337 0.0411
1.1095 1.3541 3.1761 5.3951 8.3265 1.3564
4.3899 15.0714 19.5899 28.3698 37.2783 1.8128
2.1612 9.5847 11.9050 16.2275 20.7091 0.6693
b = ( 1 3 5 7 9 11) 。
1.输入矩阵 A,B,b. 2.作X12=A/ , X22=A+B , X23=A-B , X24=AB. 3.求|A|,|B|。 4.求 R(A),R(B)。 5.求X5=A-1 . 6.求矩阵方程 XA=C 的解 X6,其中 C 为 A 的第 i 行乘以列标 i 所得到的矩阵。 7.求解方程组 AX=b 的解向量 X7. 8.求 X6 的特征向量 X8,X6 的特征向量组 X 及对角阵 D。 9.求 B2(A-1)2. 10.存储工作空间变量 A,B:save’ds1.m’,A,B 三、思考与练习 1.对本实验中得到的C矩阵求CT, |C|, C-1, C的特征值及对应的特征向量。 2.创建从 2 开始,公差为 4 的等差数列的前 15 项构成的行向量。 3.将本实验中矩阵 A 与 B 的对应元素相乘、对应元素相处并观察分母为零时的结果。 4.求 b 的每个元素自身次幂所的行向量。 5.列出本实验中所有变量。 四、操作提示 1.计算过程 A=[3 4 -1 1 -9 10;6 5 0 7 4 -16;1 -4 7 -1 6 -8;2 -4 5 -6 12 -8;-3 6 -7 8 -1 1;8 -4 9 1 3 0] B=[1 2 4 6 -3 2;7 9 16 -5 8 -7;8 11 20 1 5 5;10 15 28 13 -1 9;12 19 36 25 -7 23;2 4 6 -3 0 5] b=1:2:11 X21=A' X22=A+B X23=A-B X24=A*B X31=det(A) X32=det(B) X41=rank(A) X42=rank(B) X5=inv(A) for i=1:6 C(:,i)=i*A(:,i); end C X6=C/A X7=A\b' X8=eig(X6) [X,D]=eig(X6) X9=B^2*(A^(-1))^2 存储实验1工作空间变量AB到文件ds1.mat中:save ds1 A B 2.计算结果:
MATLAB方程组求解实验报告
八、教师评语
签名:
日期: 年 月 日
成绩
14 -2 2
0 33 8
-2 7 38
3)
a=[2 1 1;1 3 1;1 1 4];
b=[12 -3 1;-1 30 7;-3 6 34];
>> a-b
ans =
-10 4 0
2 -27 -6
4 -5 -30
4)
a=[2 1 1;1 3 1;1 1 4];
b=[12 -3 1;-1 30 7;-3 6 34];
方程A*X=b变形成QRX=b则X=R\(Q\b)
命令[Q,R]=qr(A)
2求线性齐次方程组的通解
在Matlab中,函数null用来求解零空间,即满足A·X=0的解空间,实际上是求出解空间的一组基(基础解系)。
格式:z=null %z的列向量为方程组的正交规范基,满足
% z的列向量是方程AX=0的有理基
1)
a=[2 1 1;1 3 1;1 1 4];
b=[12 -3 1;-1 30 7;-3 6 34];
>> a*b
ans =
20 30 43
6 93 56
-1 51 144
2)
a=[2 1 1;1 3 1;1 1 4];
b=[12 -3 1;-1 30 7;-3 6 34];
>> a+b
ans =
-2.3529 12.5294 0.7059
-2.2353 0.3529 9.4706
线性代数MATLAB仿真实验报告
合肥学院2018—2019学年第2学期线性代数及应用 (模块)实验报告实验名称:线性代数MATLAB实验实验类别:综合性 设计性□验证性 专业班级: 17通信工程(2)班实验时间: 9-12周组别:第组人数 3人指导教师:牛欣成绩:完成时间: 2019年 5 月9日一. 小组成员姓名学号具体分工汪蔚蔚(组长) 1705022025 A报告最后的整合,编写,案例四的计算与应用以及案例一的计算与证明陶乐 1 1705022009 C案例二,化学方程式配平问题程赢妹1505022036 A案例三,应用题灰度值的计算问题二. 实验目的1、案例一利用MATLAB进行线性代数计算,求出矩阵B2、案例二利用MATLAB计算出每一个网格数据的值,然后每一个网格数据的值乘以256以后进行归一化处理,根据每个网格中的灰度值,绘制出灰度图像。
3、案例三利用MATLAB完成对化学方程式进行配平的应用4、案例四利用MATLAB求极大线性无关组,并表示出其余向量三. 实验内容1、案例一:0,1,0,=1,0,0,0,0,0A B AB BA A B⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦已知矩阵和矩阵满足乘法交换律,即且求矩阵。
2、案例二配平下列化学方程式:3、案例三:3*320.81.21.70.20.30.6021.61.20.6.1MATLAB2256MATLAB给定一个图像的个方向上的灰度叠加值:沿左上方到右下方的灰度叠加值依次为,,,,;沿右上方到左下方的灰度叠加值依次为,。
,,,)建立可以确定网络数据的线性方程组,并用求解)将网络数据乘以,再取整,用绘制该灰度图像>> X1=B\C1X1 =3.00001.0000-0.0000>> X2=B\C2X2 =-0.50001.00002.5000六.实验结果1、实验一结果我们本来设,,=,,,,a b cB d e fg h i⎡⎤⎢⎥⎢⎥⎢⎥⎣⎦最终得到d=b, e=a, f=c=h=g=0,i=i,即矩阵,,0=,,00,0,a bB d ei⎡⎤⎢⎥⎢⎥⎢⎥⎣⎦,其中a=e,b=d.因此B是一个对称矩阵。
-MATLAB 数学实验报告
MATLAB 数学实验报告求下列解方程组:1.(1)⎪⎪⎩⎪⎪⎨⎧=+--=-+-=++-0202432143214321xxxx x xx x xx x x(2)⎪⎪⎩⎪⎪⎨⎧=+=+-=-+0302403231321321x x x x x x x x2. ⎪⎪⎩⎪⎪⎨⎧=++=+-=-+883111023224321321321x x x x x x x x x例1. 绘制函数表达式x²-y³的二维图形。
例2. 在极坐标下绘制函数表达式1+cost的二维图形。
例3. 根据表达式x=sint、y=cost、z=t,绘制三维曲线。
实验过程记录(含基本步骤,主要程序清单及异常情况记录等):1.解:(1) >> A=[1 -1 1 1;1 -1 1 -2;1 -1 -2 1];>> format rat>> n=4;>> RA=rank(A)RA =3>> if(RA==n)else B=null(A,'r')endB =11>> syms k>> x=k*Bx =kk(2) >> A=[2 3 -1;4 -2 1;1 0 3];>> format rat>> n=3;>> RA=rank(A)RA =3>> if(RA==n) x=[0 0 0]else B=null(A,'r')endx =0 0 0 2.解:>> A=[4 2 -1;3 -1 2;11 3 8];b=[2 10 8]';B=[A b];n=3;RA=rank(A)RA =3>> RB=rank(B)RB =3>> if(RA==RB&RA==n)X=A\belse if(RA==RB&RA<n)C=A\bD=null(A,'r')endX =97/40-169/40-3/4例1.解:>> syms x y>>ezplot(x^2-y^)3) 例2. 解: >> syms t>> ezpolar(1+cos(t)) 例3. 解: >> syms t>> ezplot3(sin(t),cos(t),t,[0,6*pi])实验结果报告及实验总结:1.(1)的解为x = kk 0 0(2)的解为x = 00 02的解为X =97/40 -169/40 -3/4 例1.图形结果:xyx 2-y 3 = 0例2.图形结果:902701800r = 1+cos(t)例3.图形结果:-1xx = sin(t), y = cos(t), z = tyz实验总结:对于以上题目的解析,这是我第一次用MATLAB 进行编程来求解实际问题,虽然过程有点艰辛,但每一步都亲力亲为,这让我收获很多,通过做次实验,让我对MATLAB有了进一步的了解,了解了它的强大的功能和他如何求解实际问题,激发了我学好MATLAB的决心。
基于matlab的线性方程组迭代法(实验报告)
基于matlab 的线性方程组迭代法实验题目:实验要求:(1)分别试用 Jacobi 和Gauss-Seidel 迭代法计算,要求达到的精度为:(1)()510k k x x +-∞->(2)观测得到的迭代序列是否收敛?若收敛,记录迭代次数并分析计算结果。
实验流程一、迭代法简介 1、 Jacobi 迭代法对于方程组Ax b =有A 非奇异情况下且0ij a ≠时,A 分裂为A D L U =--,可得到:0x B x f =+,其中1110(),B I D A D L U f D b ---=-=+=,得到雅克比迭代法:(0)(1)()0()k k x xB x f +⎧⎪⎨=+⎪⎩初始向量 2、 Gauss-Seidel 迭代法(0)(1)()()k k x x Gx f +⎧⎪⎨=+⎪⎩初始向量 其中11(),()G D L U f D L b --=-=-。
其迭代法优点为只需一组存储单元。
3、 超松弛迭代法(SOR)Gauss-Seidel 迭代法的一种加速方法,ω松弛因子。
(0)(1)()(1)(1))()(1)k k k k k x x Gx f x x x ωω+++⎧⎪⎪=+⎨⎪=+-⎪⎩(初始向量 其中11(),()G D L U f D L b --=-=-。
二、迭代法的matlab 程序1、 Jacobi 迭代法Jacobi.mfunction [y,n]= Jacobi( A,b,x0,e )%JACOBI ÇëÔÚ´Ë´¦ÊäÈ뺯Êý¸ÅÒªif(nargin<4)e=1e-5;endD=diag(diag(A));I=eye(size(A));B=I-D\A;f=D\b;y=x0+2*e;n=0;while norm(y-x0,inf)>ey=x0;x0=B*y+f;n=n+1;endnend2、Gauss-Seidel迭代法GaussSeidel.mfunction [y,n]= GaussSeidel( A,b,x0,e ) %GS ÇëÔÚ´Ë´¦ÊäÈ뺯Êý¸ÅÒªif(nargin<4)e=1e-5;endD=diag(diag(A));I=eye(size(A));L=D-tril(A);U=D-triu(A);f=(D-L)\b;G=(D-L)\U;y=x0+2*e;n=0;while norm(y-x0,inf)>ey=x0;x0=G*y+f;n=n+1;endnend3、超松弛迭代法(SOR) SOR.mfunction [y,n]= SOR( A,b,w,x0,e )%SORÇëÔÚ´Ë´¦ÊäÈ뺯Êý¸ÅÒªif(nargin<5)e=1e-5;endD=diag(diag(A));I=eye(size(A));L=D-tril(A);U=D-triu(A);f=(D-L)\b;G=(D-L)\U;y=x0+2*e;n=0;while norm(y-x0,inf)>ex0=y;x1=G*x0+f;y=(1-w)*x0+w*x1;n=n+1;endnend4、变量初始化creatMatrix.mclear;clc;a=diag(3*ones(1,20));b=diag(-0.5*ones(1,19),1);c=diag(-0.25*ones(1,18),2);A=a+b+b'+c+c';%ϵÊý¾ØÕób=ones(20,1)*7/4;b(1)=9/4;b(20)=9/4;x0=zeros(20,1);A,b,x0,w=1.5建立A数组以及初始化b,松弛因子w,迭代初值x05、程序运行和结果记录solve.mclc;tic,s1=Jacobi(A,b,x0),toctic,s2=GaussSeidel(A,b,x0),toctic,s3=SOR(A,b,w,x0),toc三、计算结果运行程序得到几种方法的计算结果。
matlab实验1:线性代数方法
奇异值分解: 奇异值分解: 其中U,V均为正交矩阵,S为一 个对角阵, 其中U,V均为正交矩阵,S为一 个对角阵,且对角线 U,V均为正交矩阵,S 元素恰好为A的奇异值(A’*A (A’*A的特征值的算术平方 元素恰好为A的奇异值(A’*A的特征值的算术平方 根). A=U*S*V’ 用于处理一些病态方程组的求解 格式一:只返回方阵A 格式一:只返回方阵A的特征值 格式二:其中D是由A 格式二:其中D是由A的特征值组成的对角 矩阵,V为对应特征向量组成的矩阵. ,V为对应特征向量组成的矩阵 矩阵,V为对应特征向量组成的矩阵. 求矩阵的迹: 求矩阵的迹:矩阵的迹等于矩阵的特征值之和
eig(A) [V,D]=eig(A) trace(A)
上机作业
找出你的代数书,利用 重做其中的几个作业。 找出你的代数书,利用Matlab重做其中的几个作业。 重做其中的几个作业源自函数 [Q,R]=qr(A)
功能 (QR分解 分解) 正交变换 (QR分解): 对A进行QR分解,就是把A分解为一个正交矩阵Q和 进行QR分解,就是把A分解为一个正交矩阵Q QR分解 一个上三角矩阵R的乘积形式. 其中Q*Q’=E, 一个上三角矩阵R的乘积形式. 其中Q*Q’=E, 正交 阵!
[U,S,V]=svd( A)
%对高阶的大方程组通常用:LU、QR和cholesky分解 对高阶的大方程组通常用: 、 对高阶的大方程组通常用 和 分解 等方法求方程组的解 其优点是运算速度快、 等方法求方程组的解 。其优点是运算速度快、可以节省 磁盘空间、节省内存。 磁盘空间、节省内存。
3 求线性方程组的通解
的通解。 例:求下面线性方程组Ax=B的通解。 求下面线性方程组 的通解 输出结果: 输出结果:
解法2 解法2:利用 rref 函数
线性代数-matlab实验报告
用matlab解决线性代数问题学号: 82120545 , 姓名: 于珊,1 求解线性方程组实验内容: 用MATLAB求解如下线性方程组Ax = b, 其中A =5600000015600000015600000015600000015600000015600000015600000015⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦, b = [1,4,6,0,7,1,2,4] T.实验目的:1. 了解MATLAB软件, 学会MATLAB软件的一些基本操作;2. 熟悉MATLAB软件的一些数值计算功能;3. 练习编写简单的MATLAB程序。
实验原理:1. 对于满足条件系数矩阵的行列式D=︱A︱≠0的方程组Ax= b,根据克拉默(Gramer)法则,此线性方程组有唯一解:,j=1,2,…,n。
2. 当线性方程组的系数矩阵A是可逆矩阵时, 方程组Ax = b的解为X = A\B。
3. 当系数矩阵A可逆时, 对增广矩阵[A, b]进行初等行变换, 把它化为行最简形矩阵B, 则B的最后一列就是该方程组的解向量。
实验方案: 1. 在MATLAB命令窗口中输入如下命令:>> a_1=[5;1;0;0;0;0;0;0];a_2=[6;5;1;0;0;0;0;0];>> a_3=[0;6;5;1;0;0;0;0];a_4=[0;0;6;5;1;0;0;0];>> a_5=[0;0;0;6;5;1;0;0];a_6=[0;0;0;0;6;5;1;0];>> a_7=[0;0;0;0;0;6;5;1];a_8=[0;0;0;0;0;0;6;5]; %输入矩阵A>> b=[1;4;6;0;7;1;2;4];>> D=det([a_1,a_2,a_3,a_4,a_5,a_6,a_7,a_8]);>> D_1=det([b,a_2,a_3,a_4,a_5,a_6,a_7,a_8]);>> D_2=det([a_1,b,a_3,a_4,a_5,a_6,a_7,a_8]);>> D_3=det([a_1,a_2,b,a_4,a_5,a_6,a_7,a_8]);>> D_4=det([a_1,a_2,a_3,b,a_5,a_6,a_7,a_8]);>> D_5=det([a_1,a_2,a_3,a_4,b,a_6,a_7,a_8]);>> D_6=det([a_1,a_2,a_3,a_4,a_5,b,a_7,a_8]);>> D_7=det([a_1,a_2,a_3,a_4,a_5,a_6,b,a_8]);>> D_8=det([a_1,a_2,a_3,a_4,a_5,a_6,a_7,b]);>> x_1=D_1/D;x_2=D_2/D;x_3=D_3/D;x_4=D_4/D;>> x_5=D_5/D;x_6=D_6/D;x_7=D_7/D;x_8=D_8/D;>> format rat,X=[x_1,x_2,x_3,x_4,x_5,x_6,x_7,x_8]%利用克拉默法则求解方程组2. 在MATLAB命令窗口中输入如下命令:>> %把该方程组记为AX=b,则X=A\b>> A=[5,6,0,0,0,0,0,0;1,5,6,0,0,0,0,0;0,1,5,6,0,0,0,0;0,0,1,5,6,0,0,0;0,0,0,1,5,6,0,0;0,0,0,0,1,5,6,0;0,0,0,0,0,1,5,6;0,0,0,0,0,0,1,5]; %输入矩阵A>> b=[1;4;6;0;7;1;2;4]; %输入矩阵b>>format rat,X=A\b%求解方程组3. 在MATLAB命令窗口中输入如下命令:>> A=[5,6,0,0,0,0,0,0;1,5,6,0,0,0,0,0;0,1,5,6,0,0,0,0;0,0,1,5,6,0,0,0;0,0,0,1,5,6,0,0;0,0,0,0,1,5,6,0;0,0,0,0,0,1,5,6;0,0,0,0,0,0,1,5];%输入矩阵A>> b=[1;4;6;0;7;1;2;4]; %输入矩阵b>> B=[A,b];%B为增广矩阵[A,b]>> format rat>> C=rref(B); %用初等行变换把B化为行最简形>> X=C(:,9) %利用高斯消元法求解方程组实验结果:1.方法一的计算结果为:X =Columns 1 through 6-3419/592 727/146 -2543/1009 697/307 -131/89 2033/1009 Columns 7 through 8-835/659 1913/18162方法二的计算结果为:.X =-3419/592727/146-2543/1009697/307-131/892033/1009-835/6591913/18163.方法三的计算结果为:X =-797/138727/146-310/123697/307-131/89542/269-204/161138/131对实验结果的分析:上述3种方案所得的结果不完全一致, 这是因为不同的计算方法在计算机中有不同的精度,导致计算数据结果的不同。
matlab实习报告二5篇
matlab实习报告二5篇第一篇:matlab实习报告二MATLAB实习报告(2)实验二 MATLAB矩阵分析与处理王夏一、实验目的1、掌握生成特殊矩阵的方法。
2、掌握矩阵分析的方法。
3、用矩阵求逆发解线性方程组。
二、实验内容1、设有分块矩阵A=[E3×3 R3×2;O2×3 S2×2],其中E、R、O、S分别为单位矩阵、随机矩阵、零矩阵和对角阵,试通过数值计算验证A²=[E R+RS;O S²]。
程序清单:E=eye(3);R=rand(3,2);O=zeros(2,3);S=diag([4,5]);A=[E R;O S] ;A2=A^2;C=[E R+R*S;O S^2];length(find(A2==C))==25 运行结果:ans =12、产生5阶希尔伯特矩阵H和5阶帕斯卡矩阵P,且求其行列式的值Hh和Hp以及他们的条件数Th和Tp,判断哪个矩阵的性能更好,为什么?程序清单:format rat H=hilb(5);format short P=pascal(5);Hh=det(H);Hp=det(P);Th=cond(A);Tp=cond(P);运行结果:Hh =3.7493e-012 Hp =1 Th =5.5228 Tp =8.5175e+003 实验收获:会建立希尔伯特矩阵和帕斯卡矩阵,知道怎么求矩阵行列式的值以及条件数。
希尔伯特矩阵的性能更好,条件数越接近1的矩阵性能越好。
3、建立一个5×5矩阵,求它的行列式值、迹、秩和范数。
程序清单:A=[1:5;1:0.1:1.5;2 5 7 3 9;2:6;3:0.4:4.6]Ha=det(A);Ra=rank(A);Ta=trace(A);Na=norm(A);运行结果:Ha =1.4421e-031 Ra = 3 Ta =18.7000 Na =19.49664、已知向量A,求A的特征值及特征向量,并分析其数学意义。
Matlab数学实验报告二
数学软件课程设计题目线性方程组求解班级数学081姓名曹曼伦实验目的:用Matlab语言实现Gauss算法和cholesky算法(chol)以及LU分解(lu),求解一般线性方程组。
用Matlab语言实现Jacobi迭代算法、Gauss-Seidel迭代算法和逐次超松弛迭代法,求解一般的线性代数方程组问题。
实验内容:一.直接法(1)Gauss消元法:function x=DelGauss(a,b)% Gauss消去法[n,m]=size(a);nb=length(b);det=1;%存储行列式值x=zeros(n,1);for k=1:n-1for i=k+1:nif a(k,k)==0returnendm=a(i,k)/a(k,k);for j=k+1:na(i,j)=a(i,j)-m*a(k,j);endb(i)=b(i)-m*b(k);enddet=det*a(k,k);enddet=det*a(n,n);for k=n:-1:1 %回代for j=k+1:nb(k)=b(k)-a(k,j)*x(j);endx(k)=b(k)/a(k,k);endExample:>> A=[1.0170 -0.0092 0.0095;-0.0092 0.9903 0.0136;0.0095 0.0136 0.9898]; >> b=[1 0 1]';>> x=DelGauss(A,b)x =0.9739-0.00471.0010(2)对称正定矩阵之Cholesky分解法:function L=Cholesky(A)%对对称正定矩阵A进行Cholesky分解n=length(A);L=zeros(n);for k=1:ndelta=A(k,k);for j=1:k-1delta=delta-L(k,j)^2;endif delta<1e-10return;endL(k,k)=sqrt(delta);for i=k+1:nL(i,k)=A(i,k);for j=1:k-1L(i,k)=L(i,k)-L(i,j)*L(k,j);endL(i,k)=L(i,k)/L(k,k);endendfunction x=Chol_Solve(A,b)%利用对称正定矩阵之Cholesky分解求解线性方程组Ax=b n=length(b);l=Cholesky(A);x=ones(1,n);y=ones(1,n);for i=1:nz=0;for k=1:i-1z=z+l(i,k)*y(k);endy(i)=(b(i)-z)/l(i,i);endfor i=n:-1:1z=0;for k=i+1:nz=z+l(k,i)*x(k);endx(i)=(y(i)-z)/l(i,i);endExample:>> A=[1.0170 -0.0092 0.0095;-0.0092 0.9903 0.0136;0.0095 0.0136 0.9898];>> b=[1 0 1]';>> x=Chol_Solve(A,b)x =0.9739 -0.0047 1.0010(3)LU分解法:function [l,u]=lu(a)%LU分解n=length(a);l=eye(n);u=zeros(n);for i=1:nu(1,i)=a(1,i);endfor i=2:nl(i,1)=a(i,1)/u(1,1);endfor r=2:n%%%%for i=r:nuu=0;for k=1:r-1uu=uu+l(r,k)*u(k,i);endu(r,i)=a(r,i)-uu;end%%%%for i=r+1:nll=0;for k=1:r-1ll=ll+l(i,k)*u(k,r);endl(i,r)=(a(i,r)-ll)/u(r,r);end%%%%Endfunction x=lusolv(a,b)%LU分解求解线性方程组aX=b if length(a)~=length(b)error('Error in inputing!')return;endn=length(a);[l,u]=lu(a);y(1)=b(1);for i=2:nz=0;for k=1:i-1z=z+l(i,k)*y(k);endy(i)=b(i)-z;endx(n)=y(n)/u(n,n);for i=n-1:-1:1z=0;for k=i+1:nz=z+u(i,k)*x(k);endx(i)=(y(i)-z)/u(i,i);endExample:>> a=[1.0170 -0.0092 0.0095;-0.0092 0.9903 0.0136;0.0095 0.0136 0.9898]; >> b=[1 0 1]';>> x=Chol_Solve(a,b)x =0.9739 -0.0047 1.0010二.迭代法(1)Jacobi迭代法:function [x,n]=jacobi(A,b,x0,eps,varargin)if nargin==3eps= 1.0e-6;M = 200;elseif nargin<3errorreturnelseif nargin ==5M = varargin{1};D=diag(diag(A)); %求A的对角矩阵L=-tril(A,-1); %求A的下三角阵U=-triu(A,1); %求A的上三角阵B=D\(L+U);f=D\b;x=B*x0+f;n=1; %迭代次数while norm(x-x0)>=epsx0=x;x=B*x0+f;n=n+1;if(n>=M)disp('Warning: 迭代次数太多,可能不收敛!');return;endendExample:>> x0=[0;0;0]x0 =>> [x,n]=Jacobi(A,b,x0)x =0.9739-0.00471.0010n =5(2)Gauss-Seidel迭代法:function [x,n]=gauseidel(A,b,x0,eps,M) if nargin==3eps= 1.0e-6;M = 200;elseif nargin == 4M = 200;elseif nargin<3errorreturn;endD=diag(diag(A)); %求A的对角矩阵L=-tril(A,-1); %求A的下三角阵U=-triu(A,1); %求A的上三角阵f=(D-L)\b;x=G*x0+f;n=1; %迭代次数while norm(x-x0)>=epsx0=x;x=G*x0+f;n=n+1;if(n>=M)disp('Warning: 迭代次数太多,可能不收敛!');return;endendExample:>> x0=[0;0;0]x0 =>> [x,n]=gauseidel(A,b,x0)x =-0.00471.0010n =4(3)对称逐次超松驰迭代法:function [x,n]=SSOR(A,b,x0,w,eps,M) if nargin==4eps= 1.0e-6;M = 200;elseif nargin<4errorreturnelseif nargin ==5M = 200;endif(w<=0 || w>=2)error;return;endD=diag(diag(A)); %求A的对角矩阵L=-tril(A,-1); %求A的下三角阵U=-triu(A,1); %求A的上三角阵B1=inv(D-L*w)*((1-w)*D+w*U);B2=inv(D-U*w)*((1-w)*D+w*L);f1=w*inv((D-L*w))*b;f2=w*inv((D-U*w))*b;x12=B1*x0+f1;x =B2*x12+f2;n=1; %迭代次数while norm(x-x0)>=epsx0=x;x12=B1*x0+f1;x =B2*x12+f2;n=n+1;if(n>=M)disp('Warning: 迭代次数太多,可能不收敛!');return;endendExample:>> [x,n]=SSOR(A,b,x0,1)x =0.9739-0.00471.0010n =3实验结果:一.直接法(1)Gauss消元法:>> A=[1.0170 -0.0092 0.0095;-0.0092 0.9903 0.0136;0.0095 0.0136 0.9898]; >> b=[1 0 1]';>> x=DelGauss(A,b)x =0.9739-0.00471.0010(2)对称正定矩阵之Cholesky分解法:>> A=[1.0170 -0.0092 0.0095;-0.0092 0.9903 0.0136;0.0095 0.0136 0.9898];>> b=[1 0 1]';>> x=Chol_Solve(A,b)x =0.9739 -0.0047 1.0010(3)LU分解法:>> a=[1.0170 -0.0092 0.0095;-0.0092 0.9903 0.0136;0.0095 0.0136 0.9898]; >> b=[1 0 1]';>> x=Chol_Solve(a,b)x =0.9739 -0.0047 1.0010二.迭代法(1)Jacobi迭代法:>> [x,n]=Jacobi(A,b,x0)x =0.9739-0.00471.0010n =5(2)Gauss-Seidel迭代法:>> [x,n]=gauseidel(A,b,x0)x =0.9739-0.00471.0010n =4(3)对称逐次超松驰迭代法:>> [x,n]=SSOR(A,b,x0,1)x =0.9739-0.00471.0010n =3。
线性代数实验报告
线性代数实验报告
本次实验我们主要学习了线性代数的基础知识,包括向量的表示、矩阵的表示、线性方程组的求解以及线性变换的性质等方面。
在实验中,我们使用MATLAB进行计算及可视化操作。
具体来说,我们学习了以下几个方面的内容:
1. 向量的表示
向量是线性代数的基本概念之一,表示一个有向线段。
而在计算机中,可以通过向量的坐标来表示向量。
本次实验中,我们学习了如何使用MATLAB求出向量的模长、单位向量以及两个向量之间的夹角等。
矩阵是线性代数中的另一个重要概念,常用于表示线性方程组的系数矩阵。
在MATLAB 中,矩阵可以通过嵌套的向量来表示。
我们学习了如何求矩阵的行列式、逆矩阵、特征值等。
3. 线性方程组的求解
线性方程组是线性代数中的一个重要概念,其解法有很多种,包括高斯消元法、LU分解法、Jacobi迭代法等。
本次实验中,我们学习了如何使用MATLAB求解线性方程组,并对几种求解方法进行了比较和分析。
4. 线性变换的性质
线性变换是线性代数中的另一个重要概念,可以将一个向量空间变换成另一个向量空间。
在MATLAB中,可以通过矩阵乘法的方式来表示线性变换。
我们学习了线性变换的一些基本性质,如线性、保持原点等,并通过可视化的方式观察线性变换的效果。
通过本次实验,我们不仅掌握了线性代数的一些基础知识,也学会了使用MATLAB进行线性代数方面的计算和可视化操作。
这对于学习和研究线性代数都有着重要的意义。
MATLAB方程组求解实验报告
MATLAB方程组求解实验报告实验报告:MATLAB方程组求解一、引言在工程和科学领域的研究中,常常需要求解一系列的线性或非线性方程组。
MATLAB是一种强大的数学软件,可以用于解决方程组求解的问题。
本实验旨在通过实例介绍MATLAB求解方程组的方法和应用。
二、方程组的定义与求解方法方程组是一组包含多个未知数的方程的集合。
求解方程组即求解方程组中的未知数,使得方程组中的每个方程都成立。
对于线性方程组,可以使用矩阵表示。
例如:Ax=b其中A是一个已知的mxn的矩阵,x是待求解的向量,b是已知的向量。
MATLAB提供了多种求解线性方程组的方法,如高斯消元法、LU分解法和迭代法等。
对于非线性方程组,一般使用数值方法求解。
常见的数值方法有牛顿法、割线法和迭代法等。
MATLAB中的fzero函数可以用于求解非线性方程组。
三、MATLAB求解线性方程组的实例1.高斯消元法考虑以下线性方程组:3x+2y-z=12x-2y+4z=-2-x+0.5y-z=0可以通过高斯消元法求解该方程组。
在MATLAB中,可以使用linsolve函数进行求解。
2.LU分解法LU分解是一种常用的求解线性方程组的方法。
通过将系数矩阵分解为上三角矩阵U和下三角矩阵L的乘积来求解方程组。
在MATLAB中,可以使用lu函数进行LU分解。
四、MATLAB求解非线性方程组的实例1.牛顿法考虑以下非线性方程组:x^2+y^2=1(x-1)^2+y^2=1可以通过牛顿法求解该方程组。
在MATLAB中,可以使用fsolve函数进行求解。
2.迭代法考虑以下非线性方程组:x^2+y^2=2x+y=1可以通过迭代法求解该方程组。
在MATLAB中,设置初始值,并使用循环迭代的方法逐步逼近方程的解。
五、实验步骤和结果1.线性方程组求解构建线性方程组Ax = b,并使用linsolve函数进行求解。
2.非线性方程组求解构建非线性方程组,并使用fsolve函数进行求解。
MATLAB实验报告2 - 第九讲+线性方程组
R_A=rank(A);
R_Ab=rank(Ab);
format rat
if R_A==R_Ab&R_A==n%判断有无唯一解
X=A\b
elseifR_A==R_Ab&R_A<n%判断有无无穷解
X=A\b%求特解
C=null(A,'r')%求AX=0的基础解系
同理,可建立描述电工,油漆工各自的收支平衡关系的另外两个等式,将三个等式联立,可得描述实际问题的方程组
整理,得
这是一个齐次线性方程组的问题。
(2)数学模型求解。在命令窗口输入以下命令。
clear
>>A=[-8 1 6;4 -5 1;4 4 -7 ];
>>format rat
>>z=null(A,’r’)
[Q,R]=qr(A)
正交分解.Q是正交矩阵,R是上三角矩阵,满足A=Q*R.
[U,S,V]=svd(A)
奇异值分解.U矩阵的列正交,V是正交矩阵,S是对角矩阵,满足A=U*S*V '.
L=chol(A)
Cholesky分解.下三角方阵L,满足A=LLT.
教师评语
成绩
教师签名
A=UDVT,
其中d0,d1,…,d(n-1)称为A的奇异值(其定义为:矩ห้องสมุดไป่ตู้ATA的特征值的算术平方根)。
(4)(Cholesky分解)设A是正定矩阵,则存在一个下三角方阵L,使得A=LLT。
矩阵分解的函数命令见表4-1。
表4-1矩阵分解的函数命令表
命令
功能说明
[L,U,P]=lu(A)
三角分解.L是下三角矩阵,U是阶梯形矩阵,P是置换矩阵,满足PA=L*U.
matlab实验报告
matlab实验报告实验名称:MATLAB数值分析实验报告摘要:本实验通过使用MATLAB软件,实现了一些数值分析中重要的算法,包括线性方程组求解、非线性方程求根、数值积分与微分以及常微分方程求解。
在算法实现的过程中,通过观察输出结果验证了算法的正确性和可靠性,并探讨了一些算法实现中需要注意的问题。
1.线性方程组求解线性方程组求解是数值分析中的重要算法之一,是很多数学问题的基础。
本实验中使用了三种求解线性方程组的算法:高斯消元法、LU分解法和共轭梯度法。
在实验中,我们需要注意选取矩阵的条件数,使用一些特殊矩阵,如对角矩阵、三对角矩阵和希尔伯特矩阵等来验证算法的正确性。
2.非线性方程求根非线性方程求根是MATLAB中一个非常实用的函数,能够快速解决大量的非线性方程。
本实验中,我们更深入地探讨了二分法、牛顿法和割线法等算法,通过实现代码,实现了对非线性方程的求解。
同时,对不同的算法进行比较,从而选择合适的算法。
3.数值积分与微分数值积分与微分是宏观物理中需要用到的重要数学问题之一。
本实验中,我们使用了梯形法、辛普森法和龙贝格法等多种数值积分算法实现了函数的数值积分。
同时,也对数值微分的误差和稳定性进行了研究和探讨。
4.常微分方程求解常微分方程求解是MATLAB中最常用的功能之一。
本实验中,我们实现了欧拉法、龙格-库塔法等常微分方程求解算法。
并不断尝试对算法进行改进,提高其效率和精度。
实验结果表明,使用MATLAB实现数值分析算法是非常可靠和高效的。
同时,也需要注意在算法实现中注意问题和选择合适的算法。
MATLAB试验报告线性方程组求解
「-「
f3)
f0)
f2)
f-1)
x=
2
,x=
4
,x=
10
,x=
7
,x=
3
1
3
2
2
3
11
4
3
5
2
\^)
V37
R3的一组基。
生成R3,从x,x,x,x,x中找出
"-4
设A = 7
11
3 12、
-11 0.分别用poly、roots和eig计算A的特征值.
12 3,
7.判断下列矩阵是否相似(提示:用Jordan标准型)?
,
壬式。
及rref函数,计算下列线性方程组的
x-3x=0
5x+x=8b)
-x+4x=2
2 3
:1
4,%=10
27 V117
是线性相关的.
戋性无关的
生方程组的通解。
至解
=2
二10
8
来计算A-1的第三列,并将结果
通解
2x+x-3x=0
4x+5x+x=8
2x+4x+4x=8
1 1 2 3
实验序号:实验2
实验项目名称:线性方程组求解
>> x1=det(D1)/det(D);x2=det(D2)/det(D);
>> x1,x2
x1 =
-1
Байду номын сангаас>> a=[2,3,-1;5,1,4];
>> rref(a)
f2 0 0)
f2 0
A=
0 4 0
线性代数的MATLAB软件实验报告
线性代数的MATLAB 软件实验一、实验目的1.熟悉矩阵代数主要MATLAB 指令。
2.掌握矩阵的转置、加、减、乘、除、乘方、除法等MATLAB 运算。
3.掌握特殊矩阵的MATLAB 生成。
4.掌握MATLAB 的矩阵处理方法。
5.掌握MATLAB 的矩阵分析方法。
6.掌握矩阵的特征值与标准形的MATLAB 验算。
7.掌握线性方程组的MATLAB 求解算法。
二、实验原理1.线性方程组 【基本观点】自然科学和工程实践很多问题的解决都涉及线性代数方程组的求解和矩阵运算.一方面,许多问题的数学模型本身就是一个线性方程组,例如结构应力分析问题、电子传输网分析问题和投入产出分析问题;另一方面,有些数值计算方法导致线性方程组求解,如数据拟合,非线性方程组求解和偏微分方程组数值解等.n 个未知量m 个方程的线性方程组一般形式为⎪⎪⎩⎪⎪⎨⎧=+++=+++=+++.,,22112222212111212111m n mn m m n n n n b x a x a x a b x a x a x a b x a x a x a (3.1) 令,,,2121212222111211⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=⎪⎪⎪⎪⎪⎭⎫⎝⎛=m n mn m m n n b b b b x x x x a a a a a aa a a A则得矩阵形式Ax=b. (3.2)若右端b=0,即Ax=0, (3.3)则称方程组为齐次的.方程组(3.1)可能有唯一解,可能有无穷多解,也可能无解,主要取决于系数矩阵A 及增广矩阵(A,b )的秩.若秩(A )=秩(A,b )=n,存在唯一解,其解理论上用Cramer 法则求出,但由于这种方法要计算n+1个n 阶行列式,计算量太大通常并不采用;若秩(A )=秩(A,b )<n,存在无穷多解,其通解可表示为对应齐次方程组(3.3)的一个基础解系与(3.2)的一个特解的叠加;若秩(A )≠秩(A,b ),则无解,这时一般寻求最小二乘近似解,即求x 使向量Ax-b 模最小.P50矩阵左除的数学思维:恒等变形Ax=b 方程两边的左边同时除以A ,得:b AAx A11=,即:b A b Ax 11-==MATLAB 的实现(左除):x=A\b 2.逆矩阵 【基本观点】方阵A 称为可逆的,如果存在方阵B ,使 AB=BA=E,这里E 表示单位阵.并称B 为A 的逆矩阵,记B=1-A .方阵A 可逆的充分必要条件是A 的行列式det A ≠0.求逆矩阵理论上的公式为*1det 1A AA =-, (3.4)这里*A 为A 的伴随矩阵.利用逆矩阵,当A 可逆时,(3.2)的解可表示为b A x 1-=.由于公式(3.4)涉及大量行列式计算,数值计算不采用.求逆矩阵的数值算法一般是基于矩阵分解的方法.3.特征值与特征向量 【基本观点】对于方阵A ,若存在数λ和非零向量x ,使,x Ax λ= (3.5) 则称λ为A 的一个特征值,x 为A 的一个对应于特征值λ的特征向量.特征值计算归结为特征多项式的求根.对于n 阶实数方阵,特征多项式在复数范围内总有n 个根。
matlab线性方程组求解实验报告
4. (1)Guass 消去法 请输入系数方阵 A=[3 2 1;2 3 1;1 2 3] 请输入列向量 B=[39;34;26] 合并后的增广矩阵为 c= 3 2 1 2 3 2 1 1 3 39 34 26
开始进行列主元消元法 c=
3 2 1
2 3 2
1 1 3
39 34 26
c= 3.00000000000000 0 0 消元后的矩阵 C c= 3.00000000000000 0 0 2.00000000000000 1.66666666666667 0 1.00000000000000 39.00000000000000 0.33333333333333 8.00000000000000 2.40000000000000 6.60000000000000 2.00000000000000 1.66666666666667 1.33333333333333 1.00000000000000 39.00000000000000 0.33333333333333 8.00000000000000 2.66666666666667 13.00000000000000
A=[2/3 1/3;2/3 1/3;1/3 2/3];%第二次试验的方程组
B=[39/3;34/3;26/3]; c=[];d=[];e=[]; x=zeros(1,3);y=zeros(1,3); y(1)=B(1)-A(1,1)*x(2)-A(1,2)*x(3); y(2)=B(2)-A(2,1)*x(1)-A(2,2)*x(3); y(3)=B(3)-A(3,1)*x(1)-A(3,2)*x(2); c=[c;y(1)];d=[d;y(2)];e=[e;y(3)]; while i<20 %abs(x(1)-y(1))>0.001&abs(x(2)-y(2))>0.001&abs(x(3)-y(3))>0.001 x=y; %x y(1)=B(1)-A(1,1)*x(2)-A(1,2)*x(3);c=[c;y(1)]; y(2)=B(2)-A(2,1)*x(1)-A(2,2)*x(3);d=[d;y(2)]; y(3)=B(3)-A(3,1)*x(1)-A(3,2)*x(2);e=[e;y(3)]; i=i+1; end plot(c,'-r'); hold on; plot(d,'-k'); plot(e,'-b'); hold off legend('x1','x2','x3','Location','NorthWest');
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三使用MATLAB解决线性代数问题学院:数计学院班级:1003班姓名:黄晓丹学号:1051020144
实验目的:
学习MATLAB有关线性代数运算的指令,主要学习运用MATLAB解决矩阵除法,线性方程组的通解,矩阵相似
对角化问题,以及解决投入产出分析等应用问题。
实验内容:
矩阵转置:A=[1 2;3 4];B=[4 3;2 1];
>> A',B'
ans =
1 3
2 4
ans =
4 3
3 1
矩阵加减:A-B
ans=
-3 -1
1 3
矩阵乘法:A*B,A.*B(数组乘法)||比较矩阵乘法与数组乘法的区别ans=
8 5
20 13
ans=
4 6
6 4
矩阵除法:A\B,B./A
ans=
-6 -5
5 4
ans=
4 1.5
0.6667 0.25
特殊矩阵生成:zeros(m,n)||生成m行n列的矩阵
ones(m,n)||生成m行n列的元素全为一的矩阵
eye(n)||生成n阶单位矩阵
rand(m,n)||生成m行n列[0 ,1]上均匀分布随
机数矩阵
zeros(2,3)
ans =
0 0 0
0 0 0
>> ones(3,3)
ans =
1 1 1
1 1 1
1 1 1
>> eye(3)
ans =
1 0 0
0 1 0
0 0 1
>> rand(2,4)
ans =
Columns 1 through 3
0.9501 0.6068 0.8913
0.2311 0.4860 0.7621
Column 4
0.4565
0.0185
矩阵处理:trace(A)||返回矩阵的迹
diag(A)||返回矩阵对角线元素构成的向量
tril(A)||提取矩阵的下三角部分
triu(A)||提取矩阵的上三角部分
flipud(A)||矩阵上下翻转
fliplr(A)||矩阵左右翻转
reshape(A,m,n)||将矩阵的元素重排成m行n列矩阵A=[1 2 3;4 5 6;7 8 9];
>> t=trace(A),d=diag(A),u=triu(A)
t =
15
d =
1
5
9
u =
1 2 3
0 5 6
0 0 9 flipud(A),fliplr(A)
ans =
7 8 9
4 5 6
1 2 3 ans =
3 2 1
6 5 4
9 8 7
矩阵特征值与标准型:
[V,D]=eig(A)||返回矩阵特征值与特征向量
[V J]=Jordan(A)||返回矩阵的相似变换矩阵和若尔当标
准型
A=[1 2;3 4];
>> [V,D]=eig(A)
V =
-0.8246 -0.4160
0.5658 -0.9094
D =
-0.3723 0
0 5.3723
>> [V,J]=jordan(A)
V =
0.2389 0.7611
0.5222 -0.5222
J =
5.3723 0
0 -0.3723
线性方程组求解A=[1 2 1;3 -2 1];B=[1;4];x=A\B x =
1.2500 ||求一特解
-0.1250
>> A=[1 2;3 -2;1 -1];B=[1;4;2];x=A\B
x = ||求得一最小二乘近似解
1.2838
-0.1757:
方阵的相似对角化及应用:
A=[1 1/4 0;0 1/2 0;0 1/4 1];[P,T]=eig(A) P =
1.0000 0 -0.4082
0 0 0.8165
0 1.0000 -0.4082
T =
1.0000 0 0
0 1.0000 0
0 0 0.5000
求得三个特征值1,1,0.5,对应特征向量(1,0,0),(0,0,1),
(-0.4028,0.8165,-0.4082),由于三个特征向量线性无关,从而A 可相似对角化,即p-1AP=T.那么A∧n=p[1 0 0;0 1 0;0 0 0]p-1,计算的
P*diag([1,1,0])*inv(P)
ans =
1.0000 0.50000 0
0 0 0
0 0.5000 1.0000
所以得到近似解。
投入产出问题:
设金鱼某种遗传病染色体的正常基因为A,不正常基因为a,那么,AA,Aa,aa,分别表示正常金鱼,隐形患者,显性患者,设初始分布为90%正常金鱼,10%的隐性患者,无显性患者,考虑下列两种配种方案对后代该遗传病基因型分布的影响,
方案一:同类基因结合,均可繁殖;
方案二:显性患者不允许繁殖,隐形患者必须与正常金鱼结合繁殖。
解:先考虑方案一,设初始分布x(1),x(2),x(3),第n带分布为x1(n),x2(n),x3(n),n=1,2……,令
A=(1 1/4 0 (x1(n)
0 1/2 0 X(N)=x2(n)
0 1/4 1) x3(n))
那么X(n)=AX(n-1)
A=[1 1/4 0;0 1/2 0;0 1/4 1];
>> x=[0.9 0.1 0]';
>> for i=2:20,x=A*x;end;x20=x
x20 =
0.9500
0.0000
0.0500
可见,按方案一,很多代后,将出现5%的稳定现行患者。
类似的对于方案二,状态转移矩阵变为A=(1 1/2 0
0 1/2 0
0 0 0)
A=[1 1/2 0;0 1/2 0;0 0 0];
>> x=[0.9 0.1 0];
>> for i=2:20,x=A*x;end;x20=x
x20 =
1.0000
0.0000
可知按方案二,很多后代以后,不仅不会出现隐性患者,连隐形患者也趋于消失,这个例子提现了杂交的优势。
实验心得:
通过此实验,我学会了用matlab解决线性代数这些比较不容易计算的问题,也学会了用多个方法解决问题思考问题,对这门课的兴趣也加深了。