当前位置:文档之家› 实验一用matlab求解线性方程组

实验一用matlab求解线性方程组

实验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坐标
plot(x,y);
若要画出多条曲线,只需将坐标对依次放入plot函数即可:plot(x, sin(x), x, cos(x))
若要改变颜色,在坐标对后面加上相关字串即可:
plot(x, sin(x), 'c', x, cos(x), 'g')
若要同时改变颜色及图线型态(Line style),也是在坐标对后面加上相关字串即可:plot(x, sin(x), 'co', x, cos(x), 'g*')
图形完成后,我们可用axis([xmin,xmax,ymin,ymax])函数来调整图轴的范围:axis([0, 6, -1.2, 1.2]);
对上述图形还可以加上各种注解与处理:
xlabel('Input Value'); % x轴注解
ylabel('Function Value'); % y轴注解
title('Two Trigonometric Functions'); % 图形标题
legend('y = sin(x)','y = cos(x)'); % 图形注解
grid on; % 显示格线
1
2
3
4
5
6
Input Value
F u n c t i o n V a l u e
Two Trigonometric Functions
此外,我们可用subplot 来同时画出数个小图形于同一个视窗之中:
其语法为 subplot(m,n,p),其中 m , n 代表绘图成 m * n 个子图,m 表示在 y 方向有 m 个图, n 表示在 x 方向有 n 个图,p 是代表第几个子图。

subplot(2,2,1); plot(x, sin(x)); subplot(2,2,2); plot(x, cos(x)); subplot(2,2,3); plot(x, sinh(x)); subplot(2,2,4); plot(x, cosh(x));
02468
02468
实验材料下载地址:
ftp://172. 21.73.244
用户名:kly
密码:kly
数学\07级\09专。

相关主题