matlab第五章 函数、导数与积分等
- 格式:ppt
- 大小:192.01 KB
- 文档页数:25
Matlab中常用函数1 内部常数p i 圆周率exp(1) 自然对数的底数ei或j 虚数单位In f或 in f 无穷大2 数学运算符a+b 加法a-b减法a*b 矩阵乘法a.*b 数组乘法a/b 矩阵右除a\b矩阵左除a./b数组右除a.\b数组左除a^b矩阵乘方a.^b数组乘方-a 负号‟ 共轭转置.'一般转置3 关系运算符== 等于>大于>= 大于或等于~=不等于4 常用内部数学函数指数函数 exp(x) 以e为底数对数函数l og(x)自然对数,即以e为底数的对数log10(x)常用对数,即以10为底数的对数log2(x) 以2为底数的x的对数开方函数sqrt(x) 表示x的算术平方根绝对值函数a bs(x)表示实数的绝对值以及复数的模三角函数(自变量的单位为弧度) si n(x)正弦函数cos(x) 余弦函数tan(x) 正切函数c ot(x)余切函数sec(x) 正割函数cs c(x)余割函数反三角函数asin(x) 反正弦函数acos(x) 反余弦函数a tan(x) 反正切函数ac ot(x)反余切函数ase c(x)反正割函数acsc(x) 反余割函数双曲函数sinh(x) 双曲正弦函数cosh(x) 双曲余弦函数tanh(x) 双曲正切函数coth(x) 双曲余切函数sech(x) 双曲正割函数csch(x) 双曲余割函数反双曲函数asin h(x)反双曲正弦函数ac osh(x) 反双曲余弦函数atanh(x) 反双曲正切函数aco th(x)反双曲余切函数a sech(x) 反双曲正割函数acsc h(x)反双曲余割函数求角度函数a tan2(y,x)以坐标原点为顶点,x轴正半轴为始边,从原点到点(x,y)的射线为终边的角,其单位为弧度,范围为(0,2*pi ]数论函数 gc d(a,b) 两个整数的最大公约数lc m(a,b) 两个整数的最小公倍数排列组合函数facto rial(n) 阶乘函数,表示n的阶乘复数函数real(z) 实部函数im ag(z)虚部函数abs(z) 求复数z的模angle(z) 求复数z的辐角co nj(z)求复数z的共轭复数求整函数与截尾函数 ceil(x) 表示大于或等于实数x的最小整数floor(x) 表示小于或等于实数x的最大整数round(x) 最接近x的整数最大、最小函数max([a,b,c,...]) 求最大数min([a,b,c,..]) 求最小数符号函数si gn(x)5 自定义函数-调用时:“[返回值列]=M文件名(参数列)”fu nctio n 返回变量=函数名(输入变量)注释说明语句段(此部分可有可无)函数体语句6.进行函数的复合运算c ompos e(f,g) 返回值为f(g(y))c ompos e(f,g,z) 返回值为f(g(z))comp ose(f,g,x,.z) 返回值为f(g(z))comp ose(f,g,x,y,z)返回值为f(g(z))7 因式分解s yms 表达式中包含的变量facto r(表达式)8 代数式展开syms表达式中包含的变量expa nd(表达式)9合并同类项syms表达式中包含的变量col lect(表达式,指定的变量)10 进行数学式化简sym s 表达式中包含的变量si mplif y(表达式)11进行变量替换sym s 表达式和代换式中包含的所有变量s ubs(表达式,要替换的变量或式子,代换式)12进行数学式的转换调用Map le中数学式的转换命令,调用格式如下:m aple(…Mapl e的数学式转换命令‟) 即:maple(…con vert(表达式,f orm)‟‟)将表达式转换成f orm的表示方式maple(…con vert(表达式,f orm,x)‟)指定变量为x,将依赖于变量x的函数转换成form的表示方式(此指令仅对form为exp与sinco s的转换式有用)13 解方程so lve(‟方程‟,‟变元‟)注:方程的等号用普通的等号:=14解不等式调用ma ple中解不等式的命令即可,调用形式如下:ma ple('maple中解不等式的命令')*具体说,包括以下五种:m aple(' sol ve(不等式)')mapl e(' s olve(不等式,变元)' )map le('solve({不等式},变元)' ) maple(' so lve(不等式,{变元})')ma ple(' solv e({不等式},{变元})')15解不等式组调用ma ple中解不等式组的命令即可,调用形式如下:m aple('mapl e中解不等式组的命令')即:mapl e(' s olve({不等式组},{变元组})')16画图方法1:先产生横坐标x的取值和相应的纵坐标y的取值,然后执行命令:plo t(x,y)方法2:fpl ot('f(x)',[xmin,xmax])f plot('f(x)',[xm in,xm ax,ym in,ym ax])方法3:ezplo t('f(x)')ezpl ot('f(x)',[xmi n,xma x]) ezplo t('f(x)' ,[xmin,xmax,ymin,ymax])e zplot3();mesh();数值三维画图ezme sh();符号函数三维画图17 求极限(1)极限:s yms xlim it(f(x), x, a)(2)单侧极限:左极限:s yms xlim it(f(x), x, a,‟left‟)右极限:sym s x limit(f(x), x,a,‟ri ght‟)18 求导数di ff('f(x)')dif f('f(x)','x')或者:Sy ms xDiff(f(x))sym s x diff(f(x), x)19 求高阶导数di ff('f(x)',n)d iff('f(x)','x',n)或者:sym s x diff(f(x),n)sy ms xdiff(f(x), x,n)20在MAT LAB中没有直接求隐函数导数的命令,但是我们可以根据数学中求隐函数导数的方法,在中一步一步地进行推导;也可以自己编一个求隐函数导数的小程序;不过,最简便的方法是调用Map le中求隐函数导数的命令,调用格式如下:map le('i mplic itdif f(f(x,y)=0,y,x)')在M ATLAB中,没有直接求参数方程确定的函数的导数的命令,只能根据参数方程确定的函数的求导公式一步一步地进行推导;或者,干脆自己编一个小程序,应用起来会更加方便。
MATLAB求导数的方法1.数值导数的计算[问题]求正弦函数的一阶导数和二阶导数y = sin x[数学模型]函数的一阶导数为y' = cos x函数的二阶导数为y'' = -sin x[算法]求差分函数为diff,对于数值向量,其功能是求后一元素与前一元素之差,如果数值间隔取得足够小,就能表示导数的近似值。
对于符号函数,可用同样的函数diff计算符号导数。
[程序]zyq3_1diff.m如下。
%正弦函数的导数clear %清除变量a=0:5:360; %度数向量x=a*pi/180; %弧度向量dx=x(2); %间隔(第1个值为零)y=sin(x); %正弦曲线dy=diff(y)/dx; %用差分求导数的近似值dy=[dy(1),(dy(1:end-1)+dy(2:end))/2,dy(end)];%求平均值figure %创建图形窗口%plot(x,cos(x),x(1:end-1),dy,'.') %画导数曲线(数值导数偏左)%plot(x,cos(x),x(2:end),dy,'.') %画导数曲线(数值导数偏右)plot(x,cos(x),x,dy,'.') %画导数曲线(数值导数适中)s=sym('sin(x)'); %定义符号函数sdy=diff(s); %符号导数ssdy=subs(sdy,'x',x); %替换数值hold on%保持图像plot(x,ssdy,'ro') %画导数曲线legend('公式解','数值解','符号解',4) %加图例title('正弦函数的一阶导数') %标题d2y=diff(dy)/dx; %用差分求导数的近似值d2y=[d2y(1),(d2y(1:end-1)+d2y(2:end))/2,d2y(end)];%求平均值figure %创建图形窗口plot(x,-sin(x),x,d2y,'.') %画导数曲线(数值导数适中)sd2y=diff(s,2); %符号二阶导数ssd2y=subs(sd2y,'x',x); %替换数值hold on%保持图像plot(x,ssd2y,'ro') %画导数曲线legend('公式解','数值解','符号解',4) %加图例title('正弦函数的二阶导数') %标题[图示]2.函数极值的计算[问题]求如下函数的极值y = x3– 3x2 + x(1) [数学模型]求导数y' = 3x2– 6x + 1 (2) 令y' = 0,解得1x==1.8165,0.1835 (3)(36)3[算法]将自变量设计为向量,函数设计为内线函数,用max函数和min函数求极大值和极小值。
matlab积分函数曲线,matlab积分函数⼀.相关函数:%符号积分int(f,v)int(f,v,a,b)%数值积分trapz(x,y)%梯形法沿列⽅向求函数Y关于⾃变量X的积分cumtrapz(x,y)%梯形法沿列⽅向求函数Y关于⾃变量X的累计积分quad(fun,a,b,tol)%采⽤递推⾃适应Simpson法计算积分quad1(fun,a,b,tol)%采⽤递推⾃适应Lobatto法求数值积分dbquad(fun,xmin,xmax,ymin,ymax,zmin,zmax,tol)%⼆重(闭型)数值积分指令triplequad(fun,xmin,xmax,ymin,ymax,zmin,zmax,tol)%三重(闭型)数值积分指令⼆.⽰例:例1:计算f(t)=exp(-t^2)在[0,1]上的定积分本例演⽰:计算定积分常⽤⽅法>>symsxint(exp(-x^2),0,1)ans=1/2*erf(1)*pi^(1/2) %erf为误差函数>>vpa(int(exp(-x^2),0,1))ans=.7468241328124270>>d=0.001;x=0:d:1;d*trapz(exp(-x.^2))ans=0.7468>>quad('exp(-x.^2)',0,1,1e-8)ans=0.7468例2:计算f(t)=1/log(t)在[0,x],0注意:被积函数于x=0⽆义,在x-->1^-处为负⽆穷本例演⽰:⽤特殊函数表⽰的积分结果,如何⽤mfun指令(1)symstxft=1/log(t);sx=int(ft,t,0,x)sx=-Ei(1,-log(x)) %完全椭圆函数(2)x=0.5:0.1:0.9sx_n=-mfun('Ei',1,-log(x))x=0.5000 0.6000 0.7000 0.8000 0.9000sx_n=-0.3787 -0.5469 -0.7809 -1.1340 -1.7758(3)%图⽰被函数和积分函数clfezplot('1/log(t)',[0.1,0.9])gridonholdonplot(x,sx_n,'LineWidth',3)Char1='1/ln(t)';Char2='{int_0^x}1/ln(t)dt';title([Char1,' and ',Char2])legend(Char1,Char2,'Location','SouthWest')例3:计算f(t)=exp(-sin(t))在[0,4]上的定积分注意:本题被函数之原函数⽆"封闭解析表达式",符号计算⽆法解题!本例演⽰:符号计算有限性(1)符号计算解法symstxft=exp(-sin(t))sx=int(ft,t,0,4)ft=exp(-sin(t))Warning:Explicitintegralcouldnotbefound.>Insym.intat58sx=int(exp(-sin(t)),t=0..4)(2)数值计算解法dt=0.05; %采样间隔t=0:dt:4; %数值计算适合于有限区间上,取有限个采样点Ft=exp(-sin(t));Sx=dt*cumtrapz(Ft); %计算区间内曲线下图形⾯积,为⼩矩形⾯积累加得Sx(end) %所求定积分值%图⽰plot(t,Ft,'*r','MarkerSize',4)holdonplot(t,Sx,'.k','MarkerSize',15)holdoffxlabel('x')legend('Ft','Sx')>>ans=3.0632例4:绘制积分图形,y=2/3*exp(-t/2)*cos(sqrt(3)/2*t);积分s(x)=int(y,t,0,x)于[0,4*pi]上symsttaoy=2/3*exp(-t/2)*cos(sqrt(3)/2*t);s=subs(int(y,t,0,tao),tao,t); %获得积分函数subplot(2,1,1)%ezplot(y,[0,4*pi]),ylim([-0.2,0.7]) %单变量符号函数可视化,多变量⽤ezsurfgridonsubplot(2,1,2)ezplot(s,[0,4*pi])gridontitle('s=inty(t)dt')。