zoukankan      html  css  js  c++  java
  • 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)

        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()可以根据倒数的定义来求微分

     

         %设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的积分(利用算矩阵面积的方式求整体曲线面积)

        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的积分(利用算梯形面积的方式求整体曲线面积)

        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');

      

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

  • 相关阅读:
    [bzoj]2131: 免费的馅饼
    [bzoj]1098: [POI2007]办公楼biu
    [luogu]P2051 [AHOI2009]中国象棋
    [luogu]P2825 [HEOI2016/TJOI2016]游戏
    MSSQL To MongoDB Tool (FREE)
    虚拟机和Linux安装详解
    Maven
    springmvc的文件上传和下载,框架集成
    json详解以及fastjson使用
    JSP——语法,指令,表达式语言(EL),JSTL标签
  • 原文地址:https://www.cnblogs.com/bird7/p/14629437.html
Copyright © 2011-2022 走看看