Matlab的学习历程:高等数学在matlab中的应用
1.matlab求函数值
例:当$x=2$,$y=4$,求下面表达式的函数值。 $$ z=x^2+e^{x+y}-ylog_2x-x^y $$ matlab程序:
x=2,y=4
z=x^2+exp(x+y)-y*log2(x)-x^y
输出结果:
x = 2
y = 4
z = 387.4288
matlab中定义了$2$、$10$、$e$的$log$函数的底,程序调用格式分别为$log_2x$、$log_{10}x$、$logx$,其余的数的底没有定义,但可以根据换底公式$log_xy=logy/logx$获得任意整数的对数,将以$x$为底转换为以$e$为底,例如$log_4x$可以通过$logx/log4$的形式表示。
2.matlab求极限
例:求下面表达式的极限。 $$ y=\lim_{x\to0^+}\frac{e^{x^2}-1}{1-\cos\sqrt{x-sinx}} $$ matlab程序:
syms x %定义符号变量
y=limit((exp(x^3)-1)/(1-cos(sqrt(x-sin(x)))),x,0,'right')
输出结果:
y = 12
matlab中,求极限的调用格式为L=limit(fun,x,x0),求单侧极限的调用格式为L=limit(fun,x,x0,’left’ or ‘right’),其中fun是函数表达式,x是变量,x0是极限点,如果极限趋于正无穷则使用inf表示,负无穷则使用-inf表示,left和right分别表示左侧和右侧极限。
3.matlab求导数
例:设$z=e^{2x}(x+y^{2}+2y)$,求$\frac{\partial z}{\partial x}$,$\frac{\partial z}{\partial y}$,$\frac{\partial^{2}z}{\partial x^{2}}$,$\frac{\partial^{2}z}{\partial y^{2}}$,$\frac{\partial^{2}z}{\partial x\partial y}$ 。其中,$\frac{\partial^{2}z}{\partial x^{2}}=\frac{\partial}{\partial x}(\frac{\partial z}{\partial x})$,$\quad\frac{\partial^{2}z}{\partial y^{2}}=\frac{\partial}{\partial y}(\frac{\partial z}{\partial y})$,$\quad\frac{\partial^{2}z}{\partial x\partial y}=\frac{\partial}{\partial y}\left(\frac{\partial z}{\partial x}\right)$。
matlab程序:
syms x y
z=exp(2*x)*(x+y^2+2*y)
a=diff(z,x) %表示əz/əx
b=diff(z,y) %表示əz/əy
c=diff(z,x,2) %表示ə²z/əx²
d=diff(z,y,2) %表示ə²z/əy²
e=diff(a,y) %表示ə²z/əxəy,也可以写为e=diff(diff(z,x),y)
输出结果:
z = exp(2*x)*(y^2 + 2*y + x)
a = exp(2*x) + 2*exp(2*x)*(y^2 + 2*y + x)
b = exp(2*x)*(2*y + 2)
c = 4*exp(2*x) + 4*exp(2*x)*(y^2 + 2*y + x)
d = 2*exp(2*x)
e = 2*exp(2*x)*(2*y + 2)
matlab中,求导数的调用格式为y=diff(fun,x),求n阶导数的调用格式为y=diff(fun,x,n),求多元函数的偏导数调用格式为f=diff(diff(fun,x,m),y,n)或f=diff(diff(fun,y,n),x,m)。
4.matlab求极值和零点
例:已知$\mathrm{f(x)}=3x^5-x^4+2x^3+x^2+3$,求函数的零点和函数在[-1,2]上的最小值。
matlab程序:
zero=fzero('3*x^5-x^4+2*x^3+x^2+3',0)
[x,f]=fminbnd('3*x^5-x^4+2*x^3+x^2+3',-1,2)
输出结果:
zero = -0.8952
x = -1.1791e-05 %这是一种科学计数法,该结果表示为-1.1791*10^(-5),类似的,如果是-1.1791e+05则表示-1.1791*10^(5)
f = 3.0000
x=fzero(fun,x0),其中fun是函数表达式,该函数的作用是找出某值x0附近的零点或某区间x0内的零点。
fminbnd函数的作用是找到固定区间内单变量函数的最小值,调用格式为[x,f]=fminbnd(fun,x1,x2),其中fun是函数表达式,区间为x1<x<x2,f是返回目标函数fun在x处的解。
5.matlab求积分
例:求不定积分$\int\cos2xcos3xdx$,定积分$\int_{1}^{e}x^{2}lnxdx$,二重积分$\iint\frac{y^{2}}{x^{2}}dxdy,(\frac{1}{2}\leq x\leq2,1\leq y\leq2)$。
matlab程序:
syms x
a=int(cos(2*x)*cos(3*x))
syms x
b=eval(int(x^2*log(x),x,1,exp(1)))
syms x y
c=int(int(y^2/x^2,x,1/2,2),y,1,2)
输出结果:
a = sin(5*x)/10 + sin(x)/2
b = 4.5746
c = 7/2
不定积分的调用格式:f=int(fun,x)。
定积分和无穷积分的调用格式:f=int(fun,x,a,b),(a,b)是定积分的积分区间,(-inf,inf)是无穷积分区间。
6.matlab解微分方程
例1:求下面微分方程的通解。 $$ \frac{dy}{dx}+2\frac{y}{x}=\frac{\sin3x}{x^2} $$ matlab程序:
a=dsolve('Dy+2*y/x=sin(3*x)/(x^2)','x') %Dy中的D一定要大写
输出结果:
a = C10/x^2 - cos(3*x)/(3*x^2) %其中C10表示常数
例2:求下面微分方程组的特解。

matlab程序:
b=dsolve('D2y+4*Dy+29*y=0','y(0)=0,Dy(0)=15','x')
输出结果:
b = 3*sin(5*x)*exp(-2*x)
例3:求下面微分方程组的通解。

matlab程序:
[x,y,z]=dsolve('Dx=2*x-3*y+3*z','Dy=4*x-5*y+3*z','Dz=4*x-4*y+2*z','t')
输出结果:
x = C11*exp(2*t) + C12*exp(-t) %其中C11,C12,C13为常数
y = C11*exp(2*t) + C12*exp(-t) + C13*exp(-2*t)
z = C11*exp(2*t) + C13*exp(-2*t)
matlab中,微分方程(组)的调用格式为:dsolve(‘方程1’,‘方程2’,……,‘方程n’,‘初始条件’,‘自变量’),在微分方程中大写字母D表示求微分,D2、D3等表示求高阶微分。