MATLAB上机实验

《几何与代数》数学实验报告完全攻略

标签: 东南大学 15-16-2 MATLAB上机实验

实验一

利用MATLAB用三种不同的方法求解线性方程组 。其中,常数项列向量 b 的分量是你的学号,系数矩阵为

《MATLAB上机实验》

方法一:利用Cramer法则求解;
方法二:作为矩阵方程求解;
方法三:利用Gauss消元法求解。

方法一

  • 使用format short控制浮点数出
  • 输入完每一行后加上分号可以取消输出
  • 在第3行输入自己的学号
//将代码复制到控制台窗口并修改数据
format short;
b =[0;9;0;1;5;3;?;?];
a1=[1;1;0;0;0;0;0;0];
a2=[1;2;1;0;0;0;0;0];
a3=[0;1;3;1;0;0;0;0];
a4=[0;0;1;4;1;0;0;0];
a5=[0;0;0;1;5;1;0;0];
a6=[0;0;0;0;1;6;1;0];
a7=[0;0;0;0;0;1;7;1];
a8=[0;0;0;0;0;0;1;8];
A =[a1,a2,a3,a4,a5,a6,a7,a8];
A1=[b ,a2,a3,a4,a5,a6,a7,a8];
A2=[a1,b ,a3,a4,a5,a6,a7,a8];
A3=[a1,a2,b ,a4,a5,a6,a7,a8];
A4=[a1,a2,a3,b ,a5,a6,a7,a8];
A5=[a1,a2,a3,a4,b ,a6,a7,a8];
A6=[a1,a2,a3,a4,a5,b ,a7,a8];
A7=[a1,a2,a3,a4,a5,a6,b ,a8];
A8=[a1,a2,a3,a4,a5,a6,a7,b ];
x1=det(A1)/det(A)
x2=det(A2)/det(A)
x3=det(A3)/det(A)
x4=det(A4)/det(A)
x5=det(A5)/det(A)
x6=det(A6)/det(A)
x7=det(A7)/det(A)
x8=det(A8)/det(A)

09015326 为例,结果为

x1 =
  -14.1930
x2 =
   14.1930
x3 =
   -5.1930
x4 =
    1.3861
x5 =
    0.6487
x6 =
    0.3706
x7 =
    0.1279
x8 =
    0.7340

方法二

  • MATLAB通常忽视排版
  • 使用 shift + enter 可以另起新的一行
  • 在第13行输入自己的学号
//将代码复制到控制台窗口并修改数据
format short;
A=  [
    1,1,0,0,0,0,0,0;
    1,2,1,0,0,0,0,0;
    0,1,3,1,0,0,0,0;
    0,0,1,4,1,0,0,0;
    0,0,0,1,5,1,0,0;
    0,0,0,0,1,6,1,0;
    0,0,0,0,0,1,7,1;
    0,0,0,0,0,0,1,8
    ];
b=  [0;9;0;1;5;3;?;?];
X=  inv(A)*b

仍然以 09015326 为例,结果仍为

X =
  -14.1930
   14.1930
   -5.1930
    1.3861
    0.6487
    0.3706
    0.1279
    0.7340

方法三

  • 在第13行输入自己的学号
//将代码复制到控制台窗口并修改数据
format short;
A=  [
    1,1,0,0,0,0,0,0;
    1,2,1,0,0,0,0,0;
    0,1,3,1,0,0,0,0;
    0,0,1,4,1,0,0,0;
    0,0,0,1,5,1,0,0;
    0,0,0,0,1,6,1,0;
    0,0,0,0,0,1,7,1;
    0,0,0,0,0,0,1,8
    ];
b=  [0;9;0;1;5;3;?;?];
rref([A,b])

再以 12345678 为例,结果则为

ans =
    1.0000         0         0         0         0         0         0         0    0.6742
         0    1.0000         0         0         0         0         0         0    0.3258
         0         0    1.0000         0         0         0         0         0    0.6742
         0         0         0    1.0000         0         0         0         0    0.6517
         0         0         0         0    1.0000         0         0         0    0.7191
         0         0         0         0         0    1.0000         0         0    0.7529
         0         0         0         0         0         0    1.0000         0    0.7632
         0         0         0         0         0         0         0    1.0000    0.9046

实验二

eigshow是MATLAB中平面线性变换的演示函数。对于矩阵,键入eigshow(),分别显示不同的单位向量及经变换后的向量 y=A x。用鼠标拖动 x 旋转,可以使 x 产生一个单位圆,并显示 A x 所产生的轨迹。分别对矩阵

《MATLAB上机实验》

考察单位向量 x 变化时,变换后所得向量 y 的轨迹,回答下列问题,并用代数方法解释。

  1. xy 会不会在同一直线上?如果 xy 在同一直线上,它们的长度之比是多少?
  2. 对哪些矩阵,xy 的转向相同,哪些相反?
  3. 你还发现什么有什么规律?
  4. 你能用代数知识解释这些现象吗?
  • 输入并观察
  • 第6至10行应分开输入
//将代码复制到控制台窗口并修改数据
A=[2,0;0,3];
B=[1/2,0;0,1/3];
C=[1,2;2,1];
D=[3,1;2,3];
M=[3,-1;2,3];
//从这里开始一行一行复制并执行,并截图
eigshow(A)
eigshow(B)
eigshow(C)
eigshow(D)
eigshow(M)

实际上,设

《MATLAB上机实验》

那么所得结果等价于参数方程

《MATLAB上机实验》

第一问

eigshow(A) xy 会在一条直线上,长度比为 23
eigshow(B) xy 会在一条直线上,长度比为 1/21/3
eigshow(C) xy 会在一条直线上,长度比为 31
eigshow(D) xy 会在一条直线上,长度比为 3+√23-√2
eigshow(M) xy 不在一条直线上。

第二问

eigshow(A) xy 转向相同;
eigshow(B) xy 转向相同;
eigshow(C) xy 转向相反;
eigshow(D) xy 转向相同;
eigshow(M) xy 转向相同;

第三问

第四问

    原文作者:shellqiqi
    原文地址: https://www.jianshu.com/p/ea7ceb985d1f
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