MATLAB在微积分中的应用_第1页
MATLAB在微积分中的应用_第2页
MATLAB在微积分中的应用_第3页
MATLAB在微积分中的应用_第4页
MATLAB在微积分中的应用_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上MATLAB在微积分中的应用MATLAB是公司于1982年推出的一套高性能的数值计算和可视化数学软件被誉为“巨人肩上的工具”用Matlab编写程序犹如在演算纸上排列出公式与求解问题,所以又被称为演算纸式科学算法语言在这个环境下,对所要求解的问题,用户只需简单地列出数学表达式,其结果便以数值或图形方式显示出来§MATLAB入门1.1 matlab的数值计算运行MATLAB的可执行文件,进入Matlab工作窗口,在提示符“>>”后输入算术表达式,按Enter键即可得到该表达式的值,就象在计算器中运算一样加、减、乘、除、乘方的算符依次为+、-、*、/、

2、例1 计算的值解在Matlab工作区输入命令:2+3*59,按Enter键,可得计算结果2+3*59ans = MATLAB会将最近一次的运算结果直接存入一变量ans,变量ans代表MATLAB运算後的答案,并将其数值显示到屏幕上也可以将计算结果赋值给一个自定义的变量,自定义变量应遵循以下命名规则:(1)MATLAB对变量名的大小写是敏感的(2)变量的第一个字符必须为英文字母,而且不能超过31个字符(3)变量名可以包含下划线、数字,但不能为空格符、标点例2 计算的值,并将其赋值给变量a.解a=11.3*1.90.23+sin(1)a = 13.9391如果在上述的例子结尾加上”;”,则计算结果

3、不会显示在指令视窗上,要得知计算值只须键入该变量名即可MATLAB可以将计算结果以不同的精确度的数字格式显示,我们可以在命令窗口的File 菜单下点击preferences子菜单,在随之打开的preferences对话框中,选取Command Window选项,设置Numerical Format参数,或者直接在matlab工作区键入以下指令:format short (这是默认的), format long等1.2 Matlab的数组运算Matlab数组是Matlab进行运算的单元创建数组就像我们在纸上写一个数组一样,元素与元素用“,”号或空格进行分隔,行与行用“;”号进行分隔例 命令a=1

4、 2 3 4 5 6建立一个行列的数组该命令与a=1,2,3,4,5,6是一样的命令b=1 2 3;4 5 6建立一个行列的数组数组运算的运算符与数值运算一样例 a=1 1 1;2 2 2 (建立数组a)a = 1 1 1 2 2 2b=3 3 3;4 4 4 (建立数组b)b = 3 3 3 4 4 4a+b (求数组a与数组b的和)ans = 4 4 4 6 6 6a-b (求数组a与数组b的差)ans = -2 -2 -2 -2 -2 -2a+3 (数组a的每一个元素都加上)ans = 4 4 4 5 5 52*b (数组b的每一个元素都乘以)ans = 6 6 6 8 8 8两个同类型

5、数组的对应元素相乘除的运算符是“./”和“.*”例 a.*b (a的对应元素与b的对应元素相乘)ans = 3 3 3 8 8 8a./b (a的对应元素除以b的对应元素)ans = 0.333 0.333 0.333 0.000 0.000 0.000运算符“./”及“.*”应与运算符“/”及“*”相区别,a*b表示矩阵a与b的乘积,a/b表示矩阵a乘以矩阵b的逆矩阵例6 a=1 2;2 1 (建立矩阵a)a = 1 2 2 1b=1 3;0 1 (建立矩阵b)b = 1 3 0 1a*b (求矩阵a与矩阵b的乘积ab) ans = 1 5 2 7a/b (求矩阵a与矩阵b的逆矩阵的乘积)a

