-1-MATLAB在微积分中的应用MATLAB是MathWorks公司于1982年推出的一套高性能的数值计算和可视化数学软件.被誉为“巨人肩上的工具”.用Matlab编写程序犹如在演算纸上排列出公式与求解问题,所以又被称为演算纸式科学算法语言.在这个环境下,对所要求解的问题,用户只需简单地列出数学表达式,其结果便以数值或图形方式显示出来.§1MATLAB入门1.1matlab的数值计算运行MATLAB的可执行文件,进入Matlab工作窗口,在提示符“”后输入算术表达式,按Enter键即可得到该表达式的值,就象在计算器中运算一样.加、减、乘、除、乘方的算符依次为+、-、*、/、^.例1计算9532×+的值.解在Matlab工作区输入命令:2+3*5^9,按Enter键,可得计算结果2+3*5^9ans=5859377MATLAB会将最近一次的运算结果直接存入一变量ans,变量ans代表MATLAB运算後的答案,并将其数值显示到屏幕上.也可以将计算结果赋值给一个自定义的变量,自定义变量应遵循以下命名规则:(1)MATLAB对变量名的大小写是敏感的.(2)变量的第一个字符必须为英文字母,而且不能超过31个字符.(3)变量名可以包含下划线、数字,但不能为空格符、标点.例2计算1sin9.13.1123.0的值,并将其赋值给变量a.解a=11.3*1.9^0.23+sin(1)a=13.9391如果在上述的例子结尾加上”;”,则计算结果不会显示在指令视窗上,要得知计算值只须键入该变量名即可.MATLAB可以将计算结果以不同的精确度的数字格式显示,我们可以在命令窗口的File菜单下点击preferences子菜单,在随之打开的preferences对话框中,选取CommandWindow选项,设置NumericalFormat参数,或者直接在matlab工作区键入以下指令:formatshort(这是默认的),formatlong等.-2-1.2Matlab的数组运算Matlab数组是Matlab进行运算的单元.创建数组就像我们在纸上写一个数组一样,元素与元素用“,”号或空格进行分隔,行与行用“;”号进行分隔.例3命令a=[123456]建立一个1行6列的数组.该命令与a=[1,2,3,4,5,6]是一样的.命令b=[123;456]建立一个2行3列的数组.数组运算的运算符与数值运算一样.例4a=[111;222](建立数组a)a=111222b=[333;444](建立数组b)b=333444a+b(求数组a与数组b的和)ans=444666a-b(求数组a与数组b的差)ans=-2-2-2-2-2-2a+3(数组a的每一个元素都加上3)ans=4445552*b(数组b的每一个元素都乘以2)ans=666888两个同类型数组的对应元素相乘除的运算符是“./”和“.*”.例5a.*b(a的对应元素与b的对应元素相乘)ans=333888a./b(a的对应元素除以b的对应元素)ans=-3-0.333333333333330.333333333333330.333333333333330.500000000000000.500000000000000.50000000000000运算符“./”及“.*”应与运算符“/”及“*”相区别,a*b表示矩阵a与b的乘积,a/b表示矩阵a乘以矩阵b的逆矩阵.例6a=[12;21](建立矩阵a)a=1221b=[13;01](建立矩阵b)b=1301a*b(求矩阵a与矩阵b的乘积ab)ans=1527a/b(求矩阵a与矩阵b的逆矩阵的乘积)ans=1-12-5运算符“^”表示方阵的幂,而运算符“.^”表示数组中每一个元素的幂.例7a^2(矩阵a的平方)ans=5445a.^2(矩阵(数组)a的每一个元素的平方)ans=14411.3Matlab的符号运算matlab可以进行符号运算,需要预先定义符号变量.使用指令sym或syms定义符号变量.例8a=sym(‘x’)(将符号变量x赋值给变量a)a=xsin(a)/cos(a)(符号表达式sin(a)/cos(a))ans=sin(x)/cos(x)-4-symsxy(定义符号变量x和y)b=(x+y)^2-4*x*y(将符号表达式赋值给变量b)b=(x+y)^2-4*x*ya+b(求变量a与b的和)ans=x+(x+y)^2-4*x*y1.4Matlab的数学常数和函数Matlab常用数学函数如下表:名称含义名称含义名称含义sin正弦sec正割asinh反双曲正弦cos余弦csc余割acosh反双曲余弦tan正切asec反正割atanh反双曲正切cot余切acsc反余割acoth反双曲余切asin反正弦sinh双曲正弦abs绝对值acos反余弦cosh双曲余弦sqrt平方根atan反正切tanh双曲正切expe为底的指数acot反余切coth双曲余切log自然对数Matlab数学常数如下:pi数学常数inf无穷大eps最小的浮点数§2MATLAB绘制一元函数的图形2.1常用命令matlab绘图命令比较多,我们选编一些常用命令,并简单说明其作用,这些命令的调用格式,可参阅例题及使用帮助help查找.表1二维绘图函数bar条形图hist直方图plot简单的线性图形polar极坐标图形-5-表2基本线型和颜色符号颜色符号线型y黄色.点m紫红0圆圈c青色xx标记r红色+加号g绿色*星号b兰色-实线w白色:点线k黑色-.点划线--虚线表3二维绘图工具grid放置格栅gtext用鼠标放置文本hold保持当前图形text在给定位置放置文本title放置图标题xlabel放置x轴标题ylabel放置y轴标题zoom缩放图形表4axis命令axis([x1,x2,y1,y2])设置坐标轴范围axissquare当前图形设置为方形axisequal坐标轴的长度单位设成相等axisnormal关闭axisequal和axissquareaxisoff关闭轴标记、格栅和单位标志axison显示轴标记、格栅和单位标志linspace创建数组命令,调用格式为:x=linspace(x1,x2,n),创建了x1到x2之间有n个数据的数组.funtool函数工具,在matlab指令窗键入funtool可打开“函数计算器”图形用户界面.2.2绘制函数图形举例-6-例1画出xysin的图形.解首先建立点的坐标,然后用plot命令将这些点绘出并用直线连接起来,采用中学五点作图法,选取五点)0,0(、)1,2(、)0,(、)1,23(、)0,2(.输入命令x=[0,pi/2,pi,3*pi/2,2*pi];y=sin(x);plot(x,y)这里分号表示该命令执行结果不显示.从图上看,这是一条折线,与我们熟知的正弦曲线误差较大,这是由于点选取的太少的缘故。可以想象,随点数增加,图形越来越接近xysin的图象.例如,在0到2之间取30个数据点,绘出的图形与xysin的图象已经非常接近了.x=linspace(0,2*pi,30);y=sin(x);plot(x,y).也可以如下建立该图形.x=0:0.1:2*pi;y=sin(x);plot(x,y)还可以给图形加标记、格栅线.x=0:0.1:2*pi;y=sin(x);plot(x,y,’r—‘)title(‘正弦曲线’)xlabel(‘自变量x’)ylabel(‘函数y=sinx’)text(5.5,0,’y=sinx’)grid上述命令第三行选择了红色虚线,第四行给图加标题“正弦曲线”,第五行给x轴加标题“自变量x”,第六行给y轴加标题“函数xysin”,第七行在点)0,5.5(处放置文本“xysin”,第八行给图形加格栅线.-7-例2画出xy2和xy)2/1(的图象.解输入命令x=-4:0.1:4;y1=2.^x;y2=(1/2).^x;plot(x,y1,x,y2);axis([-4,4,0,8])matlab允许在一个图形中画多条曲线.plot(x1,y1,x2,y2,x3,y3)指令绘制)2(2),1(1xfyxfy等多条曲线.matlab自动给这些曲线以不同颜色.例3画出arctgxy的图象.解输入命令从图上看,arctgxy是有界函数,2y是其水平渐近线.例4在同一坐标系中画出tgxyxyxy,,sin的图象.解输入命令x=-pi/2:0.1:pi/2;y1=sin(x);y2=tan(x);plot(x,x,x,y1,x,y2)axisequalaxis([-pi/2,pi/2,-3,3])grid从图上看,当0x时,tgxxxsin,当0x时,tgxxxsin,xy是xysin和tgxy在原点的切线,因此,当1x时,xtgxxx,sin.例5画出110xy及)1lg(xy的图形.解输入命令x1=-1:0.1:2;y1=10.^x1-1;x2=-0.99:0.1:2;y2=log10(x2+1);plot(x1,y1,x2,y2)-8-从图上看,这两条曲线与我们所知的图象相差很远,这是因为坐标轴长度单位不一样的缘故.110xy与)1lg(xy互为反函数,图象关于xy对称,为更清楚看出这一点,我们再画出xy的图象.holdonx=-1:0.01:2;y=x;plot(x,y,’r’)axis([-1,2,-1,2])axissquare;holdoffplot语句清除当前图形并绘出新图形,holdon语句保持当前图形.例6画出心形线)cos1(3ar的图象.解输入命令x=-2*pi:0.1:2*pi;r=3*(1+cos(x));polar(x,r)例7画出星形线tytx33sin3,cos3的图象.解这是参数方程,可化为极坐标方程.233232)sin(cos3aar-9-输入命令x=0:0.01:2*pi;r=3./(((cos(x)).^2).^(1/3)+((sin(x)).^2).^(1/3)).^(3/2);polar(x,r)注意,如果建立r与t的关系,此时t只是参数,不是极坐标系下的极角.练习1.画出xyarcsin的图象.2.画出xysec在],0[之间的图象.3.在同一坐标系中画出xy,2xy,3xy,3xy,xy的图象.4.画出3232)1()1()(xxxf的图象,并根据图象特点指出函数)(xf的奇偶性.5.画出)2ln(1xy及其反函数的图象.6.画出321xy及其反函数的图象.§3利用MATLAB求一元函数的极限3.1常用命令matlab求极限命令可列表如下:数学运算matlab命令)(lim0xfxlimit(f))(limxfaxlimit(f,x,a)或limit(f,a))(limxfaxlimit(f,x,a,’left’))(limxfaxlimit(f,x,a,’right’)matlab代数方程求解命令solve调用格式.-10-solve(函数)(xf)给出0)(xf的根.3.2理解极限概念数列}{nx收敛或有极限是指当n无限增大时,nx与某常数无限接近或nx趋向于某一定值,就图形而言,也就是其点列以某一平行与y轴的直线为渐近线.例1观察数列}1{nn当n时的变化趋势.解输入命令n=1:100;xn=n./(n+1)得到该数列的前100项,从这前100项看出,随n的增大,1nn与1非常接近,画出nx的图形.stem(n,xn)或fori=1:100;plot(n(i),xn(i),’r’)holdonend其中for…end语句是循环语句,循环体内的语句被执行100次,n(i)表示n的第i个分量.由图可看出,随n的增大,点列与直线1y无限接近,因此可得结论1limnnn=1.对函数的极限概念,也可用上述方法理解.例2分析函数xxxf1sin)(,当0x时的变化趋势.解画出函数)(xf