zoukankan      html  css  js  c++  java
  • 建模算法(九)——拟合

    一、线性最小二乘法

    1、基本思路

          令image,其r(x)是事先选定的一组线性无关的函数。ak是待定系数。然后拟合的准则就是使得yi与f(xi)的距离的平方和最小,称之为最小二乘准则

    2、系数的确定

          image,要使距离的平方和最小,那只要取得image,使得取到极值,就可以解除待定系数ak,记

    image

    然后线性方程组为image,所以当R列满秩,R’R是可逆的,所以方程组有唯一解image

    3、函数r(x)的选取

          一般是直观的去判断用什么样的曲线。然后下面有一般常用的曲线

    image

    image一般需要做变量代换,化为对a1和a2的线性函数。

          然后可以多选几个r(x),然后选择距离的平方和最小的一个。

    4、MATLAB实现

    (1)解方程法

    image

           一个demo

    image

    function ab=Zuixiaoerchengfa(x,y)
    %x,y为数据点,但是要为行向量
    
    x=x';y=y';
    r=[ones(5,1),x.^2];
    ab=ry;
    x0=19:0.1:44;
    y0=ab(1)+ab(2)*x0.^2;
    plot(x,y,'bo',x0,y0,'r');

    image

    (2)多项式拟合法

          image,然后来拟合给定的数据,然后MATLAB由封装好的函数

    a=ployfit(x0,y0,m)

          多项式在x处的值y可以用这个函数计算

    y=polyval(a,x)

          其中x0,y0是要拟合的数据,m为拟合多项式的次数,输出参数a为拟合多项式image的系数image

          一个demo

    image

    >> x0=[1990   1991   1992   1993   1994 1995  1996];
    >> y0=[70  122 144  152   174  196  202];
    >> plot(x0,y0,'*');

           先画出散点图,观察使用多少次的多项式拟合

    image

           然后明显看出可以使用直线拟合所以

    a=polyfit(x0,y0,1)
    
    a =
    
       1.0e+04 *
    
        0.0021   -4.0705
    
    >> y97=polyval(a,1997)
    
    y97 =
    
      233.4286
    
    >> y98=polyval(a,1998)
    
    y98 =
    
      253.9286
    
    >>

    二、最小二乘优化

    image

    四、最重要的~~~~~~~~~~!!!!!!!!!!!!!!!!

           曲线拟合的用户界面求法!!!!!!!!!!!!

          直接使用命令cftool

    五、曲线拟合与函数逼近

    image

    image

    一个demo

    image

    int用于符号∫

    int(s)符号表达式s的不定积分.

    int(s,v)符号表达式s关于变量v的不定积分.

    int(s,a,b)符号表达式s的定积分, a,b分别为积分的下限和上限.

    int(s,v,a,b)符号表达式s关于变量v从 a到b的定积分.

    当int求不出符号解,会自动转求数值解.

    syms x
    base=[1,x^2,x^4];
    
    y1=base.'*base
    y2=cos(x)*base.'
    r1=int(y1,-pi/2,pi/2)     %算积分
    r2=int(y2,-pi/2,pi/2)
    
    a=r1
    2
    xishu1=double(a)
    digits(8),xishu2=vpa(a)
  • 相关阅读:
    C++类成员变量多用指针不用对象
    C++列表初始化是初始化本类自身含有的成员变量,不能直接初始化继承过来的成员变量
    std::unorder_set你插入元素的顺序不一定就是元素在里面的元素
    yolo3使用darknet卷积神经网络训练pascal voc
    windows下执行tensorflow/models的代码显示No module named 'object_detection'
    extern const 不能一起用
    常见PID里面的像素大小
    ajax 异步请求webservice(XML格式)
    剖析下聊天室
    session更换存储,实现在多台服务器共享
  • 原文地址:https://www.cnblogs.com/BlueMountain-HaggenDazs/p/4273722.html
Copyright © 2011-2022 走看看