zoukankan      html  css  js  c++  java
  • 中国石油大学(华东)数学实验(MATLAB)复习

    作者:张世琛

    函数的导数

    $$ 求函数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{egin{matrix} x=x(t)& y=y(t)& end{matrix} ight. 确定的函数y=f(x),则frac{dy}{dx}=frac{y'(t)}{x'(t)} $$ $$ 设left{egin{matrix} x=a(t-sin(t))& y=a(1-cos(t))& end{matrix} ight. 求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,xin [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}^{eta}sqrt{varphi'^2(t)+psi'^2(t)}dt S=int_{alpha}^{eta}sqrt{r^2( heta)+r'^2{ heta}}d heta left{egin{matrix} x=a(t-sint) y=a(1-cost) end{matrix} ight. (0<=t<=2pi)的长度 $$

    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} ight ) quadleft (frac{sqrt{6}}{3},+infty ight )单调递增 在left (-frac{sqrt{6}}{3},frac{sqrt{6}}{3} ight )单调递减 $$

    凹凸区间

    $$ 求函数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}} ight ) quadleft (frac{1}{sqrt{6}},+infty ight )二阶导数大于零,下凸 在left (-frac{1}{sqrt{6}},frac{1}{sqrt{6}} ight )二阶导数小于零,上凸 两个拐点分别是left (-frac{1}{sqrt{6}},frac{3}{4} ight )和 left (frac{1}{sqrt{6}},frac{3}{4} ight ) $$

    极值

    $$ 求函数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
    
    利用优化函数
    f=@(x) x/(1+x^2);
    [xmin,ymin]=fminbnd(f,-2,0);%在(-2,0)求极小值
    ff=@(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 xpartial 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)}dxdyquad D为x^2+y^2leqslant 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{egin{matrix} sqrt{2-x^2-y^2}=sqrt{x^2+y^2} z=0 end{matrix} ight. 得 left{egin{matrix} x^2+y^2=1 z=0 end{matrix} ight. $$

    柱面坐标

    $$ left{egin{matrix} x=rsin heta y=rcos heta z=z end{matrix} ight. $$ $$ iiint f(x,y,z)dxdydz=f(rsin heta,rcos heta,z)rdrd heta 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{egin{matrix} x=rsin varphi cos heta x=rsin varphi sin heta z=rcosvarphi end{matrix} ight. $$ $$ iiint f(x,y,z)dxdydz=f(rsin varphi cos heta,rsin varphi sin heta,rcosvarphi)r^2sinvarphi drd heta dvarphi $$

    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)
    

    求弧长

    $$ int_L f(x,y)ds=int_{a}^{b} f(x(t),y(t))sqrt{x'^2(t)+y'^2(t))}dt int_L 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_Lsqrt{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{egin{matrix} x=cos^2(t) y=sin(t)cos(t); z=cos(t); end{matrix} ight. tin[-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)
    
    利用优化函数
    fun=@(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))
    fun1=@(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为底的对数
    pow2 2的幂
    函数说明
    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的第$i1verb|~|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]  %线性代数中普通的乘
    
  • 相关阅读:
    Document
    Document
    Document
    Document
    Document
    Document
    8. vue 的生命周期
    7. vue-cli 安装和使用脚手架
    5.组件(2) 之 父级传子级
    6.组件(3) 之 子级传父级
  • 原文地址:https://www.cnblogs.com/pteromyini/p/12374831.html
Copyright © 2011-2022 走看看