• MATLAB最小二乘法


     MATLAB最小二乘法

    作者:凯鲁嘎吉 - 博客园
    http://www.cnblogs.com/kailugaji/

    三、实验程序

    四、实验内容

    设有如下数据:

    3次多项式拟合这组数据.

    五、解答(按如下顺序提交电子版)

    1.(程序)

    LSM1.m:

    function p=LSM1(x,y,m)  %x,y为序列长度相等的数据向量,m为拟合多项式次数
    format short;
    A=zeros(m+1,m+1);
    for i=0:m
        for j=0:m
            A(i+1,j+1)=sum(x.^(i+j));
        end
        b(i+1)=sum(x.^i.*y);
    end
    a=A';
    p=fliplr(a');

    2.(运算结果)

    >> x=[-3,-2,-1,0,1,2,3];
    >> y=[-1.76,0.42,1.2,1.34,1.43,2.25,4.38];
    >> p=LSM1(x,y,3)
    
    p =
    
        0.1133   -0.0018    0.0035    1.3300

    3.(拓展(方法改进、体会等))

    MATLAB中有关于最小二乘法的现成的函数,如下编写程序:

    ploy1.m:

    function [p]=ploy1(x,y)  
    P=polyfit(x,y,3);  
    xi=-4:.2:4;  
    p=polyfit(x,y,3);
    yi=polyval(P,xi);  
    plot(xi,yi,x,y,'r*'); 

    结果:

    >> x=[-3,-2,-1,0,1,2,3];
    y=[-1.76,0.42,1.2,1.34,1.43,2.25,4.38]; [p]=ploy1(x,y)
    
    p =
    
        0.1133   -0.0018    0.0035    1.3300

    则y=0.1133*x^3-0.0018*x^2+0.0035*x+1.33

     注:非线性曲线拟合见:MATLAB实例:非线性曲线拟合

    作者:凯鲁嘎吉
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文链接,否则保留追究法律责任的权利。
  • 相关阅读:
    读文章论文
    安装并使用SourceMonitor检测代码复杂度
    FindBug安装与使用
    PMD安装与使用
    Checkstyle安装与使用
    文章主题
    GitHub账号
    PICT的安装与使用
    Junit的安装与使用
    SourceMonitor的安装及使用
  • 原文地址:https://www.cnblogs.com/kailugaji/p/6932482.html
Copyright © 2020-2023  润新知