作者:张世琛

函数的导数

$$
求函数y=log(x+\sqrt{1+x^2})的一阶和二阶导数
$$

syms x;
y=log(x+sqrt(1+x^2));
dydx=diff(y,x);
dydx=simplify(dydx)
dydx2=diff(y,x,2);
dydx2=simplify(dydx2)

隐函数求导

$$
设e^{y}+xy-e=0求\frac{dy}{dx}\
公式\frac{dy}{dx}=-\frac{f{x}}{f{y}}
$$

syms x y;
f=exp(y)+x*y-exp(1);
dfdx=diff(f,x);
dfdy=diff(f,y);
dydx=-dfdx/dfdy

参数方程求导

$$
设参数方程\left{\begin{matrix}
x=x(t)& \
y=y(t)&
\end{matrix}\right.
确定的函数y=f(x),则\frac{dy}{dx}=\frac{y'(t)}{x'(t)}
$$

$$
设\left{\begin{matrix}
x=a(t-sin(t))& \
y=a(1-cos(t))&
\end{matrix}\right.
求\frac{dy}{dx}
$$

syms a t;
dxdt=diff(a*(t-sin(t)));
dydt=diff(a*(1-cos(t)));
dydx=dydt/dxdt

积分

$$
1)\int \frac{1}{1+\sqrt{1-x^2}}dx\
2)\int{0}^{1}\frac{1}{1+\sqrt{1-x^2}}dx\
3)\int
{0}^{\infty}\frac{sinx}{x}dx
$$

syms x;
I=int(1/(1+sqrt(1-x^2)));
pretty(I)
int(1/(1+sqrt(1-x^2)),0,1)
int(sin(x)/x,0,inf)

平面图形的面积

$$
A=\int_{a}^{b}|y_2(x)-y_1(x)|dx
$$

$$
求由y=e^x,y=e^{-x},x=1所围成图形的面积
$$

x=-1:0.1:2;
y1=exp(-x);
y2=exp(x);
plot(x,y1,x,y2);
hold on
plot([1 1],[-1 7]);
x=0:0.1:1;
y1=exp(-x);
y2=exp(x);
fill([x fliplr(x)],[y1 fliplr(y2)],'b')
syms x;
y1=exp(-x);
y2=exp(x);
a=0;
b=1;
area=int(abs(y1-y2),a,b)

旋转体体积

$$
V=\int_{a}^{b}\pi[f(x)]^2dx
$$

$$
求椭圆y=\frac{b}{a}\sqrt{a^2-x^2}绕x轴旋转而成的 椭球体积
$$

a=1;
b=2;
x=-a:0.1:a;
f=b/a*sqrt(a^2-x.^2);
[X,Y,Z]=cylinder(f);
Z=Z*a*2-a;
surf(X,Y,Z)
syms x a b;
f=b/a*sqrt(a^2-x^2);
y=int(pi*f^2,-a,a)

已知截面面积的立体体积

$$
V=\int_{a}^{b}A(x)dx
$$

$$
求已知截面面积A(x)=3x^4+6x-5,x\in [0,5]的立体体积
$$

syms x;
A=3*x^4+6*x-5;
int(A,0,5)

平面曲线的弧长

