Matlab学习日记之数学应用

数学应用

  微分

    a=[9,-5,3,7];     将方程各系数存到向量之中

    x=-2:0.01:5;

    f=polyval(a,x);    将系数向量和x组合起来定义f(x)=9x³-5x²+3x+7

    plot(x,f,'LineWidth',2);  绘制函数曲线图

    xlabel('x');ylabel('f(x)');

    set(gca,'FontSize',14)

Matlab学习日记之数学应用

    polyder(a)      对f(x)=9x³-5x²+3x+7进行求导,显示求导后的系数

    polyval(polyder(a),7)  计算f’(7)的值

 

    %绘制f(x)=(20x³-7x²+5x+10)(4x²+12x-3) x范围在[-2,1]的图像

    a=[20,-7,5,10];b=[4,12,-3];

    f=conv(a,b);    两个方程系数相乘使用conv()

    x=-2:0.01:1;

    y=polyval(f,x);
    plot(x,y,'LineWidth',2)

 

    x=[1 2];y=[5 7];
    slope=diff(y)./diff(x)  diff(x):求x向量中后一项于该项的差值,到n-1项

    %使用diff()可以根据倒数的定义来求微分

 Matlab学习日记之数学应用

 

     %设f(x)=sin(x),求在x0=Π/2上的f'(x0),假设▲x为0.1

    x0=pi/2;h=0.1;

    x=[x0 x0+h];

    y=[sin(x0) sin(x0+h)];

    m=diff(y)./diff(x)

    

    %同理可以求出sin(x)的微分的方程

    h=0.5;x=0:h:2*pi;
    y=sin(x);
    m=diff(y)./diff(x)

    

 

  积分

    不定积分

    p=[5 0 -2 0 1];

    polyint(p,3)       对f(x)=5x²*x²-2x²+1进行积分其中常数C为3,得到方程系数

    polyval(polyint(p,3),7) 计算对f(x)积分后x=7的值

    

    定积分

    %求4x³在0到2的积分(利用算矩阵面积的方式求整体曲线面积)

Matlab学习日记之数学应用

 

 

    h=0.05;x=0:h:2;
    midpoint=(x(1:end-1)+x(2:end))./2;    midpoint表示为f0、f1、f2(midpoint为两个x的中间值,y为面积的高,h为面积的宽)
    y=4*midpoint.^3;
    s=sum(h*y)

    

    %求4x³在0到2的积分(利用算梯形面积的方式求整体曲线面积)Matlab学习日记之数学应用

 

    z=4*x.^3;

       f=h*trapz(z)    trapz(z)表示为f0、f1、f2,f=高*(上底+下底)/2

 

  方程式

    x=sym('x')    标记x为符号变量(x为sym类型)

    syms x      标记x为符号变量(可以标记多个)

 

    (x+x+x)/4     ans = (3*x)/4    

    y=x^2-2*x-8    定义了方程式y且y为sym类型

    

    %一个方程求一个未知量

    y=x*sin(x)-x

    solve(y,x)        计算方程式y的根,未知量为x

 

    %两个方程求两个未知量

    syms x y
    eq1=x-2*y-5;eq2=x+y-6;
    solve(eq1,eq2,x,y)  联立方程式eq1和eq2求解x,y,未知量为x和y(返回一个含有x和y的结构体)

 

    %一个含有未知常数的方程求一个未知量

    syms x a b
    solve('a*x^2-b')    ans =  b^(1/2)/a^(1/2)
                    -b^(1/2)/a^(1/2)  (默认未知量为x)

    solve(a*x^2-b,b)     ans = a*x^2  (设置未知量为b)

 

    %利用diff()求标记函数的微分

    syms x

    y = 4*x^5

    diff(y)          ans = 20*x^4

  

    %利用int()和subs()求标记函数的不定积分    

    syms x;y = x^2*exp(x);
    z = int(y)          z = exp(x)*(x^2 - 2*x + 2) (不定积分)

    z=z-subs(z,x,1)     z = exp(x)*(x^2 - 2*x + 2) - exp(1) (当给定条件z(1)=0时) 

    

    %给点一些数据坐标点,求出相应的线性回归方程

    x = [-1.2 -0.5 0.3 0.9 1.8 2.6 3.0 3.5];
    y = [-15.6 -8.5 2.2 4.5 6.6 8.2 8.9 10.0];    数据坐标
    fit = polyfit(x,y,1);                求出最高次幂为1的方程参数(如:y=a*x+b,求出参数a和b)
    xfit = x(1):0.1:x(end);
    yfit = fit(1)*xfit+fit(2);                fit(1)和fit(2)为polyfit()求出的参数a和b
    plot(x,y,'ro',xfit,yfit);
    set(gca,'FontSize',14);
    legend({'data points','best-fit'},'Location','northwest');

  Matlab学习日记之数学应用

 

学习资料源于:https://www.bilibili.com/video/BV1GJ41137UH

 

上一篇:(1)初识 React


下一篇:Git(十二)diff差异性比较