MATLAB入门教程Word文档下载推荐.docx
- 文档编号:22956413
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:40
- 大小:708.54KB
MATLAB入门教程Word文档下载推荐.docx
《MATLAB入门教程Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《MATLAB入门教程Word文档下载推荐.docx(40页珍藏版)》请在冰豆网上搜索。
按钮;
命令窗口中的MATLABHelp链接;
命令窗口中的Demos链接。
1.1.5自由探索
用户可以尝试点击MATLAB界面上的各个按钮,看看它们的功能。
如果不小心关闭了当前路径窗口、命令历史记录窗口或命令窗口,可以通过菜单栏的“Desktop”菜单中“DesktopLayoutDefault”恢复,如图1.1.3所示:
图1.1.3把MATLAB界面窗口恢复为默认状态
1.2简单的计算与图形功能
1.2.1大材小用
在命令窗口中的>
>
后面输入:
1.369^2+sin(7/10*pi)*sqrt(26.48)/2.9
并按回车键可得:
图1.2.1MATLAB的计算功能
上面输入的“1.369^2+sin(7/10*pi)*sqrt(26.48)/2.9”是一个命令,它要求MATLAB计算
的值。
经过MATLAB运算的结果为3.3097(近似值)。
可见MATLAB的数学表达式命令格式与很多常用的高级语言相似。
当然MATLAB的功能远远不止这种简单的计算。
点击命令窗口中的Demos链接就可以看到MATLAB的其他基本功能。
1.2.2打开简单的图形窗口
funtool
并按回车键可得如图1.2.2所示的三个窗口:
图1.2.2MATLAB的计算功能
其中上面的两个窗口“Figure1”和“Figure2”中所展示的就是下面的窗口“Figure3”中的两个函数“f=x”和“g=1”在区间[2,2]上的图象。
用户可以在“Figure3”的窗口中填写适当的函数表达式,回车后就可以从上面的窗口中观察到该函数的图象了,也可以通过“Figure3”中的功能键按钮,对所上述函数进行简单操作。
第2章矩阵及其基本运算
本章从最基本的运算单元(矩阵)出发,介绍MATLAB的命令及其用法。
2.1矩阵的输入与生成
2.1.1实数值矩阵的输入
不管是任何矩阵(向量),我们可以直接按行方式输入每个元素:
同一行中的元素用逗号(,)或者用空格符来分隔,且空格个数不限;
不同的行用分号(;
)分隔。
所有元素处于一对方括号([])内。
如:
图2.1.1输入一个行矩阵
注意:
命令行中的百分号(%)起注释的作用,MATLAB自动将%以及其后的内容显示为绿色,在执行这个命令行的命令时,自动忽略%以及其后的内容。
这一点与其他高级计算机语言是类似的。
又如,在命令窗口的提示符>
后面输入
X_Data=[2.323.43;
4.375.98]%这是一个2阶方阵
并按回车键可得
X_Data=
2.32003.4300
4.37005.9800
再如:
图2.1.2可以分行输入一个行矩阵
上面的所提到的逗号和分号在输入的时候要注意输入法状态。
以“智能ABC输入法”为例,在“全角
”或“中文标点
”格式下输入的逗号(,)和分号(;
)将会被MATLAB用红色提示为错误输入,如图2.1.3所示:
图2.1.3智能ABC输入法5.0版的几种输入状态
图2.1.4MATLAB提示
因此,应该在“半角”及“英文标点”格式
下输入标点符号,如逗号(,),分号(;
),句号/小数点(.)。
2.1.2特殊矩阵的生成
1.全零阵。
图2.1.5用函数zeros生成全零阵
2.单位阵。
图2.1.6用函数eye生成全零阵
3.全1阵。
函数ones
格式Y=ones(n)%生成n×
n全1阵
Y=ones(m,n)%生成m×
Y=ones(size(A))%生成与矩阵A相同大小的全1阵
2.2矩阵运算
2.2.1加、减运算(+,-)
图2.2.1矩阵的加减运算
如果把图2.2.1中的命令换成
A=[12;
34];
B=[5,6;
7,8];
C=A+B,D=A-B
则回车后,得到的结果就只有C和D的值了。
由此可见其中的两个分号(一个紧接着A=[12;
34]的后面,另一个紧接着B=[5,6;
7,8]的后面)的作用。
2.2.2乘法
1.两个矩阵相乘(*)。
图2.2.2两个矩阵的乘法运算
2.矩阵的数乘(*)。
图2.2.3矩阵的数乘运算
3.向量点积(dot)。
图2.2.4向量的点积
图2.2.4中的a和b都是2维行向量,c是2维列向量。
比较d_1和d_2可以看出MATLAB允许行向量a和列向量c进行向量的点积运算(只要维数相同即可)。
请比较d_1与d_3以及d_3与d_4。
4.向量叉乘(cross)
图2.2.5向量的叉乘
5.混合积
图2.2.6向量的混合积
2.2.3除法运算
MATLAB提供了两种除法运算:
左除(\)和右除(/)。
当矩阵A可逆时,X=A\B是方程A*X=B的解(这里当然还要求A的行数=B的行数),而X=C/A是方程X*A=C的解(这里当然还要求A的列数=C的列数)。
图2.2.7左除和右除
2.2.4矩阵乘方(^)
图2.2.8矩阵的乘方
上面的[1,2;
2,1]^(-2)要求[1,2;
2,1]是可逆的。
2.2.5矩阵转置(’)
图2.2.9矩阵的转置
若A为复数矩阵,则A’表示A的共轭转置。
对于复数矩阵A,若仅希望转置,则用如下命令:
A.’。
见图2.2.10。
图2.2.10复矩阵的转置与共轭转置
2.2.6方阵的行列式(det)
命令格式:
det(A)
例如:
det([1,2;
3,4])
ans=
-2
又如:
A=[1,2,3;
4,5,6;
7,8,9];
D=det(A)
D=
0
2.2.7方阵的逆矩阵(inv)
inv(A)
inv([1,2;
-2.00001.0000
1.5000-0.5000
若A的行列式的值为0,则MATLAB在执行inv(A)这个命令时会给出警告信息。
例如
图2.2.11对奇异矩阵求逆时MATLAB给出的警告信息
也可以用初等变换的方法来求逆矩阵。
图2.2.12用初等变换的方法来求逆矩阵
用formatrat命令可以使输出格式为有理格式。
图2.2.13以有理格式输出结果
2.2.8方阵的迹(trace)
trace(A)
trace([1,2;
-1,3])
4
2.2.9矩阵的秩(rank)
rank(A)
图2.2.14矩阵的秩
第3章线性方程组
本章介绍利用MATLAB解线性方程组。
我们可以先利用前一章介绍的rank命令计算线性方程组的系数矩阵以及增广矩阵的秩,根据线性代数中关于线性方程组的理论判断一个线性方程组的解存在性,在有解的情况下进一步利用MATLAB解线性方程组。
3.1求线性方程的唯一解或特解
本节通过几个具体的例子介绍如何利用MATLAB求线性方程组的唯一解或特解。
3.1.1利用克拉默法则
例3.1.1.求方程组
的解.
[分析]记该方程组的增广矩阵的1-6列为a_1,a_2,a_3,a_4,a_5,b,并且令系数矩阵的行列式为D,依次用b替换D的1-5列所得到的行列式分别记为D_1,D_2,D_3,D_4,D_5。
根据克拉默法则,当D0时,该方程组有唯一解:
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。
见图3.1.1。
图3.1.1用克拉默法则解线性方程组
我们也可以编写如下程序来解上述方程组
a_1=[5;
1;
0;
0];
a_2=[6;
5;
a_3=[0;
6;
a_4=[0;
1];
a_5=[0;
5];
b=[1;
A=[a_1,a_2,a_3,a_4,a_5];
D=det(A);
X=[];
%空矩阵
fori=1:
5
A(:
i)=b;
%把A的第i列换成b,下面一行的A的第i列就是b了
X=[X,det(A)/D];
%把det(A)/D的值(即x_i的值)添到原X后面
i=i+1;
end
formatrat,X%这样得到的结果与图3.1.1中的结果是一样的
3.1.2利用矩阵除法
记例3.1.1中的方程组为AX=B,则X=A\B。
见图3.1.2。
图3.1.2用矩阵除法解线性方程组
3.1.3利用矩阵的初等变换
记例3.1.1中的方程组的增广矩阵为A,并用初等行变换把A化为行最简形矩阵B,则B的最后一列就是该方程组的解向量。
见图3.1.3。
图3.1.3用矩阵的初等变换解线性方程组
注:
比较图3.1.2和图3.1.3中的结果,想一想:
为什么不一样?
例3.1.2.求方程组
的一个特解。
解:
用MATLAB把该方程组的增广矩阵
化为行最简形(见图3.1.4),从中可以看出该方程组有无数多解,而且X=[1.2500–0.250000]’就是该方程组的一个特解。
图3.1.4用矩阵的初等变换解线性方程组
3.2求线性方程的通解
上一节中所介绍的利用MATLAB化矩阵为行最简形的方法当然可以用来求线性方程组的通解。
本节将介绍如何用函数null求齐次线性方程组的基础解系,以及如何编写简单的程序来求解非齐次线性方程组。
3.2.1求线性齐次方程组的通解
在MATLAB中,函数null用来求解矩阵A的零空间的一组基,即齐次线性方程组A*X=0的解空间的一组基(基础解系),由此可得齐次线性方程组的通解。
null(A)或null(A,’r’)
其中null(A)的返回值是一个矩阵,其列向量组为A的零空间的一组标准正交基,而null(A,’r’)的列向量组为A的零空间的一组基(一般不是单位向量组,也未必是两两正交的)。
例3.2.1.求方程组
的通解。
先用函数null求系数矩阵A=
的零空间的一组基(见图3.2.1)。
图3.2.1比较null(A)与null(A,’r’)的区别
再写出通解(见图3.2.2和图3.2.3):
图3.2.2通解图3.2.3让通解的表达式更精美
3.2.2求非齐次线性方程组的通解
第一步:
判断AX=b是否有解,若有解则进行第二步;
第二步:
求AX=b的一个特解;
第三步:
求AX=0的通解;
第四步:
写出AX=b的通解。
例3.2.2.求解方程组
根据线性代数知识可以编写一个简单的程序来求解这个方程组,见图3.2.4。
图3.2.4一个简单的MATLAB程序
可见该方程组无解。
例3.2.3.求方程组
在MATLAB的命令窗口输入如下图所示的命令,运行后得:
图3.2.5一个简单的MATLAB程序
可见原方程组有无数多组解,且
,即
.
所以原方程组的通解为X=k1
+k2
+
其中k1,k2为任意实数.
第4章二维绘图和三维绘图
MATLAB有很强的绘图功能。
本章介绍一些简单的二维绘图和三维绘图命令。
4.1二维图形的绘制
4.1.1二维曲线的简捷绘制
例4.1.1.画出y=xcosx在区间[4,4]上的图形。
在MATLAB的命令窗口输入如下命令:
ezplot('
x*cos(x)'
[-4*pi,4*pi])
运行后得:
图4.1.1用ezplot命令绘制的y=xcosx的图象
例4.1.2.画出椭圆
在区域[3,3][4,4]内的图形。
x^2/4+y^2/5-1'
[-3,3,-4,4])
图4.1.2用ezplot命令绘制的x2/4+y2/5=1的图象
例4.1.3.画出曲线
在区间[0,]内的图形。
sin(3*t)*cos(t)'
'
sin(3*t)*sin(t)'
[0,pi])
图4.1.3用ezplot命令绘制的参数曲线的图象
4.1.2在同一个坐标系内绘制多条曲线
plot(x1,y1,'
s1'
x2,y2,'
s2'
…)
其中:
'
等为可选参数,用来指定绘制曲线的线型、颜色、数据点形状等。
线型可选参数有:
-(实线),:
(虚线),-.(点划线)和--(双划线)。
颜色可选参数有:
y(黄色),m(品红色),c(青色),r(红色),g(绿色),b(蓝色),w(白色)和k(黑色)。
数据点可选参数有:
.(实心点),o(圆圈),x(叉),+(十字),*(星号),s(方块),d(菱形),v(下三角),^(上三角),<
(左三角),>
(右三角),p(五角星)和h(六角星)。
例4.1.4.在同一个坐标系内画出y=e0.1xsin2x和y=xcosx在区间[,]上的图形。
x=-pi:
0.1:
pi;
%设置x的取值范围和取点间距
y1=exp(0.1*x).*sin(2*x);
y2=x.*cos(x);
%注意其中的.*
plot(x,y1,'
*r'
x,y2,'
ob'
)%两条曲线用不同的数据点形状和颜色
图4.1.4在同一个坐标系内绘制多条曲线
4.2三维图形的绘制
4.2.1三维曲线的绘制
plot3(x1,y1,z1,'
x2,y2,z2,'
等为可选参数,与plot中的用法完全相同,不选则使用默认设置。
如果只绘制一条三维曲线,也可以用简捷的绘制命令ezplot3,命令格式与ezplot类似。
见下面的例子。
例4.2.1.绘制三维螺线
在区间[0,4]上的图形。
(方法一)在MATLAB的命令窗口输入如下命令:
t=0:
4*pi;
x=2*cos(t);
y=2*sin(t);
z=1.5*t;
plot3(x,y,z),xlabel('
x'
),ylabel('
y'
),zlabel('
z'
)%标识坐标轴
运行后得图4.2.1。
图4.2.1用plot3绘制的三维螺线图4.2.2用ezplot3绘制的三维螺线
(方法二)在MATLAB的命令窗口输入如下命令
ezplot3('
2*cos(t)'
2*sin(t)'
1.5*t'
[0,4*pi])
运行后得图4.2.2。
4.2.2三维网线图与表面图的绘制
mesh(x,y,z)%绘制三维网线图
surf(x,y,z)%绘制三维表面图
也可以在调用命令时增加可选参数来改变图形的颜色和线型。
还可以用简捷的绘制命令ezmesh与ezsurf绘制三维网线图与表面图。
例4.2.2.画出曲面z=sin(xy)在区域[2,2][2,2]上的图形。
x=-2:
2;
y=-2:
[X,Y]=meshgrid(x,y);
%用x和y产生“格点”矩阵
Z=sin(X.*Y);
%计算“格点”矩阵的每个“格点”上的函数值
mesh(X,Y,Z)%绘制网线图
运行后得图4.2.3。
图4.2.3用mesh绘制的三维网线图
如果将上面的mesh(X,Y,Z)换成surf(X,Y,Z),则运行后得图4.2.4。
图4.2.4用surf绘制的三维表面图
例4.2.3.画出曲面z=
的图形。
ezsurf('
x*exp(-x^2-y^2)'
)
运行后得图4.2.5。
图4.2.5用ezsurf绘制的三维表面图
4.2.3特殊曲面的绘制
对于空间曲面F(x,y,z)=0,我们通常采用平行截面法来认识该曲面的特性。
即用平行于坐标面的平面去“截”曲面F(x,y,z)=0,通过研究交线的性质来充分认识曲面的性质。
例4.2.4.绘制马鞍面z=x2y2的图形,并用平行截面法观察马鞍面的特点。
edit%新建一个M文件
或者点击MATLAB的菜单栏的“file”按钮,并从弹出的菜单中选择“new”,然后从其子菜单中选择“M-File”(如图4.2.6所示).
图4.2.6新建一个M文件
还可以直接点击MATLAB的工具栏的“”按钮,新建一个M文件.
MATLAB会弹出如图4.2.7所示的M文件编辑器.
图4.2.7M文件编辑器
在上述M文件编辑器中输入如下内容:
%绘制马鞍面z=x^2y^2的图形,并用平行截面法观察马鞍面的特点
x=-4:
4;
y=x;
Z=X.^2-Y.^2;
ix=find(X==2);
%找到x坐标=2的点的位置
px=2*ones(1,length(ix));
%“截痕”上的点的x坐标
py=Y(ix);
%“截痕”上的点的y坐标
pz=Z(ix);
%“截痕”上的点的z坐标
subplot(1,2,1)%把图形窗口划分成1行2列,并在第1个块里建立起坐标系
holdon%保留当前的绘图和确定轴的性质,使后续的图形命令加入现存的图形
plot3(px,py,pz,'
r*'
)%用红色的星号绘制截痕曲线
subplot(1,2,2)%在第2个块里建立起坐标系
plot3(px,py,pz)%在第2个块里绘制“截痕”曲线
%要保存这个M文件可以点击工具栏上的“软盘图标”按钮,
%或从菜单栏选择“Save”或“Saveas”
%首次保存(或用“Saveas”另存)一个M文件都需要指定路径和文件名
%为了不引起麻烦,M文件应该用英文开头(可含数字)的字符串命名
%例如:
ma_an_mian_2007
%要运行这个文件中的程序,有以下三种方法:
%[1]点击文件编辑器上面的菜单[Debug](有些版本可能选[Tools])
%点击选项[run](或[SaveandRun])
%这时在MATLAB工作空间中将会出现该程序执行的结果
%[2]按"
F5"
%[3]直接在MATLAB命令窗中输入这个文件的文件名,然后回车
运行后得图4.2.8。
图4.2.8马鞍面及其被平面所截得的截痕
图4.2.8中左边所显示的是从该马鞍面的正上方俯视的效果。
在该窗口的工具栏中选择三维旋转工具
,可以改变视角,得到图4.2.9所示的效果。
图4.2.9马鞍面及其被平面所截得的截痕(新角度)
4.2.4精细绘制特殊的曲面
例4.2.5.绘制旋转抛物面z=x2+y2的图形。
(粗糙绘制)在MATLAB的命令窗口输入如下命令:
Z=X.^2+Y.^2;
surf(X,Y,Z)%绘制曲面
运行后得图4.2.10(用三维旋转工具调整过角度)。
图4.2.10旋转抛物面
(精细绘制)在MATLAB的命令窗口输入如下命令:
0.01:
%设置x的取值
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 入门教程