$$
S=\int{a}^{b}\sqrt{1+y’^2}dx\
S=\int
{\alpha}^{\beta}\sqrt{\varphi’^2(t)+\psi’^2(t)}dt\
S=\int_{\alpha}^{\beta}\sqrt{r^2(\theta)+r’^2{\theta}}d\theta \
\left{\begin{matrix}
x=a(t-sint)\
y=a(1-cost)
\end{matrix}\right.
(0<=t<=2\pi)的长度
$$

a=1;
syms t;
x=a*(t-sin(t));
y=a*(1-cos(t));
ezplot(x,y,[0,2*pi]);
grid on;
syms t a;
x=a*(t-sin(t));
y=a*(1-cos(t));
int(sqrt(diff(x)^2+diff(y)^2),0,2*pi)

单调区间

$$
求函数y=x^3-2*x+1的 单调区间
$$

syms x;
y=x^3-2*x+1;
dydx=diff(y);
x=-4:0.1:4;
y=eval(y);
dydx=eval(dydx);
plot(x,y,x,dydx);
xlabel('x');
ylabel('y,dy.dx');
legend('y(x)','dy/dx');
grid on
syms x;
y=x^3-2*x+1;
dydx=diff(y);
zeroPoint=solve(dydx,x);
subs(dydx,x,-1)
subs(dydx,x,0)
subs(dydx,x,1)
%1 -2 1

$$
在\left (-\infty,-\frac{\sqrt{6}}{3} \right ) \quad\left (\frac{\sqrt{6}}{3},+\infty \right )单调递增\
在\left (-\frac{\sqrt{6}}{3},\frac{\sqrt{6}}{3}\right )单调递减
$$

凹凸区间

$$
求函数y=\frac{1}{1+2x^2}的凹凸区间和拐点
$$

syms x;
y=1/(1+2*x^2);
dydx2=diff(y,2);
x=[-3:0.1:3];
y=eval(y);
dydx2=eval(dydx2);
plot(x,y,x,dydx2,'--');
xlabel('x');
ylabel('y, dy/dx2');
legend('函数','二阶导数');
axis([-3,3,-5,2]);
grid on
syms x;
y=1/(1+2*x^2);
dydx2=diff(y,2);
zeroPoint=solve(dydx2,x);
zeroPoint=simplify(zeroPoint)
subs(y,x,double(zeroPoint))

$$
在\left (-\infty,\frac{1}{\sqrt{6}} \right ) \quad\left (\frac{1}{\sqrt{6}},+\infty \right )二阶导数大于零,下凸\
在\left (-\frac{1}{\sqrt{6}},\frac{1}{\sqrt{6}} \right )二阶导数小于零,上凸\
两个拐点分别是\left (-\frac{1}{\sqrt{6}},\frac{3}{4} \right )和
\left (\frac{1}{\sqrt{6}},\frac{3}{4} \right )
$$

极值

$$
求函数y=\frac{x}{1+x^2}的极值
$$

syms x;
y=x/(1+x^2);
ezplot(y,[-10,10]);
利用极值判定定理
syms x;
y=x/(1+x^2);
zeroPoint=solve(diff(y),x);
%-1 1
%驻点为x=1或x=-1
subs(diff(y,2),x,double(zeroPoint));
% -1/2 1/2
%二阶导
%x=-1 二阶导为1/2 极小值
%x=1 二阶导为-1/2 极大值
subs(y,x,double(zeroPoint))
%-1/2 1/2
%极小值为-1/2 极大值1/2
利用优化函数
[email protected](x) x/(1+x^2);
[xmin,ymin]=fminbnd(f,-2,0);%在(-2,0)求极小值
[email protected](x) -x/(1+x^2);
xmax=fminbnd(ff,0,2);%求极大值转化为求极小值
ymax=f(xmax);

拉格朗日中值定理

$$
对函数f(x)=ln(1+x)在[0,4]上观察拉格朗日中值定理的几何意义
$$

syms x;
f=log(1+x);
figure;
ezplot(f,[0,4]);
hold on;
ab=[0,4];
fab=subs(f,ab);
kab=(fab(2)-fab(1))/(ab(2)-ab(1));
plot(ab,fab);
hold off
syms x;
f=log(1+x);
hold on;
ab=[0,4];
fab=subs(f,ab);
kab=(fab(2)-fab(1))/(ab(2)-ab(1));
xi=eval(solve(diff(f)-kab))
figure;
ezplot(f,[0,4]);
hold on;
plot(ab,fab);
y=subs(f,x,xi)+kab*(x-xi);
ezplot(y,[0,4]);
axis([0,4,-0.5,2]);
hold off;

偏导数及高阶导数

$$
设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}
$$

syms x y;
z=exp(2*x)*(x+y^2+2*y);
dzdx=diff(z,x)
dzdy=diff(z,y)
dzdx2=diff(z,x,2)
dxdy2=diff(z,y,2)
dzdxdy=diff(diff(z,x),y)

多元函数全微分

$$
已知z=(x^2+y^2)sin(xy),求dz
$$

syms x y
z=(x^2+y^2)*sin(x*y);
dz=diff(z,x)*'dx'+diff(z,y)*'dy'

$$
已知z=3x^2y^3+ln(xy)求当x=2,y=3,\Delta x=0.02,\Delta y=0.01时,求dz
$$

syms x y;
z=3*x^2*y^3+log(x*y);
dzdx=diff(z,x);
dzdy=diff(z,y);
x=2;y=3;
dzdx=eval(dzdx);
dzdy=eval(dzdy);
dx=0.02;dy=0.01;
dz=dzdx*dx+dzdy*dy

