abcdehjhy 2021-07-11 15:34 采纳率: 0%
浏览 66

求一个最小二乘法多次拟合的matlab代码。

有六百组数据,需要进行最小二乘法拟合,1-7、2-8、3-9这样的七组进行一次拟合,请教!!

  • 写回答

1条回答 默认 最新

  • 是好人的墨叔 2021-07-11 21:11
    关注
    clear all;
    close all;
    clc;
    
    N=10;                %设置拟合阶数
    x=1:0.5:10;
    y=cos(x);           %生成待拟合点
    
    p=polyfit(x,y,N);   %使用matlab函数拟合数据
    
    xx=min(x):0.01:max(x);
    yy=polyval(p,xx);
                
    plot(xx,yy);        %画出拟合结果
    hold on;
    plot(x,y,'r.')
    
    %下面是使用公式来做最小二乘多项式拟合
    F=zeros(N+1,length(x));
    F(1,:)=1;
    for i=2:N+1
       for j=1:length(x) 
            F(i,j) = x(j)^(i-1);      
       end
    end
    F=F*F';
    
    [m ~]=size(F);
    Y=zeros(m,1);
    Y(1) = sum(y);
    for i=2:m
        for j=1:length(y)
            Y(i) = Y(i)+y(j)*x(j)^(i-1);
        end  
    end
    
    Re = F\Y;
    Re=Re(end:-1:1)';  %数组反序
    figure;
    plot(x,y,'r.')
    hold on;
    yyy=polyval(Re,xx);
    plot(xx,yyy,'g')
    
    p
    Re
    
    评论

报告相同问题?

问题事件

  • 创建了问题 7月11日

悬赏问题

  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊
  • ¥15 安装svn网络有问题怎么办
  • ¥15 vue2登录调用后端接口如何实现