




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第12章Matlab初步12.1
Matlab简介
12.2微积分在Matlab中的实现
12.3线性代数在Matlab中的实现
12.4函数作图在Matlab中的实现
12.1
Matlab简介
12.1.1
Matlab的特点
1.Matlab语言具有易学易用性
Matlab语言不要求用户有多么高深的数学知识和程序设计语言知识,也不需要用户熟练掌握算法及编程技巧,用户只需输入所求解问题的数学表达式,就可以得到运算结果.Matlab既是一种编程环境,又是一种程序设计语言.这种语言与高级程序设计语言(如C、VB)一样,有其特定的语法规则,但它的规则更加贴近数学表示,所以使用起来很方便.而且Matlab具有更加强大的语句功能,一条语句或是函数就可以完成一项较为复杂的任务,如FFT语句就可以完成对指定数据的快速傅里叶变换,这相当于几十条乃至几百条C程序设计语言语句的功能.
2.Matlab语言具有实用方便性
Matlab具有丰富的数值计算和符号计算功能,其数值计算功能只要包括:矩阵运算、多项式运算、有理分式运算、数据统计分析、数值积分和优化处理等.符号计算可以得到问题的解析解.同时,Matlab语言还增加了类与对象以及函数句柄功能,用户可以利用类与对象和函数句柄功能创建自定义的类函数及函数句柄,极大地增强了Matlab语言的编程功能.
3.Matlab语言具有强大绘图功能
无论是数值计算,还是符号计算;无论计算是多么完美,结果是多么准确,人们还是很难直接从大量的数据或者符号中感受它们的具体含义.大家更喜欢直接用眼睛看到直观的图形.因此,对一个好的数学软件来说,为用户提供完整的可视化工具至关重要.而Matlab软件恰恰做到了这一点,从最原始版本的Matlab开始,图形功能就已经成为其基本的功能之一.随着Matlab版本的逐步升级,Matlab的图形工具箱从简单的点、线、面处理发展到了集二维图形、三维图形、甚至四维图形和对图形进行着色、消隐、光照处理、渲染和多视角处理等多项功能于一体的强大功能包.12.1.2
Matlab的基本操作
1.Matlab初始化与桌面布局
在Windows2000环境下,使用Matlab安装盘,根据需要选择并按照提示进行安装后,双击Matlab程序的图标,或在程序菜单中单击Matlab程序既可以运行.运行后,出现如图12-1所示窗口.
该窗口即为Matlab的操作桌面,它包括4个窗口:命令窗口(CommandWindow)、工作空间窗口(WorkspaceBrowser)、当前目录浏览器(CurrentDirectory)、命令历史窗口(CommandHistory).图12-1
2.命令窗口(CommandWindow)
Matlab的命令窗口处于图12-1所示的右侧固定位置,是所有窗口中最大的窗口.其中,“>>”为运算提示符,表示Matlab正处在准备状态.当在“>>”后输入一段运算式并按回车键后,Matlab将给出计算结果,然后,再次进入准备状态.
3.工作空间窗口(WorkspaceBrowser)
工作空间窗口是Matlab的重要组成部分.用于显示工作空间保存的所有变量的名称、维数大小、字节数和数据类型。该窗口上方有一行快捷按钮,分别表示建立新变量、打开所选变量、调入数据文件、保存、打印、删除和图形方式显示变量等.
4.当前目录浏览器(CurrentDirectory)
当前目录是指Matlab运行文件时的工作目录,只有在当前目录或者搜索路径下的文件及函数才可以被运行或者调用.Matlab默认的目录为安装目录下的work,为了便于文件和数据的管理,最好设置自己的目录为当前目录。当前目录浏览器会显示该目录下的所有文件的文件名、类型和目录的修改时间等.
5.命令历史窗口(CommandHistory)
命令历史窗口会保留自安装起所有命令的历史记录,并标明此命令的使用时间,这方便了用户的查询.双击某一行命令,即在命令窗口中执行该行命令.12.1.3
Matlab的帮助系统
熟悉Windows的用户都知道,每当用户不知道一个命令的格式或函数的意义时,用户都可以寻求帮助.与其他科学计算软件一样,Matlab也有自己非常完善的帮助系统.帮助导航浏览器(HelpBrowser)为我们提供了方便快捷的帮助信息获取途径以及图文并茂的帮助内容.如果用户想了解某个函数的用法及输入格式,就可以通过帮助导航浏览器(HelpBrowser)来获得帮助.同时Matlab还有演示性帮助栏,只要用户选择了需要帮助的条目后,在右侧窗口就会以图形用户界面进行演示帮助,而且还会给出相应的程序代码.12.1.4
Matlab常用命令和技巧
1.一些通用命令
学习Matlab就必须熟悉一些通用命令.表12-1给出了最常用的几个通用命令.表12-1
2.一些常量
Matlab语言本身也具有一些预定义的变量,这些特殊的变量称为常量,如表12-2所示.表12-2
3.标点
在Matlab语言中,一些标点符号也被赋予了特殊的意义,如表12-3所示.表12-3 12.2微积分在Matlab中的实现
12.2.1函数、极限、导数与微分在Matlab中的实现
1.一些基本符号运算函数
x=sym(‘x’)
功能:创建一个符号变量x.
syms
x
y
z
功能:创建多个符号变量x、y、z.
r=collect(M,v)
功能:合并同类项,M是符号表达式,v是变量或表达式,r是合并同类项后的结果.
factor(M)
功能:符号计算的因式分解,M是待分解的符号多项式.
expand(M)
功能:对符号多项式或函数M进行展开.
r=simple(M)
功能:对符号表达式M进行化简.
vpa(M)
功能:对符号表达式M计算其任意精度的数值.
2.极限运算
limit(F,x,a)
功能:计算符号表达式F=F(x)的极限值,当x→a时.
limit(F,x,inf)
功能:计算符号表达式F=F(x)的极限值,当x→∞时.
limit(F,x,a,′right′)或limit(F,x,a,′left′)
功能:计算符号函数F的单侧极限:左极限x→a-或右极限x→a+.
例12-1计算极限 .
解
Matlab命令为
symsx;
y=(1+3*x)^(1/x);
limit(y,x,0)
ans=exp(3)
3.求导与微分运算
diff(S)
功能:求函数S的1阶导数,其中,S为符号函数.
diff(S,n)
功能:求函数S的n阶导数,其中,S为符号函数.
例12-2求函数4x3+3x+2的二阶导数.
解
Matlab命令为
symsx;
S=4*x^3+3*x+2;
diff(S,2)
ans=24*x
4.求函数的极值点
命令:fmin(fun,x1,x2).
功能:在区间[x1,x2]内求函数fun的极小值.
12.2.2不定积分、定积分与广义积分在Matlab中的实现
1.求不定积分运算
int(S)
功能:对符号表达式S中的符号变量v计算不定积分.
int(S,v)
功能:对符号表达式S中指定的符号变量v计算不定积分。需要注意的是,表达式R只是函数S的一个原函数,后面没有带任意常数C.
例12-3计算极限
解
Matlab命令为
symsx;
S=x*log(x);
int(S)
ans=1/2*x^2*log(x)-1/4*x^2
2.求定积分运算
int(S,a,b)
功能:对符号表达式s中的符号变量v计算从a到b的定积分.
int(S,v,a,b)
功能:对表达式s中指定的符号变量v计算从a到b的定积分.
例12-4计算极限
解
Matlab命令为
symsx;
S=cos(x)*cos(2x);
int(S,x,-pi/2,pi/2)
ans=2/312.2.3微分方程在Matlab中的实现
1.常微分方程的通解
dsolve(“微分方程”)
功能:对默认的自变量求微分方程的通解.
dsolve(“微分方程”,“自变量”)
功能:对指定的自变量求微分方程的通解.
2.常微分方程的特解
dsolve(“微分方程”、“初始条件1,条件2,…”、“自变量”)
功能:对默认的自变量求微分方程的通解.
例12-5求微分方程y'-x5y=0的通解.
解
Matlab命令为
symsx;
dsolve('Dy-x^5*y=0','x')
ans=C1*exp(1/6*x^6)
例12-6求微分方程y''-a2y'=0满足初始条件y(0)=1,y'(p/a)=0的特解.
解
Matlab命令为
symsx,a;
dsolve('D2y=-a^2*y','y(0)=1','Dy(pi/a)=0')
ans=cos(a*t)12.2.4多元函数微积分在Matlab中的实现
1.多元函数的极限
例12-7求极限
解
Matlab命令为
symsx,y;
limit(limit((2-sqrt(x*y+4))/(x*y),y,0),x,0)
ans=-1/4.
2.多元函数偏导数
diff(S,′v′)
功能:对表达式S中指定符号变量v计算1阶偏导数.
diff(S,′v′,n)
功能:对表达式S中指定的符号变量v计算n阶偏导数.
例12-8计算
解
Matlab命令为
symsx,y;
diff(sin(x^2)*y^2,2)
ans=-4*sin(x^2)*x^2*y^2+2*cos(x^2)*y^2
例12-9计算
解
Matlab命令为
symsx,y;
D1=diff(sin(x^2)*y^2,2);
diff(D1,y)
ans=-8*sin(x^2)*x^2*y+4*cos(x^2)*y
3.多元函数的极值
fminsearch(fun,x0)
功能:求多元函数fun在x0附近的极值点.
例12-10计算 ,其中,D是由直线y=2x,y=x/2,y=12-x围成的闭区域.
4.二重积分
现行数学软件中没有直接计算重积分的函数或命令,所以仍用求定积分的命令来计算。问题的关键是确定积分上下限的问题.这时可以借助绘图命令画出积分区域,并依此确定积分上下限.
解
Matlab命令为
symsx,y;
f=x^2/y^2;y1=2*x;y2=x/2;y3=12-x;
ezplot(y1);hodeon;ezplot(y2);hodeon;ezplot(y3,[-2,10])
A=int(int(f,y,x/2,2*x),x,0,4)+int((int(f,y,x/2,12-x),x,4,8)12.2.5级数在Matlab中的实现
1.常数项级数
Symsum(级数一般项.)
功能:对默认的变量求级数的和.
Symsum(级数一般项,变量.)
功能:对指定的变量求级数的和.
Symsum(级数一般项,起始值,终止值.)
功能:对默认的变量求级数从“起始值”到“终止值”的部分和.
Symsum(级数一般项,变量,起始值,终止值.)
功能:对指定的变量求级数从“起始值”到“终止值”的部分和.
2.幂级数
symsnx
limit((n+1)/n,n,inf)
%功能:求收敛半径.
ans=1
taylor(函数,阶数n,x0点,变量x)
功能:将给定“函数”在“x0”点处按“变量x”展开成n-1阶的泰勒级数,此命令中后三个参数都可以选择省略。当都被省略后,按默认变量将给定的函数展开成5阶麦克劳林级数.
symsx;
taylor(exp(x))
%功能:将指数函数展开成麦克劳林级数.
ans=1+x+1/2*x^2+1/6*x^3+1/24*x^4+1/120*x^5
taylor(sin(x),8)
%功能:将正弦函数展开成麦克劳林级数.
ans=x-1/6*x^3+1/120*x^5-1/5040*x^7
taylor(exp(-x^2),x,8)
%功能:将负平方指数函数展开成麦克劳林级数.
ans=1-x^2+1/2*x^4-1/6*x^6 12.3线性代数在Matlab中的实现
12.3.1矩阵、向量及其运算在Matlab中的实现
1.矩阵的生成
(1)直接输入小矩阵.
不管是任何矩阵,我们可以直接按行方式输入每个元素:同一行中的元素用逗号(,)或者用空格符来分隔,且空格个数不限;不同的行用分号(;)分隔。所有元素处于一方括号([])内;当矩阵是多维(三维以上),且方括号内的元素是维数较低的矩阵时,会有多重的方括号.如:
>>Time=[11
12
1
2
3
4
5
6
7
8
9
10]
Time=
11
12
1
2
3
4
5
6
7
8
9
10
>>X_Data=[2.32
3.43;4.37
5.98]
X_Data=
2.43
3.43
4.37
5.98
>>vect_a=[1
2
3
4
5]
vect_a=
1
2
3
4
5
>>Matrix_B=[1
2
3;
>>
2
3
4;3
4
5]
Matrix_B=1
2
3
2
3
4
3
4
5
>>Null_M=(
)
%功能:生成一个空矩阵.
(2)大矩阵的生成.
对于大型矩阵,一般创建M文件,以便于修改.
例12-11用M文件创建大矩阵,文件名为example.m.
解exm=[456 468 873 2 579 55
21 687 54 488 8 13
65
4567 88 98 21 5
456
68 4589
654 5 987
5488 10 9 6 33 77]
在MATLAB窗口输入:
>>example;
>>size(exm)
%功能:显示exm的大小.
ans=
5
6
%表示exm有5行6列.
(3)特殊矩阵的生成.
命令全零阵
函数zeros
格式B=zeros(n)
%生成n×n全零阵.
B=zeros(m,n) %生成m×n全零阵.
B=zeros([mn]) %生成m×n全零阵.
命令单位阵
函数eye
格式Y=eye(n) %生成n×n单位阵.
Y=eye(m,n) %生成m×n单位阵.
命令全1阵函数ones
格式Y=ones(n) %生成n×n全1阵.
Y=ones(m,n) %生成m×n全1阵.
Y=ones([mn]) %生成m×n全1阵.
2.矩阵的基本数学运算
(1)加、减运算.
运算符:“+”和“-”分别为加、减运算符.
运算规则:对应元素相加、减,即按线性代数中矩阵的“+”,“-”运算进行.
例12-12
>>A=[1,1,1;1,2,3;1,3,6];
>>B=[8,1,6;3,5,7;4,9,2].
解
>>A+B=A+B
>>A-=A-B
结果显示为
A+B=
9 2 7
4 7 10
5 12 8
A-B=
-7 0 -5
-2 -3 -4
-3 -6 4
(2)乘法.
运算符:“*”.
运算规则:按线性代数中矩阵乘法运算进行,即放在前面的矩阵的各行元素,分别与放在后面的矩阵的各列元素对应相乘并相加.
例12-13
>>X=[2
3
4
5;
1
2
2
1];
>>Y=[0
1
1;
1
1
0;
0
0
1;
1
0
0].
解
Z=X*Y
结果显示为
Z=
8
5
6
3
3
3
注:矩阵的数乘为数乘矩阵.
上例中:a=2*X.
则结果显示为
a=
4
6
8
10
2
4
4
2
(3)除法.
Matlab提供了两种除法运算:左除(\)和右除(/).一般情况下,x=a\b是方程a*x=b的解,而x=b/a是方程x*a=b的解.
例12-14
a=[1
2
3;4
2
6;7
4
9]b=[4;1;2];
解
x=a\b
结果显示为
x=
-1.5000
2.0000
0.5000如果a为非奇异矩阵,则a\b和b/a可通过a的逆矩阵与b矩阵得
a\b=inv(a)*b
b/a=b*inv(a)
数组除法:A./B表示A中元素与B中元素对应相除.
(4)矩阵转置.
运算符:“′”.
运算规则:若矩阵A的元素为实数,则与线性代数中矩阵的转置相同.
(5)方阵的行列式.
函数:det.
格式:d=det(X).
例12-15
>>A=[123;456;789]
解
A=
1
2
3
4
5
6
7
8
9
>>D=det(A)
D=
0
(6)逆矩阵.
命令:逆.
函数:inv.
格式:Y=inv(X).
例12-16求 的逆矩阵.
解
>>A=[1
2
3;2
2
1;3
4
3];
>>Y=inv(A)或Y=A^(-1)
则结果显示为
Y=
1.0000 3.0000 -2.0000
-1.5000 -3.0000 2.5000
1.0000 1.0000 -1.0000
(7)矩阵的迹.
函数:trace
格式:b=trace(A)
功能:返回矩阵A的迹,即A的对角线元素之和.
(8)矩阵的秩.
函数:rank
格式:k=rank(A)
功能:求矩阵A的秩.12.3.2解线性方程组在Matlab中的实现
线性方程的求解分为两类:一类是方程组求唯一解或求特解,另一类是方程组求无穷解即通解.可以通过系数矩阵的秩来判断:
(1)若系数矩阵的秩r=n,则有唯一解.
(2)若系数矩阵的秩r<n,则可能有无穷解.
线性方程组的无穷解=对应齐次方程组的通解+非齐次方程组的一个特解;其特解的求法属于解的第一类问题,通解部分属第二类问题.
1.齐次线性方程组的求解
方程:AX=0至少有一零解,若rank(A)<m,则它有无穷多组解.
解法:null(A,′r′)
例12-17求方程组 的解.解
A=[1-2
3-4;0
1-1
1;-1
0-1
2;1-3
4-5]
a=null(A,′r′)
a=
-1 2
1 -1
1 0
0 1故方程组的通解为
例12-18求方程组 的解.
解
>>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=[10001]′;
R_A=rank(A)
%求秩
X=A\B
%求解运行后结果如下:
R_A=
5
X=
2.2662
-1.7218
1.0571
-0.5940
0.3188
这就是方程组的解.
2.非齐次线性方程组的求解
在Matlab中,对于线性方程组AX=B。利用命令rref(A)可以方便的求出线性方程组系数矩阵、增广矩阵阶梯型的最简形式,并由此写出其通解.
例12-19求非齐次线性方程组 的通解.
解
A=[2
3
1;1-2
4;3
8-2;4-1
9]
B=[4;-5;13;-6]
B=([A,B]);rref(B)
ans=1
0
2-1
0
1-1
2
0
0
0
0
0
0
0
0
则原方程组可以化为 ,令x3=0,显然(-1,2,
0)为原方程组的一个特解.而原方程组的通解为 12.4函数作图在Matlab中的实现
12.4.1二维图形的绘制
1.基本平面图形命令
命令:plot
功能:绘制二维图.
用法:plot(X,Y)当X、Y均为实数向量,且为同维向量(可以不是同型向量),则plot(X,Y)先描出点(x(i),y(i)),然后用直线依次相连.
plot(Y)若Y为实数向量,Y的维数为m,则plot(Y)等价于plot(X,Y),其中,X=1:m.
plot(X1,Y1,X2,Y2,…),其中,Xi与Yi成对出现,plot(X1,Y1,X2,Y2,…)将分别按顺序取两数据Xi与Yi进行画图.
plot(X1,Y1,LineSpec1,X2,Y2,LineSpec2,…)将按顺序分别画出由三参数定义Xi,Yi,LineSpeci的线条。其中,参数LineSpeci指明了线条的类型、标记符号和画线用的颜色.在plot命令中我们可以混合使用三参数和二参数的形式.
说明:参数LineSpec.
功能:定义线的属性.Maltab允许用户对线条定义如下的特性:
(1)线型.线型如表12-4所示.
(2)颜色.颜色如表12-5所示.表12-4表12-5
(3)标记类型.标记类型如表12-6所示.表12-6
例12-20在[0,2*pi]用红线画sin(x),用绿圈画cos(x).
解
x=linspace(0,2*pi,30);
y=sin(x);
z=cos(x);
plot(x,y,′r′,x,z,′g0′)
2.符号函数(显函数、隐函数和参数方程)画图
(1)ezplot.
ezplot(′f(x)′,[a,b])功能:在a<x<b绘制显函数f=f(x)的函数图,如图12-2所示.图12-2
(2)fplot.
fplot(′fun′,lims)
功能:绘制字符串fun指定的函数在lims=[xmin,xmax]的图形.
注意:fun必须是M文件的函数名或是独立变量为x的字符串;fplot函数不能画参数方程和隐函数图形,但在一个图上可以画多个图形.
3.对数坐标图
loglog()
功能:x、y坐标都是对数坐标系.
semilogx()
功能:x坐标轴是对数坐标系.
semilogy()
功能:y坐标轴是对数坐标系.
plotyy()
功能:有两个y坐标轴,一个在左边,一个在右边.
例12-21创建一个简单的半对数坐标图.
解
x=0:0.1:10;
semilogy(x,10.^x)12.4.2三维图形的绘制
1.空间曲线
命令:plot3.
功能:绘制曲线.
用法:plot3(X,Y,Z,S).其中,x、y、z
为n维向量,分别表示曲线上点集的横坐标、纵坐标、函数值,S表示指定颜色、线形等.
plot3(X,Y,Z)其中,x、y、z是都是m*n矩阵,其对应的每一列表示一条曲线.
例12-22在区间[0,10*pi]画出参数曲线x=sin(t),y=cos(t),z=t.
解
t=0:pi/50:10*pi;
plot3(sin(t),cos(t),t)
2.空间曲面
命令:surf.
功能:绘制曲面.
用法:surf(x,y,z).其中,x、y、z为数据矩阵.分别表示数据点的横坐标、纵坐标、函数值.画出数据点(x,y,z)表示的曲面.
例12-23画函数Z=(X+Y).^2的图形.
解
x=-3:0.1:3;
y=1:0.1:5;
[X,Y]=meshgrid(x,y);
Z=(X+Y).^2;
surf(X,Y,Z)
shadingflat
%将当前图形变得平滑12.4.3图形处理的基本技术
1.在图形上加格栅、图例和标注
gridon:在当前图上加格栅.
gridoff:删除格栅.
hh=xlabel(string):在当前图形的x轴上加图例string.
hh=ylabel(string):在当前图形的y轴上加图例string.
hh=zlabel(string):在当前图形的z轴上加图例string.
hh=title(string):在当前图形的顶端上加图例string.
hh=gtext('string'),命令gtext('string')是用鼠标放置标注在现有的图上的.当运行命令gtext('string')时,屏幕上出现当前图形,在图形上出现一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公寓全款交易合同范本
- 净水设备保修合同范本
- 号租用合同范本
- 农村小屋购买合同范本
- 加工定制类合同范本
- 《我为你骄傲》说课稿
- 厂房租住合同范本
- 双方协商写合同范本
- 出租手表合同范本
- 加盟培训机构合同范本
- 2025年广西职业院校技能大赛高职组(商务数据分析赛项)参考试题库资料及答案
- 2025年黑龙江农垦职业学院单招职业倾向性测试题库带答案
- 年度得到 · 沈祖芸全球教育报告(2024-2025)
- 2025年日历表(A4版含农历可编辑)
- 南京旅游职业学院单招职业技能测试参考试题库(含答案)
- 新视野大学英语(第四版)读写教程4(思政智慧版)课件 Unit1 Urban development Section A
- 2017年度项目生产部工作计划推进表甘特图
- 地下室车库综合管线施工布置
- 采购订单模板
- 巴马格纺丝控制系统软件说明书(共46页)
- 肺结核患者管理ppt课件
评论
0/150
提交评论