版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第8章 数学软件MATLAB及应用MATLAB系统是是目前世界上最流行的科学与工程计算的软件系统,它的计算功能非常强大,能够完成许多复杂的计算,例如,求多项式、有理式和超越方程的精确根或近似根,求函数的极限、导数、积分,求解某些微分方程等以后我们可以知道,MATLAB系统还能完成工程数学的各种计算,它是一种数值计算和图形图像处理工具软件,它的特点是语法结构简明、数值计算高效、图形功能完备、易学易用.它在矩阵代数、数值计算、数字信号处理、振动理论、神经网络控制、动态仿真等领域都有广泛的应用所以,现在它已成为工程技术人员必备的软件本书仅对MATLAB作一简单的介绍8.1 基础知识8.1.1 MAT
2、LAB的安装与启动(Windows操作平台)1安装(1)为电脑接电源,按主机开关,按显示器开关,启动Windows;(2)将MATLAB源光盘插入光驱;(3)在光盘的根目录下找到MATLAB的安装文件Setup.exe;(4)双击该安装文件后,按提示逐步安装MATLAB安装完成后,在程序栏里便有了MATLAB选项,桌面上出现MATLAB的快捷方式(一个MATLAB图标)2启动按上述(1)步打开电脑后,左双击桌面上的MATLAB图标或点程序里的MATLAB选项,即可启动MATLAB系统8.1.2 MATLAB7.0的主菜单MATLAB7.0用户界面的主菜单主要有文件(File)、编辑(Edit)
3、、调试(Debug)、桌面设计(Desktop)、窗口(Window)、帮助(Help)等File菜单的内容如下表8-1所示表8-1 File菜单的使用菜单命令功能New建立M文件、建立图形、建立Simulink模块Open打开已知文件Close Command Window关闭命令窗口Save保存Save Workspace As另存为Set Path设置工作路径Preferences定义工作环境Print Setup打印设置Print打印Print Selection打印指定的文件Exit MATLAB退出MATLABEdit菜单中的命令与Windows界面中的Edit菜单中的命令的使用方
4、法大部分相同.下面将Edit菜单的各项功能列入表8-2中进行介绍表8-2 Edit菜单的各项功能菜单命令功能Undo向前撤消上一步的操作Redo向后撤消上一步的操作Cut将选中内容删除,放入剪贴板Copy将选中内容放剪贴板,但不删除所选内容Paste将剪贴板的内容放入MMATLAB工作窗口Paste to Workspace将剪贴板的内容放入工作间Select All选中命令窗口中的所有内容Delete删除选中内容Find查找Find Files查找文件Clear Session清除命令窗口里的所有显示的内容Clear Command Window清除命令窗口中的内容Clear Command
5、 History清除历史命令Clear Workspace清楚工作间中的内容8.1.3 MATLAB7.0的工具栏MATLAB7.0用户界面的工具栏包括主工具栏和快捷工具栏,主工具栏中各个图标的功能如同所示.新建文件打开文件剪切粘贴复制向前撤销向后撤销获取帮助打开仿真软件快速启动向导打开分析工具通过预览改变当前目录查看或改变当前目录返回上一级目录图8-1 MATLAB7.0主工具栏8.1.4 MATLAB7.0的窗口启动MATLAB7.0以后,就显示MATLAB7.0的用户界面,界面有4个主要窗口:命令窗口(Command Window)、当前路径(Current Directory)窗口、工
6、作间管理(Workspace)窗口、历史命令(Command History)窗口.与以前的MATLAB版本不同的地方在于,MATLAB7.0除了有传统的主工具栏之外,还新增了快捷工具栏(Shortcut Toolbar)1命令窗口(Command Window)图8-2启动MATLAB7.0后,其右半边是Command Windows窗口,这就是命令窗口(右侧蓝色方框内,如图8-2),是MATLAB的主窗口. 命令窗口的空白区域即命令编辑区,用来输入和显示计算结果可键入各种MATLAB命令,进入各种操作输入表达式后按回车键Enter(以后简记为),就能给出计算结果如果你的命令有错误,该窗口将
7、用红字显示出错信息. 如果你在每行命令后面打上分号“;”,则不能显示计算结果,所以需要显示结果的计算命令后面不要打分号2工作间管理(Workspace)窗口图8-3在默认设置下,工作间管理窗口自动显示于MATLAB界面中(左上方的蓝色方框内,如图8-3),它是MATLAB的重要组成部分,例如表达式产生了一个名为的变量,而且这个变量被赋予100的值,这个值就被存储在计算机的内存中工作间管理窗口就是用来显示当前计算机内存中MATLAB变量的名称、数学结构、该变量的字节数及其类型,在MATLAB中不同的变量类型对应不同的变量名图标注意:在MATLAB命令窗口中运行的所有命令都共享一个相同的工作间,所
8、以它们共享所有的变量,初学者应当重视3当前路径(Current Directory)窗口图8-4在默认设置下,工作间管理窗口自动显示于MATLAB界面中(左上方的蓝色方框内,如图8-4),它当前路径窗口显示着当前用户工作所在是路径4历史命令(Command History)窗口图8-5在默认设置下,工作间管理窗口自动显示于MATLAB界面中(左下方的蓝色方框内,如图8-5),它显示用户在命令窗口中所输入的每条命令的历史记录,并标明使用时间,这样可以方便用户的查询.如果用户想在次执行某条已经执行过的命令,只需在历史命令窗口中双击该命令;如果用户需要从历史命令窗口中删除一条或多条命令,只需选中这些
9、命令,并单击左键,在弹出的快捷菜单中选择Delete Selection命令即可8.1.5 MATLAB的程序编辑器MATLAB提供了一个内置的具有编辑和调试功能的程序编辑器. 点击MATLAB用户界面第二行左边第一个按钮,或者依次点击“File”、“New”、“M-file”命令,即可显示Untitled窗口,意味着你已获得程序编辑器,程序编辑器上面第一行是菜单栏,第二行是工具栏,编辑和调试程序非常方便如果程序命令比较多,在命令窗口上修改非常麻烦,此时可在程序编辑器上编辑该程序,并点击工具栏的第三个按钮,就会弹出Work目录框,在Work目录框下面的文件名(N)框内键入你给程序取的文件名(字
10、母开头,最后带“.m”),并点击“保存”,重新返回程序编辑器,依次点击菜单的“Debag”、“Run”按钮,就可以运行你的程序,完成你所要求的运算经过这次保存后,以后每次单击工具栏的第二个按钮,就会显示Work目录,在文件名(N)框内键入你的文件名,并单击“打开”,就会在程序编辑器显示你的程序,可以进行修改或运算计算结果或出错信息显示在MATLAB命令窗口,绘图结果显示在图形窗口8.1.6 MATLAB基本命令与基本函数1基本的系统命令MATLAB的基本系统命令不多,常用的命令功能如表8-3所示表8-3 MATLAB系统基本命令表命令功能exit/quit退出MATLABcd改变当前目录pwd
11、显示当前目录path显示并设置当前路径what/dir/ls列出当前目录中文件清单type/dbtype显示文件内容load在文件中装载工作区save将工作区保存到文件中diary文本记录命令!后面跟操作系统命令2工作区和变量的基本命令MATLAB工作区和变量的基本命令及功能见表8-4所示表8-4工作区和变量命令命令或符号功能或意义clear清除所有变量并恢复除eps外的所有预定义变量who显示当前内存变量列表,只显示内存变量名whos显示当前内存变量详细信息,包括变量名、大小、所占用二进制位数size/length显示矩阵或向量的大小命令pack重构工作区命令format输出格式命令case
12、sen切换字母大小写命令which+<函数名>查询给定函数的路径exist(变量名/函数名)查询变量或函数3MATLAB工作区的键盘操作指令及功能MATLAB工作区的键盘操作指令及功能见表8-5所示:表8-5 在MATLAB工作区用键盘操作的功能键盘操作功能Ctrl+p重调前一行 (用于调出前面的命令进行修改,重新计算)Ctrl+n重调下一行Ctrl+b向前移一个字符Ctrl+f向后移一个字符Ctrl+Ctrl+r右移一个字Ctrl+Ctrl+l左移一个字HomeCtrl+a移动到行首EndCtrl+e移动到行尾EscCtrl+u清除一行DelCtrl+d删除光标处字符Backsp
13、aceCtrl+h删除光标前的一个字符Ctrl+k删除到行尾4MATLAB常用数学函数MATLAB的数学函数很多,可以说涵盖了几乎所有的数学领域下表列出的仅是最简单最常用的(见表8-6)8-6 MATLAB常用数学函数函数数学含义函数数学含义abs(x)求的绝对值,若是复数,即求的模csc(x)求的余割函数,为弧度sign(x)求的符号asin(x)求的反正弦函数,即sqrt(x)求的平方根,即acos(x)求的反余弦函数,即exp(x)求的指数函数,即atan(x)求的反正切函数,即log(x)求的自然对数,即acot(x)求的反余切函数,即log10(x)求的常用对数,即asec(x)求的
14、反正割函数,即log2(x)求的以2为底的对数,即acsc(x)求的反余割函数,即sin(x)求的正弦函数,为弧度Round(x)求最接近的整数cos(x)求的余弦函数,为弧度rem(x,y)求整除的余数tan(x)求的正切函数,为弧度real(z)求复数的实部cot(x)求的余切函数,为弧度Imag(z)求复数的虚部sec(x)求的正割函数,为弧度conj(z)求的共轭,即求实验8-1熟悉MATLAB软件的安装及基本知识8.2 矩阵、数组及程序设计8.2.1 矩阵的输入与运算1矩阵的直接输入MATLAB中不用描述矩阵的类型和维数,它们由输入的格式和内容决定.小矩阵可以用排列各个元的方法输入,
15、同一行元用逗号或空格分开,不同行的元用分号或回车分开如,在MATLAB工作窗口输入:A=1,2,3;4,5,6或A=1 2 3;4 5 6或A=1 2 3 4 5 6都输入了一个2×3矩阵A,屏幕上显示输出变量为A= 1 2 3 4 5 6矩阵中的元可以用它的行、列数表示,例如,在MATLAB工作窗口输入程序:a=A(2,1)%MATLAB区分大小写字母,a和A是不同的变量.运行后输出结果如下:a= 4或者不指定输出变量,MATLAB将回应ans(answer的缩写),如在MATLAB工作窗口输入:A(2,1)运行后输出结果如下:ans= 4A输入后一直保存在工作空间中,可随时调用,
16、除非被清除或替代MATLAB可以直接修改矩阵的元素,如在MATLAB工作窗口输入:A(2,1)=7,A(3,4)=1运行后输出结果如下:A= 1 2 3 7 5 6A= 1 2 3 0 7 5 6 0 0 0 0 1原来的A没有3行4列,MATLAB自动增加行列数,对未输入的元赋值0.2函数生成的矩阵MATLAB提供了一些函数来构造特殊矩阵,如,在MATLAB工作窗口输入:w=zeros(2,3)%2×3零矩阵.运行后输出结果如下:w= 0 0 00 0 0在MATLAB工作窗口输入:u=ones(3)%3×3全1矩阵,方阵只需输入行数,这几个矩阵均如此.运行后输出结果如下
17、:u= 1 1 1 1 1 1 1 1 1在MATLAB工作窗口输入:v=eye(3,4)%3×4对角线为1的矩阵.运行后输出结果如下:v= 1 0 0 0 0 1 0 0 0 0 1 03矩阵的裁剪与拼接从一个矩阵中取出若干行(列)构成新矩阵称为裁剪,MATLAB中“:”是非常重要的裁剪工具,如在MATLAB工作窗口输入:A(3,:)%A的第3行.运行后输出结果如下:ans= 0 0 0 1在MATLAB工作窗口输入:A(:,2)%A的第2列.运行后输出结果如下:ans= 2 5 0在MATLAB工作窗口输入:B=A(1:2,:)%A的第1,2行.运行后输出结果如下:B= 1 2
18、3 0 7 5 6 0在MATLAB工作窗口输入:C=B(:,2:4)%B的第24列.运行后输出结果如下:C= 2 3 0 5 6 0在MATLAB工作窗口输入:D=A(2:3,2:2:4)%A的第2,3行,第2,4列.运行后输出结果如下:D= 5 0 0 1请特别注意“:”的用法,想在MATLAB工作窗口输入程序:A(1:2:3,4:-1:2)应该有什么结果在MATLAB工作窗口输入:D(:,1)=%删除D的第1列,为空集符号运行后输出结果如下:D= 3 2 6 5将几个矩阵接在一起称为拼接,左右拼接时行数要相同,上下拼接时列数要相同,如在MATLAB工作窗口输入:E=D,zeros(2,1
19、)运行后输出结果如下:E= 0 3 2 0 0 6 5 0在MATLAB工作窗口输入:F=A(1:2,:);eye(1,4)运行后输出结果如下:F= 1 2 3 0 7 5 6 0 1 1 1 1在MATLAB工作窗口输入:G=C,ones(2);9,F(1,:)运行后输出结果如下:G= 2 3 0 1 0 5 6 0 0 1 9 1 2 3 04矩阵的运算MATLAB中提供了下列矩阵运算符:+ 加法;- 减法; 转置;* 乘法; 乘幂; 左除;/ 右除.它们要符合矩阵运算的规律,如果矩阵的行列数不符合运算符的要求,将产生错误信息.这里只将左除和右除的用法叙述如下:设A是可逆矩阵,AX=B的解
20、是A左除B,即X=AB(当B为列向量时,得到方程组的解);XA=B的解是A右除B,即X=B/A.还应注意标量与矩阵进行上述运算的含义,请看在MATLAB工作窗口输入程序:E+3运行后输出结果如下:ans= 3 6 5 3 3 9 8 38.2.2 数组及其运算1数组的输入除了像1×n矩阵(行向量)一样地输入外,数组常采用“:”和函数linspace两种输入方式,它们的用法可以从下面的例子知道在MATLAB工作窗口输入:a=1:5%从1到5公差为1的等差数组运行后输出结果如下:a= 1 2 3 4 5在MATLAB工作窗口输入:b=1:2:7%从1到7公差为2的等差数组运行后输出结果如
21、下:b= 1 3 5 7如果输入b=1:2:8,得到同样结果在MATLAB工作窗口输入:c=6:-3:-6%从6到-6公差为-3的等差数组运行后输出结果如下:c= 6 3 0 3 -6在MATLAB工作窗口输入:b=0:2:8,ones(1,3)%等差数组和行向量拼接.运行后输出结果如下:b= 0 2 4 6 8 1 1 1在MATLAB工作窗口输入:linspace(0,1,9)%从0到1共9个数值的等差数组.运行后输出结果如下:ans= 0 0.1250 0.2500 0.3750 0.5000 0.6250 0.7500 0.87500 1.00002数组的运算数组除了作为1×
22、n矩阵(行向量)遵循矩阵运算规则外,MATLAB还为数组提供了一些特殊的运算:.* 乘法;. 乘幂;. 左除;./ 右除.通过下面的例子说明这些运算.在MATLAB工作窗口输入:a=1 2 3 4 5,b=1 3 5 7 9,c=a.*b运行后输出结果如下:a= 1 2 3 4 5b= 1 3 5 7 9c= 1 6 15 28 45在MATLAB工作窗口输入:d=a.2,e=b.a运行后输出结果如下:d= 1 4 9 16 25e= 1 9 125 2401 59049在MATLAB工作窗口输入:f=a./b,g=a.b运行后输出结果如下:f= 1.0000 0.6667 0.6000 0.
23、5714 0.5556g= 1.0000 1.5000 1.6667 1.7500 1.8000可以看出,数组运算是对应元素的运算.8.2.3 语句、变量和表达式1语句形式MATLAB语句的一般形式为:变量=表达式若变量和“=”省略,则名为ans的变量自动建立.如果你输入一个语句并以回车结束,则在工作区中显示计算的结果;如果语句以分号“;”结束,MATLAB只进行计算,不显示计算的结果如果一个表达式太长,可以用续行号将其延续到下一行此外,一行中可以写几个语句,它们之间要用逗号或分号分开如,在MATLAB工作窗口输入:a=1 2 3 4 5;b=1 3 5 7 9; c=a.*b,d=a*b,e
24、=a'*b运行后输出结果如下:c= 1 6 15 28 45d= 95e= 1 3 5 7 9 2 6 10 14 18 3 9 15 21 27 4 12 20 28 365 15 25 35 45 2变量MATLAB的变量由字母、数字和下划线组成,最多31个字符,区分大小写字母,第一个字符必须是字母对于变量,MATLAB不需要任何类型的说明或维数语句当输入一个新变量名时MATLAB自动建立变量并为其分配内存空间MATLAB有几个特殊的量:pi 圆周率;eps 最小浮点数;Inf 正无穷大,特指1/0;NaN 不定值,特指0/0;i,j虚数单位在MATLAB工作窗口输入:a=0 1
25、0,b=1 0 0,c=a./b运行后输出结果如下:a= 0 1 0b= 1 0 0Warning: Divide by zero.c= 0 Inf NaN3字符串字符串是用单引号括起来的字符集合,可以像向量一样进行拼接和裁剪,如在MATLAB工作窗口输入程序:s1=Hello;s2=every;s3=body;s=s1,s2, ,s3,ss=s(1:5)运行后输出结果如下:s= Hello,every bodyss= Hello8.2.4 程序设计MATLAB提供了一个完善的程序设计语言环境,使我们能方便地编制复杂的程序,完成各种计算本节先简要介绍关系、逻辑运算和条件、循环语句等许多高级语言
26、都具备的、编程的重要手段,再着重介绍MATLAB所特有的M文件1关系和逻辑运算MATLAB的关系运算符有:<小于;>大于;<=小于或等于;>=大于或等于;=等于;=不等于.关系运算比较两个数值,当指出的关系成立时结果为1(表示真),否则为0(表示假).关系运算可以作用于两个同样大小的矩阵或数组,结果是一个0,1矩阵或数组,每个分量代表相应的矩阵或数组分量的关系运算结果,例如,在MATLAB工作窗口输入程序:A=1:5,B=5:-1:1运行后输出结果如下:A= 1 2 3 4 5B= 5 4 3 2 1在MATLAB工作窗口输入程序:C=A>=4运行后输出结果如下:
27、C= 0 0 0 1 1在MATLAB工作窗口输入程序:D=A=B运行后输出结果如下:D= 0 0 1 0 0下面举一个例子说明如何将关系运算和数值运算结合起来.在MATLAB工作窗口输入程序:x=(-3:3)/3运行后输出结果如下:x=-1.0000 -0.6667 -0.3333 0 0.3333 0.6667 1.0000在MATLAB工作窗口输入程序:sin(x)./x运行后输出结果如下:Warning: Divide by zeroans= 0.8415 0.9276 0.9816 NaN 0.9816 0.9276 0.8415在计算sinx/x时给出了警告信息,是因为第4个数据s
28、in0/0没有定义,MATLAB返回NaN.为了避免这种情况出现可以用最小浮点数eps来代替0,在MATLAB工作窗口输入程序:x=(-3:3)/3;x=x+(x=0)*eps;sin(x)./x运行后输出结果如下:ans= 0.8415 0.9276 0.9816 1.0000 0.9816 0.9276 0.8415给出了sinx/x在x=0时正确的极限值.MATLAB的逻辑运算符有:&与运算;|或运算;非运算.它们满足熟知的逻辑运算规则:00001100101111逻辑运算将任何非零元素视为1(真).逻辑运算也可以作用于矩阵或数组.在MATLAB工作窗口输入程序:a=1:9,b=
29、9-a,c=(a>4),d=(a>=3)&(b<6)运行后输出结果如下:a= 1 2 3 4 5 6 7 8 9b= 8 7 6 5 4 3 2 1 0c= 1 1 1 1 0 0 0 0 0d= 0 0 0 1 1 1 1 1 1MATLAB还提供了一些关系和逻辑函数,常见的有all和any,用法是:y=all(x),若x为向量,当所有元素非零时y=1,否则y=0;若x为矩阵,all作用于列元素,y为行向量y=any(x),若x为向量,当有一元素非零时y=1,否则y=0;若x为矩阵,all作用于列元素,y为行向量例如,在MATLAB工作窗口输入程序:a=1 0 -5
30、 0;-3 0 8 2,b=all(a),c=any(a),d=all(b),e=any(c)运行后输出结果如下:a= 1 0 -5 0 -3 0 8 2B= 1 0 1 0c= 1 0 1 1d= 0e= 12条件和循环语句条件和循环语句属于流控制语句,MATLAB的流控制语句主要有四个:if,while,for,switch,它们都用end结束.(一)if语句条件语句 if 最简单的用法是:if <关系表达式> <语句1> end如果关系表达式的值为1,则语句1执行;否则,执行end的后续命令if语句的另外一种用法是:if <关系表达式> <语句1
31、> else <语句2> end如果关系表达式的值为1,则语句1执行;否则(关系表达式的值为0),语句2执行,然后执行end的后续命令.当我们有多个选择时还可以用下列结构:if <关系表达式1> <语句1>elseif <关系表达式2> <语句2> elseif <关系表达式n> <语句n>else <语句n1> end如果关系表达式j(j=1,2,n)的值为1,则语句j执行,然后执行end的后续命令;否则,语句2执行,然后执行end的后续命令.例如,可用以下程序得到图8-6的分段函数.yO0
32、1x1function y=fun(x)if x<=0 y=0;elseif x<=pi/2 y=x;else y=1;end 图8-6 在MATLAB工作窗口输入程序:>>x=31;y=fun(x)运行后输出结果如下:y = 1(二)for语句循环语句for的一般形式为for <循环参数>=<初值>:<步长>:<终值> <语句>end步长为1时可以省略对于每一参数值,语句都重复执行当作多重循环时for语句可以嵌套使用,如用以下程序可以生成希尔伯特矩阵function A=f(n,m)A=zeros(n,m);
33、for i=1:n for j=1:m A(i,j)=1/(i+j-1); end end format rat在MATLAB工作窗口输入程序:>>n=4,m=5,A=f(n,m)运行后输出结果如下:A= 1 1/2 1/3 1/4 1/5 1/2 1/3 1/4 1/5 1/6 1/3 1/4 1/5 1/6 1/7 1/4 1/5 1/6 1/7 1/8for语句的循环参数可以是任意的数组或矩阵,循环参数依次取数组元素的值,或按矩阵的列依次取值(三)while语句for循环主要应用于已知循环次数的情况,如果不知道循环次数,可以使用while循环来完成,其表达方式为while &
34、lt;关系表达式> <语句>end当关系表达式的值为1(真)时,语句被反复执行,直至关系表达式为0(假)时终止,如,在MATLAB工作窗口输入程序:>>n=0;EPS=1; while (1+EPS)>1 EPS=EPS/2; n=n+1; end EPS=2*EPS; n,format short E,EPS运行后输出结果如下:n= 53EPS= 2.2204e-016这个例子给出了计算MATLAB中特殊常量eps的过程(我们用大写EPS以便与eps相区别)EPS不断地被2除直到(1+EPS)>1为假时终止这里需要注意的是,MATLAB用16位数来表
35、示数据,因此当 EPS接近10-16时,它会认为(1+EPS)>1不成立MATLAB还提供了跳出循环的break语句,遇到此语句立即执行此循环end的后续语句,如上面计算eps的程序可以改为:>>EPS=1; for n=1:100 EPS=EPS/2; if (1+EPS)<=1 EPS=2*EPS; break endend n,format short E,EPS运行后输出同样的结果.(四)switch语句switch语句根据表达式的值来执行相应的语句,用法如下:switch <表达式>case value1 <语句1> case valu
36、e2 <语句2> otherwise <语句n> end实验8-21已知矩阵,求,2已知3阶方阵,求,8.3 初等数学运算与简单作图本节介绍MATLAB系统进行初等数学运算,并讨论一元函数图形的画法,应当学习上机操作8.3.1 简单计算1加法:例如计算154+67 在命令窗口键入154+67 按回车键Enter(简记),就会显示和数2212减法:例如计算356-418 在命令窗口键入356-418 (得差数-62)3乘法:例如计算214×87 在命令窗口键入214*87 (得乘积18618)4除法:例如计算235÷15 在命令窗口键入235/15 (
37、得商数15.6667)5乘方:例如计算262 键入262 (得676)6平方根:例如求 键入sqxt(pi) 或者pi(1/2) (得1.7725)7求多项式的根:MATLAB系统中roots函数可以求出多项式的根【例1】求多项式的根解 p=1,0,3,12,-7;%多项式的系数数组(按降幂排列) roots(p)%计算数组p对应的多项式的根可得这个多项式的4个根:0.7876+2.4351j,0.7876-2.4351j,-2.0872,0.51218因式分解:因式分解时先要将变量x用syms定义为符号变量,这样字母x才能参加运算,再调用因式分解函数factor【例2】将多项因式分解解 sy
38、ms x; s=x6+1; factor(s) (得(x2+1)*(x4-x2+1)8.3.2 函数作图 1二维曲线的绘制MATLAB软件提供绘制二维曲线(平面曲线)的指令是plot,有下面三种常用格式(1)plot(x,s)当x是实数组时,以实数的先后排序为横坐标,元素值为相应的纵坐标画出一条曲线. 命令中s是可选参数,用来指定曲线的线型、颜色、数据点形状等,例如,s(红色),g(绿色),b(蓝色),y(黄色),s不选则用MATLAB设定的默认值(2)plot(x,y,s)当x、y是同维向量时,绘制以向量x和y分别为横、纵坐标的曲线命令中;s是可选参数(3)plot(X1,Y1,s1,X2,
39、Y2,s2,)每三项为一组,绘制多条曲线,用法同前MATLAB7系统的绘图函数和工具可将所绘制的图形在图形窗口中显示出来,该窗口与主窗口是隔离的【例3】绘制在0,10上的图形解 x=linspace(0,10,100); %生成自变量数组,在0,10上等间隔含100个元素 y=tan(x); %给出函数表达式 figure(1); %选择一个绘图窗口 plot(x,y) %调用绘图函数图8-7【例4】在同一个坐标系下画出两条曲线和在0,2上的图形解 x=0:2*pi/30:2*pi; y=sin(x); z=cos(x); figure(1) plot(x,y,'r',x,z,
40、'g')title('一条正弦曲线和一条余弦曲线') %title给出图形标题xlabel('x的取值范围') %横坐标数值范围ylabel('y和z的值') %纵坐标数值范围legend('y=sin(x)','z=cos(x)') %自动标注图例图8-823维图形只对几种常用命令通过例子作简单介绍【例5】做曲面的图形,解 x=-7.5:0.5:7.5;y=x;X,Y=meshgrid(x,y);R=sqrt(X.2+Y.2)+eps;Z=sin(R)./R;mesh(X,Y,Z)图8-9如果将m
41、esh命令改成surf(X,Y,Z),图形效果如下图8-108.3.3 方程求解1.先将未知量用syms定义为符号变量,再用函数solve解方程,格式如下:solve(eqnl,eqn2,eqnN)或solve(eqnl,eqn2,eqnN,var1,var2,varN)上面eqns是一些具体方程的表达式,vars是求解的独立变量【例6】解方程解 syms x solve(x3-10*x2+29*x-20=0,x)输出ans=1 4 5,表示三个解x=1,x=4,x=5【例7】解方程组解 syms x y a x,y=solve(x2*y2=0,x-2*y=a) 输出x=a a 0 0, y=
42、0 0 -1/2*a -1/2*a,表示有4组解,2对于复杂的方程,求数值解的命令为fsolve,此时需要提供解的一个初始值. 【例8】求方程的数值根解 先作函数的图形,找出零点的大致位置 clear x=-1:0.01:1; y=exp(2*x).*sin(x)-cos(x); plot(x,y)(在figure1窗口显示图形如图8-11,可以看到零点约在x=0.5)图8-11然后,取初始解x=0.5,用fsolve解方程x=0.5;y=sin(x)*exp(2*x)-cos(x);x=fsolve(y,x)(答案:x=0.4128)【例9】解方程组解 在程序编辑器上键入下述M文件funct
43、ion y=myfun1(x)y(1)=3*x(1)2-x(2)2;y(2)=3*x(1)*x(2)2-x(1)2-1;将这个文件以myfun1.m文件名保存到work目录中,再在命令窗口输入如下命令:x=0.8,0.4; %提取初始解向量x=fsolve(myfun1,x)(解得x=0.5208,x=0.9020)实验8-3用MATLAB软件系统完成下列计算1解方程(1);(2)2解方程8.4 一元函数的微积分计算本节讨论用MATLAB软件系统进行一元函数的微积分运算8.4.1 极限运算用函数limit直接计算函数的极限,调用格式如下:(1)limit(f,x,a) 求表达式f当xa时的极限
44、(2)limit(f,x,a,right) 求f在xa时的右极限(3)limit(f,x,a,left) 求f在xa时的左极限【例1】求下限极限:(1);(2);(3)解 (1)syms x limit(sin(x)/x,x,0) (得ans=1) (2)syms x limit(sqrt(x2+3*x)-x,x,inf) (得ans=3/2) (3)syms x limit(sqrt(x)-2(-1/x),x,0,right) (得ans=0)8.4.2 求导数求函数导数的命令是diff,调用格式如下:(1)diff(f,x) 表示对表达式f求关于变量x的一阶导数(2)diff(f,x,n)
45、 表示f对x求n阶导数【例2】求下列函数的一阶导数:(1);(2)解(1)syms x adiff(log(x)/log(a) (得ans=1/x/loga,即)(2)syms n xdiff(sin(x)n) (得ans=sin(x)n*n*cos(x)/sin(x)【例3】设,求解 syms x y= sin(x)/(x+cos(2*x); diff(y,x,3)(得ans=-cos(x)/(x+cos(2*x)+3*sin(x)/(x+cos(2*x)2*(1-2*sin(2*x)+6*cos(x)/(x+cos(2*x)3*(1-2*sin(2*x)2+12*cos(x)/(x+cos
46、(2*x)2*cos(2*x)-6*sin(x)/(x+cos(2*x)4*(1-2*sin(2*x)3-24*sin(x)/(x+cos(2*x)3*(1-2*sin(2*x)*cos(2*x)-8*sin(x)/(x+cos(2*x)2*sin(2*x))8.4.3 积分运算1求函数积分的命令是int,格式如下:(1)int(f,x) 对f关于x求不定积分(2)int(f,x,a,b) 对f关于变量x从a到b求定积分【例4】求不定积分解 syms x int(x2+3*x+7,x) (得ans=1/3*x3+3/2*x2+7*x)【例5】求定积分解 syms x int(log(x)/sqrt(x),x,1,4)(得ans=8*log(2)-4)2数值积分MATLAB系统还提供了数值积分(定积分近似计算)的命令quad,调用格式为q=quad(f,a,b,tol)其中f是被积函数的M文件名,a,b分别是积分下限和积分上限,tol是指定的绝对误差限,若tol缺省则约定求积分的相对误差为10-3,所得积分值是用辛普森法得到的积分近似值【例6】求解 首先在程序编辑器中编写出函数的M文件myfun2.mfunction y=myfun2(x)y=sin(sin(x);以文
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年展架租赁合同范本3篇
- 2024年二手车交易合同新规定3篇
- 2024年新能源车辆租赁与运营合同
- 2024年度文具采购标准协议范例版B版
- 2024年度粮食批量采购与销售合作合同版
- 2024年国际物流运输服务协议模板版A版
- 2024年度股权转让合同(优先购买权)
- 2024年度企业员工借款与劳动争议风险评估合同3篇
- 2024年度软件定制开发合同的用户使用权限3篇
- 2024年农产品买卖合同2篇
- 2023年10月2024年天津市气象局公开招聘应届毕业生18人笔试历年典型考题及考点剖析附答案详解
- 2024年部编新改版语文小学一年级上册第二单元复习课教案
- (高级)工业机器人系统运维员技能鉴定考试题库(浓缩500题)
- 婴幼儿烫伤的紧急处理(婴幼儿卫生保健课件)
- 机械安全 局部排气通风系统 安全要求 征求意见稿
- AED操作使用指南培训课件
- 房地产经济智慧树知到期末考试答案章节答案2024年中南财经政法大学
- 超星尔雅学习通《宋辽金史(复旦大学)》2024章节测试答案
- 智慧居家养老服务方案策划书(2篇)
- JT∕T 324-2022 汽车喷烤漆房
- 2024年公需课枣庄市继续教育人社局题库及答案18套题合集
评论
0/150
提交评论