Matlab的学习历程:高等数学在matlab中的应用

10 min read Page Views

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等表示求高阶微分。

Last updated on 2025-05-14