二重积分

$$
\iint_{D} xy^2dxdy 其中D为由x+y=2,x=\sqrt{y},y=2所围成有界区域
$$

syms x y;
[x y]=solve(y==2-x,y==x^2,x>=0,x,y);
xpoints=[vpa(x) 0 sqrt(2)];
a=min(xpoints);
b=max(xpoints);
x=a-1:0.1:b+1;
y1=2-x;
y2=x.^2;
y3=0*x+2;
plot(x,y1,x,y2,x,y3);
hold on
x=a:0.1:1;
y1=2-x;
y3=0*x+2;
fill([x fliplr(x)],[y1 fliplr(y3)],'b');
x=1:0.1:b;
y2=x.^2;
y3=x*0+2;
fill([x fliplr(x)],[y2 fliplr(y3)],'b');
syms x y
int(int(x*y^2,x,2-y,sqrt(y)),y,1,2)

$$
计算\iint_{D}e^{-(x^2+y^2)}dxdy\quad D为x^2+y^2\leqslant 1
$$

syms x y r theta;
x=r*cos(theta);
y=r*sin(theta);
xy2r=simplify(x^2+y^2);
f=exp(-xy2r);
int(int(f*r,r,0,1),theta,0,2*pi)

三重积分

$$
\iiint (x^2+y^2+z)dxdydz 是由曲面z=\sqrt{2-x^2-y^2}与z=\sqrt{x^2+y^2}围成
$$

