实验一用matlab求解线性方程组
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验1.1 用matlab 求解线性方程组
第一节 线性方程组的求解 一、齐次方程组的求解
rref (A ) %将矩阵A 化为阶梯形的最简式
null (A ) %求满足AX =0的解空间的一组基,即齐次线性方程组的基
础解系
【例1】 求下列齐次线性方程组的一个基础解系,并写出通解:
我们可以通过两种方法来解: 解法1:
>> A=[1 -1 1 -1;1 -1 -1 1;1 -1 -2 2]; >> rref(A) 执行后可得结果: ans=
1 -1 0 0 0 0 -1 1 0 0 0 0 由最简行阶梯型矩阵,得化简后的方程
⎪⎩⎪
⎨⎧=+--=+--=-+-0
22004321
43214321x x x x x x x x x x x x
取x2,x4为自由未知量,扩充方程组为
即
提取自由未知量系数形成的列向量为基础解系,记
所以齐次方程组的通解为
解法2: clear
A=[1 -1 1 -1;1 -1 -1 1;1 -1 -2 2];
B=null(A, 'r') % help null 看看加个‘r’是什么作用,
若去掉r ,是什么结果?
执行后可得结果: B=
1 0 1 0 0 1 0 1
⎩⎨
⎧=-=-0
04321x x x x ⎪⎪⎩⎪⎪⎨
⎧====4
4432221x x x x x x x x ⎥⎥⎥
⎥⎦⎤
⎢⎢⎢⎢⎣⎡+⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎦
⎤⎢⎢⎢⎢⎣⎡1100001142
4321x x x x x x ,
00111⎥⎥⎥⎥⎦
⎤
⎢⎢⎢⎢⎣⎡=ε,
11002⎥⎥⎥⎥⎦
⎤⎢⎢⎢⎢⎣⎡=ε2
211εεk k x +=
易见,可直接得基础解系
所以齐次方程组的通解为
二、非齐次线性方程组的求解 Matlab 命令的基本格式:
X =A\b %系数阵A 满秩时,用左除法求线性方程组AX =b 的解
注意:A/B 即为AB -1, 而A\B 即为A -1B.
C =[A,b];
D =rref(C) % 求线性方程组AX =b 的特解,即D 的最后一列元素
【例2】 求下列非齐次线性方程组的解:
,
00111⎥⎥⎥⎥⎦
⎤⎢⎢⎢⎢⎣⎡=ε,
11002⎥⎥⎥⎥⎦
⎤⎢⎢⎢⎢⎣⎡=ε⎪⎪⎪⎩⎪
⎪⎪⎨⎧=+=++=++=++=+1
50
65065065165545
4354332121x x x x x x x x x x x x x 2
211εεk k x +=
解: clear
A=[5 6 0 0 0;1 5 6 0 0;0 1 5 6 0;0 0 1 5 6;0 0 0 1 5]; b=[1;0;0;0;1];
format rational %采用有理数近似输出格式,
比较format short 看看
x=A\b
执行后可得所求方程组的解. 作业:
【第一题】 求下列非齐次线性方程组的通解.
A=[1 2 3 1;1 4 6 2;2 9 8 3;3 7 7 2] B=[3;2;7;12] format rational x=A\B x =
⎪⎪⎩⎪⎪⎨
⎧=+++=+++=+++=+++12
27737389222643324321432143214321x x x x x x x x x x x x x x x x
4
2/3
1/2684838239393950
-7/3
【第二题】计算工资问题
一个木工,一个电工,一个油漆工,三个人相互同意彼此装修他们自己的房子。在装修之前,他们达成如下协议:
(1)每人总共工作十天(包括给自己家干活在内);
(2)每人的日工资根据一般的市价在60~80元之间;
(3)每人的日工资数应使得每人的总收入与总支出相等。
下为他们协商后制定出的工作天数分配方案:
解:设在木工、电工和油漆工每天的工资数分别为x,y和z;
依题意得
8x=y+6z
5y=4x+z
7z=4x+4y
即为8x-y-6z=0
4x-5y+z=0
4x+4y-7z=0
clear
A=[8 -1 -6;4 -5 1 ;4 4 -7];
B=null(A, 'r')
B =
0.8611
0.8889
1.0000
实验1.2 M ATLAB程式设计与应用
-----二维绘图部分
基本xy平面绘图命令
M ATLAB不但擅长于矩阵相关的数值运算,也适合用在各种科学的可视化表示(Scientific Visualization)。本节将介绍MATLAB基本xy平面的一些绘图命令。
1.Plot作图 plot是绘制一维曲线的基本函数,但在使用此函数之前,我们需先定义
曲线上每一点的x及y坐标。下例可画出一条正弦曲线:
close all; %关闭所有的图形视窗
x=linspace(0, 2*pi, 100); % 100个点的x坐标
y=sin(x); % 对应的y坐标