6、ns = 1 -1 2 -5运算符“”表示方阵的幂,而运算符“.”表示数组中每一个元素的幂例7 a2 (矩阵a的平方)ans = 5 4 4 5a.2 (矩阵(数组)a的每一个元素的平方)ans = 1 4 4 11.3 Matlab的符号运算matlab可以进行符号运算,需要预先定义符号变量使用指令sym或syms定义符号变量例8 a=sym(x) (将符号变量x赋值给变量a)a =x sin(a)/cos(a) (符号表达式sin(a)/cos(a)ans =sin(x)/cos(x)syms x y (定义符号变量x和y)b=(x+y)2-4*x*y (将符号表达式赋值给变量b)b=(x

7、+y)2-4*x*ya+b (求变量a与b的和)ans =x+(x+y)2-4*x*y1.4 Matlab 的数学常数和函数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 最小的浮点数

8、§2 MATLAB绘制一元函数的图形2.1 常用命令matlab绘图命令比较多,我们选编一些常用命令,并简单说明其作用,这些命令的调用格式,可参阅例题及使用帮助help查找.表 二维绘图函数bar条形图hist直方图plot简单的线性图形polar极坐标图形表2 基本线型和颜色 符号 颜色 符号 线型y黄色.点m紫红0圆圈c青色xx标记r红色+加号g绿色*星号b兰色-实线w白色:点线k黑色-.点划线-虚线表3 二维绘图工具grid放置格栅gtext用鼠标放置文本hold保持当前图形text在给定位置放置文本title放置图标题xlabel放置x轴标题ylabel放置y轴标题zoom缩

9、放图形 表4 axis命令axis(x1,x2,y1,y2)设置坐标轴范围axis square当前图形设置为方形axis equal坐标轴的长度单位设成相等axis normal关闭axis equal和axis squareaxis off关闭轴标记、格栅和单位标志axis on显示轴标记、格栅和单位标志 linspace 创建数组命令,调用格式为: x=linspace(x1,x2,n),创建了x1到x2之间有n个数据的数组.funtool 函数工具,在matlab指令窗键入funtool可打开“函数计算器”图形用户界面.2.2 绘制函数图形举例 例1 画出的图形. 解 首先建立点的坐标

10、,然后用plot命令将这些点绘出并用直线连接起来,采用中学五点作图法,选取五点、.输入命令 x=0,pi/2,pi,3*pi/2,2*pi;y=sin(x);plot(x,y) 这里分号表示该命令执行结果不显示.从图上看,这是一条折线,与我们熟知的正弦曲线误差较大,这是由于点选取的太少的缘故。可以想象,随点数增加,图形越来越接近的图象.例如,在0到之间取30个数据点,绘出的图形与的图象已经非常接近了. x=linspace(0,2*pi,30);y=sin(x);plot(x,y).也可以如下建立该图形. x=0:0.1:2*pi;y=sin(x);plot(x,y)还可以给图形加标记、格栅线

11、. 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 上述命令第三行选择了红色虚线,第四行给图加标题“正弦曲线”,第五行给轴加标题“自变量”,第六行给轴加标题“函数”,第七行在点处放置文本“”,第八行给图形加格栅线.例2 画出和的图象.解 输入命令 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

12、,x3,y3)指令绘制等多条曲线.matlab自动给这些曲线以不同颜色. 例3 画出的图象. 解 输入命令 从图上看,是有界函数,是其水平渐近线. 例4 在同一坐标系中画出的图象. 解 输入命令 x=-pi/2:0.1:pi/2;y1=sin(x);y2=tan(x); plot(x,x,x,y1,x,y2) axis equal axis(-pi/2,pi/2,-3,3) grid从图上看,当时,当时,是和在原点的切线,因此,当时,. 例5 画出及的图形. 解 输入命令 x1=-1:0.1:2;y1=10.x1-1;x2=-0.99:0.1:2;y2=log10(x2+1); plot(x1

13、,y1,x2,y2)从图上看,这两条曲线与我们所知的图象相差很远,这是因为坐标轴长度单位不一样的缘故.与互为反函数,图象关于对称,为更清楚看出这一点,我们再画出的图象. hold on x=-1:0.01:2;y=x;plot(x,y,r) axis(-1,2,-1,2) axis square;hold offplot语句清除当前图形并绘出新图形,hold on语句保持当前图形. 例6 画出心形线的图象. 解 输入命令 x=-2*pi:0.1:2*pi;r=3*(1+cos(x);polar(x,r) 例7 画出星形线的图象. 解 这是参数方程,可化为极坐标方程. 输入命令 x=0:0.01

14、:2*pi; r=3./(cos(x).2).(1/3)+(sin(x).2).(1/3).(3/2); polar(x,r)注意,如果建立与的关系,此时只是参数,不是极坐标系下的极角.练习1.画出的图象.2.画出在之间的图象.3.在同一坐标系中画出,的图象.4.画出的图象,并根据图象特点指出函数的奇偶性.5.画出及其反函数的图象.6.画出及其反函数的图象.§3 利用MATLAB求一元函数的极限3.1 常用命令 matlab求极限命令可列表如下:数学运算matlab命令limit(f)limit(f,x,a)或limit(f,a)limit(f,x,a,left)limit(f,x,

15、a,right) matlab代数方程求解命令solve调用格式. solve(函数) 给出的根.3.2 理解极限概念 数列收敛或有极限是指当无限增大时,与某常数无限接近或趋向于某一定值,就图形而言,也就是其点列以某一平行与轴的直线为渐近线. 例1 观察数列当时的变化趋势.解 输入命令 n=1:100;xn=n./(n+1)得到该数列的前100项,从这前100项看出,随的增大,与1非常接近,画出的图形. stem(n,xn)或 for i=1:100; plot(n(i),xn(i),r) hold on end其中for end语句是循环语句,循环体内的语句被执行100次,n(i)表示n的第

16、i个分量.由图可看出,随的增大,点列与直线无限接近,因此可得结论 =1.对函数的极限概念,也可用上述方法理解. 例2 分析函数,当时的变化趋势. 解 画出函数在上的图形. x=-1:0.01:1;y=x.*sin(1./x);plot(x,y)从图上看,随着的减小,振幅越来越小趋近于0,频率越来越高作无限次振荡.作出的图象. hold on;plot(x,x,x,-x) 例3 分析函数当时的变化趋势.解 输入命令 x=-1:0.01:1;y=sin(1./x);plot(x,y) 从图上看,当时,在-1和1之间无限次振荡,极限不存在.仔细观察该图象,发现图象的某些峰值不是1和-1,而我们知道正

17、弦曲线的峰值是1和-1,这是由于自变量的数据点选取未必使取到1和-1的缘故,读者可试增加数据点,比较它们的结果. 例4 考察函数当时的变化趋势. 解 输入命令 x=linspace(-2*pi,2*pi,100);y=sin(x)./x;plot(x,y)从图上看,在附近连续变化,其值与1无限接近,可见 =1. 例5 考察当时的变化趋势.解 输入命令 x=1:20:1000;y=(1+1./x).x;plot(x,y)从图上看,当时,函数值与某常数无限接近,我们知道,这个常数就是. 3.3 求函数极限 例6 求. 解 输入命令 syms x;f=1/(x+1)-3/(x3+1);limit(f

18、,x,-1)得结果ans=-1.画出函数图形. ezplot(f);hold on;plot(-1,-1,r.) 例7 求. 解 输入命令 limit(tan(x)-sin(x)/x3)得结果 ans=1/2 例8 求. 解 输入命令 limit(x+1)/(x-1)x,inf)得结果 ans=exp(2) 例9 求. 解 输入命令 limit(xx,x,0,right)得结果 ans =1 例10 求. 解 输入命令 limit(cot(x)(1/log(x),x,0,right)得结果 ans=exp(-1).3.4 求方程的解 例11 解方程. 解 输入命令 syms a b c x;f

19、=a*x2+b*x+c;solve(f)得结果 ans= 1/2/a*(-b+(b2-4*a*c)(1/2) 1/2/a*(-b-(b2-4*a*c)(1/2) 如果不指明自变量,系统默认为,也可指定自变量,比如指定为自变量. solve(f,b)得结果 ans=-(a*x2+c)/x. 例12 解方程. 解 输入命令 f=x5-5*x-1;solve(f)得结果 ans= -1. -. .e-1 -1.*i .e-1 +1.*i 1.画出图象 ezplot(f,-2,2);hold on;plot(-2,2,0,0)练习1.计算下列函数的极限. (1). (2). (3). (4).2.解方

20、程.3.解方程.4.解方程.(、为实数)§4 导数的计算 4.1 常用命令建立符号变量命令sym和syms调用格式 x=sym(x), 建立符号变量x; syms x y z , 建立多个符号变量x,y,z; matlab求导命令diff调用格式 diff(函数) , 求的一阶导数; diff(函数, n) , 求的n阶导数(n是具体整数) 4.2 导数一般概念导数是函数的变化率,几何意义是曲线在一点处的切线斜率. (1) 导数是一个极限值 例1 设,用定义计算. 解 在某一点的导数定义为极限: 我们记,输入命令: syms h;limit(exp(0+h)-exp(0)/h,h,0

21、)得结果:ans=1.可知 (2) 导数的几何意义是曲线的切线斜率 例2 画出在处()的切线及若干条割线,观察割线的变化趋势. 解 在曲线上另取一点,则的方程是: .即 取,分别作出几条割线. h=3,2,1,0.1,0.01;a=(exp(h)-1)./h;x=-1:0.1:3; plot(x,exp(x),r);hold on for i=1:5; plot(h(i),exp(h(i),r.) plot(x,a(i)*x+1) end axis square 作出在处的切线 plot(x,x+1,r)从图上看,随着与越来越接近,割线越来越接近曲线的割线. 4.3 求一元函数的导数 (1)的

22、一阶导数 例3 求的导数. 解 打开matlab指令窗,输入指令dy_dx=diff(sin(x)/x).得结果dy_dx=cos(x)/x-sin(x)/x2. matlab的函数名允许使用字母、空格、下划线及数字,不允许使用其他字符,在这里我们用dy_dx表示. 例4 求的导数. 解 输入命令dy_dx=diff(log(sin(x).得结果dy_dx=cos(x)/sin(x).在matlab中,函数用log(x)表示,而log10(x)表示. 例5 求的导数. 解 输入命令 dy_dx=diff(x2+2*x)20).得结果dy_dx=20*(x2+2*x)19*(2*x+2). 注意

23、输入时应为2*x. 例6 求的导数. 解 输入命令 dy_dx=diff(xx).得结果dy_dx =xx*(log(x)+1).利用matlab 命令diff一次可以求出若干个函数的导数. 例7 求下列函数的导数: , , , . 解 输入命令 a=diff(sqrt(x2- 2*x+5),cos(x2)+2*cos(2*x),4(sin(x),log(log(x).得结果 a= 1/2/(x2-2*x+5)(1/2)*(2*x-2),-2*sin(x2)*x-4*sin(2*x), 4sin(x)*cos(x)*log(4), 1/x/log(x). dy1_dx=a(1). dy1_dx

24、=1/2/(x2-2*x+5)(1/2)*(2*x-2). dy2_dx=a(2). dy2_dx=-2*sin(x2)*x-4*sin(2*x). dy3_dx=a(3). dy3_dx=4sin(x)*cos(x)*log(4). dy4_dx=a(4). dy4_dx=1/x/log(x). 由本例可以看出,matlab函数是对矩阵或向量进行操作的,a(i)表示向量a的第i个分量. (2) 参数方程所确定的函数的导数设参数方程确定函数,则的导数. 例8设,求.解 输入命令 dx_dt=diff(a*(t-sin(t);dy_dt=diff(a*(1-cos(t); dy_dx=dy_dt

25、/dx_dt.得结果dy_dx=sin(t)/(1-cos(t).其中分号的作用是不显示结果. 4.4 求高阶导数 例9设 ,求.解输入命令 diff(x2*exp(2*x),x,20).得结果 ans = *exp(2*x)+*x*exp(2*x)+*x2*exp(2*x)练习 1.求下列函数的导数:(1) ; (2);(3) ; (4)2.求下列参数方程所确定的函数的导数: (1) ; (2).设,求.验证满足关系式:§5 matlab自定义函数与导数应用 函数关系是指变量之间的对应法则,这种对应法则需要我们告诉计算机,这样,当我们输入自变量时,计算机才会给出函数值,matlab

26、软件包含了大量的函数,比如常用的正弦、余弦函数等.matlab允许用户自定义函数,即允许用户将自己的新函数加到已存在的matlab函数库中,显然这为matlab提供了扩展的功能,无庸置疑,这也正是matlab的精髓所在.因为matlab的强大功能就源于这种为解决用户特殊问题的需要而创建新函数的能力.matlab自定义函数是一个指令集合,第一行必须以单词function作为引导词,存为具有扩展名“.m”的文件,故称之为函数M-文件.5.1 函数M-文件的定义格式函数M-文件的定义格式为:function 输出参数=函数名(输入参数)函数体函数体一旦函数被定义,就必须将其存为M-文件,以便今后可随

27、时调用.比如我们希望建立函数,在matlab工作区中输入命令: syms x;y=x2+2*x+1;不能建立函数关系,只建立了一个变量名为y的符号表达式,当我们调用y时,将返回这一表达式. y y=x2+2*x+1当给出x的值时,matlab不能给出相应的函数值来. x=3;y y=x2+2*x+1如果我们先给x赋值. x=3;y=x2+2*x+1得结果:y=16若希望得出的值,输入: x=2;y得结果:y=16,不是时的值.读者从这里已经领悟到在matlab工作区中输入命令:y=x2+2*x+1不能建立函数关系,如何建立函数关系呢?我们可以点选菜单FillNewM-fill打开matlab文

28、本编辑器,输入: function y=f1(x) y=x2+2*x+1;存为f1.m.调用该函数时,输入: syms x;y=f1(x)得结果:y= x2+2*x+1.输入: y1=f1(3)得结果:y1=16matlab求最小值命令fmin调用格式:fmin(fun,a,b) 给出在上的最小值点. 5.2 自定义函数例1建立正态分布的密度函数解打开文本编辑器,输入 function y=zhengtai(x,a,b) y=1/sqrt(2*pi)/a*exp(-(x-b).2/2/a2);存为zhengtai.m.调用时可输入命令 y=zhengtai(1,1,0)得结果y=0.2420.

29、此即的值.如果想画出标准正态分布的密度函数的图象,输入 ezplot(zhengtai(x,1,0)例2解一元二次方程.解我们希望当输入的值时,计算机能给出方程的两个根.在文本编辑器中建立名为rootquad.m的文件. function x1,x2=rootquad(a,b,c) d=b*b-4*a*c; x1=(-b+sqrt(d)/(2*a) x2=(-b-sqrt(d)/(2*a)比如求方程的根,可用语句 r1,r2=rootquad(2,3,-7),得结果r1=1.2656 r2=-2.76565.3 验证罗必塔法则罗必塔法则是指在求及的极限时,可用导数之比的极限来计算(如果导数之比

30、的极限存在或) 例3以为例验证罗必塔法则.解这是型极限f=ax-bx;g=x;L=limit(f/g,x,0)得结果:L=log(a)-log(b) df=diff(f,x);dg=diff(g,x);L1=limit(df/dg,x,0)得结果:L1=log(a)-log(b)从结果看出L=L1,即= 5.4 函数的单调性与极值 例4求函数的单调区间与极值.解求可导函数的单调区间与极值,就是求导函数的正负区间与正负区间的分界点,利用matlab解决该问题,我们可以先求出导函数的零点,再画出函数图象,根据图象可以直观看出函数的单调区间与极值.输入命令 f=x3-6*x2+9*x+3;df=di

31、ff(f,x);s=solve(df),得结果ans=1,3,画出函数图象. ezplot(f,0,4)从图上看,的单调增区间为、,单调减区间是,极大值,极小值.我们可以建立一个名为dandiao.m的M文件,用来求求函数的单调区间. disp(输入函数(自变量为x) syms x f=input('函数f(x)=') df=diff(f); s=solve(df) a=; for i=1:size(s); a(i)=s(i); end ezplot(f,min(a)-1,max(a)+1)要求函数的单调区间与极值,可调用dandiao.m.输入 dandiao在matlab工

32、作区出现以下提示 输入函数(自变量为x) 函数f(x)=在光标处输入:x-log(1+x),可得结果s=0.从图上看,的单调增区间为,单调减区间是,极小值. 5.5 函数的最值 调用求函数最小值命令fmin时,可得出函数的最小值点,为求最小值,必须建立函数M文件. 例5求函数在区间上的最小值. 解我们可以建立一个名为f.m的函数M-文件. function y=f(x) y=(x-3).2-1;并且调用fmin x=fmin(f,0,5)得:x=3,在最小值点处的值(函数最小值)是.求最大值时可用x=fmin(-f(x),a,b)练习1.建立函数,当为何值时,该函数在处取得极值,它是极大值还是

33、极小值,并求此极值.2.确定下列函数的单调区间: (1) ; (2);(3) ; (4)3.求下列函数的最大值、最小值: (1),;(2)§6 一元函数积分的计算 6.1 常用命令matlab积分命令int调用格式: int(函数) 计算不定积分; int(函数,变量名) 计算不定积分; int(函数) 计算定积分;int(函数变量名) 计算定积分6.2 计算不定积分 例1计算解输入命令 int(x2*log(x) 可得结果 ans=1/3*x3*log(x)-1/9*x3注意设置符号变量. 例2计算下列不定积分: 1.; 2.; 3. 解首先建立函数向量. syms x syms

34、a real y=sqrt(a2-x2),(x-1)/(3*x-1)(1/3),x2*asin(x);然后对y积分可得对y的每个分量积分的结果. int(y,x) ans = 1/2*x*(a2-x2)(1/2)+1/2*a2*asin(1/a2)(1/2)*x), -1/3*(3*x-1)(2/3)+1/15*(3*x-1)(5/3), 1/3*x3*asin(x)+1/9*x2*(1-x2)(1/2)+2/9*(1-x2)(1/2) 6.3 求和运算 sum(x),给出向量x的各个元素的累加和,如果x是矩阵,则sum(x)是一个元素为x的每列列和的行向量. 例1 x=1,2,3,4,5,6

35、,7,8,9,10; sum(x) ans=55 例2 x=1,2,3;4,5,6;7,8,9 x= 1 2 3 4 5 6 7 8 9 sum(x) ans=12 15 18 符号表达式求和命令symsum调用格式. symsum(s,n), 求 symsum(s,k,m,n),求当x的元素很有规律,比如为表达式是的数列时,可用symsum求得x的各项和,即 symsum= symsum 例3 syms k n symsum(k,1,10) ans=55 symsum(k2,k,1,n) ans=1/3*(n+1)3-1/2*(n+1)2+1/6*n+1/6 matlab求定积分命令int调

36、用格式 int(函数) , 计算定积分; int(函数变量名) , 计算定积分 6.4 定积分的概念 定积分是一个和的极限.取,积分区间为,等距划分为20个子区间. x=linspace(0,1,21); 选取每个子区间的端点,并计算端点处的函数值. y=exp(x);取区间的左端点乘以区间长度全部加起来. y1=y(1:20);s1=sum(y1)/20 s1=1.6757s1可作为的近似值.若选取右端点 y2=y(2:21);s2=sum(y2)/20 s2=1.7616s2也可以作为的近似值.下面我们画出图象. plot(x,y);hold on for i=1:20 fill(x(i)

37、,x(i+1),x(i+1),x(i),x(i),0,0,y(i),y(i),0,b) end如果选取右端点,则可画出图象. for i=1:20; fill(x(i),x(i+1),x(i+1),x(i),x(i),0,0,y(i+1),y(i+1),0,b) hold on end plot(x,y,r) 在上边的语句中,for end是循环语句,执行语句体内的命令20次,fill命令可以填充多边形,在本例中,用的是兰色(blue)填充.从图上看,当分点逐渐增多时,的值越来越小,读者可试取50个子区间看一看结果怎样.下面按等分区间计算 syms k n s=symsum(exp(k/n)/

38、n,k,1,n); limit(s,n,inf)得结果 ans=exp(1)-1 6.5 计算定积分和广义积分 例4 计算.解 输入命令:int(exp(x),0,1)得结果ans=exp(1)-1.这与我们上面的运算结果是一致的. 例 计算解 输入命令 int(abs(x-1),0,2)得结果ans =1.本例用mathematica软件不能直接求解. 例 判别广义积分、与的敛散性,收敛时计算积分值. 解 对第一个积分输入命令 syms p real;int(1/xp,x,1,inf)得结果ans =limit(-1/(p-1)*x(-p+1)+1/(p-1),x = inf).由结果看出当

39、时,x(-p+1)为无穷,当时,ans=1/(p-1),这与课本例题是一致的. 对第二个积分输入命令 int(1/(2*pi)(1/2)*exp(-x2/2),-inf,inf)得结果: ans=32913/*2(1/2)*pi(1/2)由输出结果看出这两个积分收敛.对后一个积分输入命令 int(1/(1-x)2,0,2)结果得ans=inf.说明这个积分是无穷大不收敛. 例 求积分解 输入命令:int(sin(x)/x,0,t),可得结果sinint(t),通过查帮助(help sinint)可知sinint(t)=,结果相当于没求!实际上matlab求出的只是形式上的结果,因为这类积分无法

40、用初等函数或其值来表示.尽管如此,我们可以得到该函数的函数值.输入vpa(sinint(0.5)可得sinint(0.5)的值.练习1.计算下列不定积分:(1); (2) ; (3) ;(4); (5) ; (6)2.计算下列定积分: (1) ; (2); (3) ; (4)3.求并用diff对结果求导.4.求摆线的一拱()与轴所围成的图形的面积.§7 常微分方程 7.1 常用命令 matlab求解微分方程命令dsolve,调用格式为: dsolve(微分方程)给出微分方程的解析解,表示为t的函数; dsolve(微分方程,初始条件)给出微分方程初值问题的解,表示为t的函数; dso

41、lve(微分方程,变量x)给出微分方程的解析解,表示为x的函数; dsolve(微分方程,初始条件,变量x)给出微分方程初值问题的解,表示为x的函数. 7.2 求解一阶微分方程 微分方程在输入时,应输入Dy,应输入D2y等,D应大写例 求微分方程的通解解 输入命令 dsolve('Dy+2*x*y=x*exp(-x2)') 结果为 ans = 1/2*(1+2*exp(-2*x*t)*C1*exp(x2)/exp(x2) 系统默认的自变量是t,显然系统把x当作常数,把y当作t的函数求解输入命令 dsolve('Dy+2*x*y=x*exp(-x2)','

42、x') 得正确结果 ans = 1/2*(x2+2*C1)/exp(x2) 例 求微分方程在初始条件下的特解解 输入命令 dsolve('x*Dy+y-exp(x)=0','y(1)=2*exp(1)','x') 得结果为 ans = 1/x*(exp(x)+exp(1) 例 求微分方程在初始条件下的特解解 输入命令 dsolve('(x2-1)*Dy+2*x*y-cos(x)=0','y(0)=1','x') 得结果为 ans =1/(x2-1)*(sin(x)-1) 7.3 求解二阶微分

43、方程例 求的通解解 输入命令 dsolve('D2y+3*Dy+exp(x)=0','x') 得结果 ans =-1/4*exp(x)+C1+C2*exp(-3*x) 例 求解微分方程解输入命令 dsolve('D2y-exp(2*y)*Dy=0','x') 得结果 ans = 1/2*log(-2*C1/(-1+exp(2*x*C1+2*C2*C1)+x*C1+C2*C1 练习求下列微分方程的通解:1 ; 2;3 ; 4;5 ; 6;7;8 §8 空间图形的绘制atlab绘制空间曲线的命令为plot3,调用格式绘制平面

44、曲线的命令plot类似。例1 画出螺旋线,的图形解 输入命令t=linspace(0,4*pi,300);x=2*cos(3*t);y=2*sin(3*t);z=1.5*t;plot3(x,y,z)结果如图所示例画出圆锥螺线,的图形解输入命令t=linspace(0,4*pi,300);x=t.*cos(3*t);y=t.*sin(3*t);z=1.5*t;plot3(x,y,z)结果如图所示。Matlab绘制空间曲面的命令为mesh和surf,mesh绘制网格形状的曲面,surf绘制由小平面组成的曲面。例3画出抛物面的图形解输入命令x=linspace(-2,2,20);y=linspace(-3,3,30);x,y=meshgrid(x,y);z=x.2+y.2;mesh(x,y,z

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论