$$
曲面z=\sqrt{2-x^2-y^2}与z=\sqrt{x^2+y^2}交线在xoy平面上的投影为
\left{\begin{matrix}
\sqrt{2-x^2-y^2}=\sqrt{x^2+y^2} \
z=0
\end{matrix}\right.\

\left{\begin{matrix}
x^2+y^2=1 \
z=0
\end{matrix}\right.
$$

柱面坐标

$$
\left{\begin{matrix}
x=rsin\theta\
y=rcos\theta\
z=z
\end{matrix}\right.
$$

$$
\iiint f(x,y,z)dxdydz=f(rsin\theta,rcos\theta,z)rdrd\theta dz
$$

syms x y z;
z1=sqrt(2-x^2-y^2);
z2=x^2+y^2;
[X Y]=meshgrid(-1:0.1:1);
Z1=eval(subs(z1,{x,y},{X,Y}));
Z2=eval(subs(z2,{x,y},{X,Y}));
surf(X,Y,Z1);
hold on
surf(X,Y,Z2)
xlabel('x轴');
ylabel('y轴');
syms t theta;
x=r*cos(theta);
y=r*sin(theta);
f=x^2+y^2+z;
z1=sqrt(2-x^2-y^2);
z2=sqrt(x^2+y^2);
int(int(int(f*r,z,z2,z1),r,0,1),theta,0,2*pi)
球坐标

$$
\left{\begin{matrix}
x=rsin \varphi cos\theta\
x=rsin \varphi sin\theta \
z=rcos\varphi
\end{matrix}\right.
$$

$$
\iiint f(x,y,z)dxdydz=f(rsin \varphi cos\theta,rsin \varphi sin\theta,rcos\varphi)r^2sin\varphi drd\theta d\varphi
$$

syms r phi theta;
x=r*sin(phi)*cos(theta);
y=r*sin(phi)*sin(theta);
z=r*cos(phi);
f=x^2+y^2+z;
int(int(int(f*r^2*sin(phi),r,0,sqrt(2)),phi,0,pi/4),theta,0,2*pi)

求弧长

$$
\intL f(x,y)ds=\int{a}^{b} f(x(t),y(t))\sqrt{x’^2(t)+y’^2(t))}dt\
\intL f(x,y,z)ds=\int{a}^{b} f(x(t),y(t),z(t))\sqrt{x’^2(t)+y’^2(t)+z’^2(t))}dt
$$

$$
计算\int_L\sqrt{y}ds L为y=x^2上O(0,0)到B(1,1)一段弧
$$

syms t;
x=t;
y=t^2;
z=0;
f=sqrt(y);
s=int(f*sqrt(diff(x,t)^2+diff(y,t)^2+diff(z,t)^2),t,0,1)

$$
求锥面x^2+y^2=z^2,z>=0与柱面x^2+y^2=x交线的长度
$$

$$
\left{\begin{matrix}
x=cos^2(t)\
y=sin(t)\cos(t);\
z=cos(t);
\end{matrix}\right.
t\in[-pi/2,pi/2]
$$

u=linspace(0,pi,50);
figure;
v=linspace(0,pi*2,50);
[u,v]=meshgrid(u,v);
x=sin(u).*cos(v);
y=sin(u).*sin(v);
z=sin(u);
surf(x,y,z)
hold on
t=linspace(0,pi*2,50);
z1=linspace(0,1.2,50);
[t,z1]=meshgrid(t,z1);
surf(cos(t).^2,cos(t).*sin(t),z1);
t=linspace(-pi/2,pi/2,50);
figure
plot3(cos(t).^2,cos(t).*sin(t),cos(t));
syms t;
x=cos(t)^2;
y=cos(t)*sin(t);
z=cos(t);
f=1;
s=int(f*sqrt(simplify(diff(x,t)^2+diff(y,t)^2)+diff(z,t)^2),t,-pi/2,pi/2)

多元函数极值

$$
求f(x,y)=x^3-y^3+3x^2+3y^2-9x的极值
$$

高等数学法
syms x y;
f=x^3-y^3+3*x^2+3*y^2-9*x;
dfdx=diff(f,x);
dfdy=diff(f,y);
[x0,y0]=solve(dfdx,dfdy,x,y);
xmax=[];
xmin=[];
for k=1:length(x0)
    A=subs(diff(dfdx,x),[x,y],[x0(k),y0(k)]);
    B=subs(diff(dfdx,y),[x,y],[x0(k),y0(k)]);
    C=subs(diff(dfdy,y),[x,y],[x0(k),y0(k)]);
    if double(A*C-B^2)>0
        if double(A)<0
            xmax=[xmax;[x0(k),y0(k)]];
        else
            xmin=[xmin;[x0(k),y0(k)]];
        end
    end
end
if ~isempty(xmax)
    fmax=subs(f,[x,y],[xmax(:,1),xmax(:,2)]);
else
    fmax=[];
end
if ~isempty(xmin)
    fmin=subs(f,[x,y],[xmin(:,1),xmin(:,2)]);
else
    fmin=[];
end
[xmax fmax]
[xmin fmin]
等高线法
x=-4:0.2:3;
y=-1:0.2:3;
[x,y]=meshgrid(x,y);
f=x.^3-y.^3+3*x.^2+3*y.^2-9*x;
figure
surf(x,y,f);
figure
contour(x,y,f,50);
hold on
grid on
[px,py]=gradient(f,0.2,0.2);
quiver(x,y,px,py)
利用优化函数
[email protected](x) x(1)^3-x(2)^3+3*x(1)^2+3*x(2)^2-9*x(1);
[xmin,fmin]=fminsearch(fun,rand(1,2))
[email protected](x) -(x(1)^3-x(2)^3+3*x(1)^2+3*x(2)^2-9*x(1));
[xmax,fmax]=fminsearch(fun1,rand(1,2))

iskeyword:获得关键字的列表

变量说明
ans预设的计算结果的变量名
eps定义正的极小值=$$2.2204*10^{-16}$$
pi$$\pi$$ 值
inf$$\infty$$ 值,无限大
NaN无法定义一个数目(零做分母)
i 或 j虚数单位 i = j =$$\sqrt{-1}$$

clear all:如果变量用户不用clear清除它,或对它重新进行赋值,那么该变量一直保存在变量空间中,直到本次指令窗口关闭为止。

clc:清除所有指令

函数运算法则实例
floor向下取整floor(3.5)=3;floor(-3.5)=-4
ceil向上取整ceil(3.5)=4;ceil(-3.5)=-3
round取最接近的整数,如果小数部分是0.5,向绝对值大的方向取整round(1.4)=1;round(3.5)=4;round(-3.5)=-4
fix向0取整fix(3.5)=3;fix(-3.5)=3
函数说明
x=complex(a,b)建立一个复数a+bi
real(x)返回复数的实部a
abs(x)返回复数的模
conj(x)返回复数x的共轭复数
imag(x)返回复数的虚部a
angle(x)返回复数x辅角
str='abs'
abs(str)
ans=
    97  98  99
函数说明
char转换成字符类型
int2str将整数转化成字符串
num2str将数值转化成字符串
str2num将字符串转化成数值
str2double将字符串转化成浮点数
eval将字符串转化成matlab可执行的语句
num={'2.5e-1','-3.8','1.125'}
str2double(num)
ans=
    0.2500
   -3.8000
    1.1250
eval('sin(1)')
ans=
    0.8415
名称含义
exp以e为底的指数
log自然对数
sqrt平方根
log10以10为底的对数
log2以2为底的对数
pow22的幂
函数说明
collect将表达式按照其默认的符号变量的幂次由高到低,同一幂次的符号变量的系数被合并到一起
expand将表达式展开
horner将表达式分解成嵌套形式
factor因式分解
simplify表达式化简
subs将符号表达式中的某些符号变量为指定新变量
syms x y a b c s
f=x^3*y+x*(y^2+6)+x*y+8*x^2+y^2*x
collect(f)
ans=
    y*x^3+8*x^2+(2*y^2+y+6)*x

expand((x-1)*(x-2)*(x-3))
ans=
    x^3-6*x^2+11*x-6

horner(x^3-6*x^2+11*x-6)
ans=
    -6+(11+(-6+x)*x)*x

factor(x^3-6*x^2+11*x-6)
ans=
    (x-1)*(x-2)*(x-3)

subs(s+a+b+c,{a,b,c},{10,10,20})
ans=
    s+40

%:表示注释

h=1+3+5 ...
+10
ans=
    19

MATLAB的每条命令后,若为逗号无标点符号,则显示命令的结果;若命令后为分号禁止显示结果

%行向量
x=[1 2 3 4 5]
%列向量
x=[1;2;3;4;5]
x=1:5 %默认步长为1
x=1:2:5
x=linspace(1,5,5)%把1~5分成5份
x=logspace(a,b,n)%在 10 的幂 10^a 和 10^b(10 的 N 次幂)之间生成 n 个点

(1)访问一个元素: x(i)表示访问数组x的第i个元素.

(2)访问一块元素: x(a :b :c)表示访问数组x的从第a个元素开始,以步长为b到第c个元素(但不超过c),b可以为负数,b缺损时为1.

x=1:5
x(3)
ans=
    3
x(1:2:5)
ans=
    1 3 5
x(1:5)
ans=
    1 2 3 4 5
A=[1 2 3 4]
A'
ans=
    1
    2
    3
    4

$$
a=[a_1,a_2,…,a_n], c=标量\
a+c=[a_1+c,a_2+c,…,a_n+c]\
a.c=[a_1c,a_2c,…,a_nc]\
a./c=[a_1/c,a_2/c,…,a_n/c]\
a.\verb||c=[c/a_1,c/a_2,…,c/a_n]\
a.\verb|^|c=[a_1^c,a_2^c,…,a_n^c]\
c.*a=[c^a_1,c^a_2,…,c^a_n]\
$$

A=[1 2 3;4 5 6;7 8 9]
ans=
    1 2 3
    4 5 6
    7 8 9

a=[ ] 产生一个空矩阵,当对一项操作无结果时,返回空矩阵,空矩阵的大小为零

b=zeros(m,n)产生一个m行、n列的零矩阵

c=ones(m,n) 产生一个m行、n列的元素全为1的矩阵

d=eye(m,n) 产生一个m行、n列的元素单位阵

(1)矩阵A的第r行:A(r,:)

(2)矩阵A的第r列:A(:,r)

(3)依次提取矩阵A的每一列,将A拉伸为一个列向量:A(:)

(4)取矩阵A的第$i1\verb|~|i2$行、第j1~j2列构成新矩阵:A(i1:i2, j1:j2)

(5)以逆序提取矩阵A的第i1~i2行,构成新矩阵:A(i2:-1:i1,:)

(6)以逆序提取矩阵A的第j1~j2列,构成新矩阵:A(:, j2:-1:j1 )

(7)删除A的第i1~i2行,构成新矩阵:A(i1:i2,:)=[ ]

(8)删除A的第j1~j2列,构成新矩阵:A(:, j1:j2)=[ ]

(9)将矩阵A和B拼接成新矩阵:[A B]或[A;B]

A=[1 2 3]
B=[2 3 4]
A.*B=[2 6 12] %对应分量相乘
A*B'=[20]  %线性代数中普通的乘