多项式拟合

1 实验内容

编制以函数 { x k } k = 0 n \{x^k\}_{k=0}^n {xk}k=0n为基的多项式最小二乘拟合程序,并用于对下表中的数据作3次多项式最小二乘拟合。

x i xi xi-1.0-0.50.00.51.01.52.0
y i yi yi-4.447-0.4520.5510.048-0.4470.5494.552

取权函数 ω i \omega_i ωi,求拟合曲线 ϕ ∗ = ∑ k = 0 n a k ∗ x k \phi^*=\sum_{k=0}^na_k^*x^k ϕ=k=0nakxk中的参数 { a k } \{a_k\} {ak}、平方误差 δ 2 \delta^2 δ2,并作离散数据数据 { x i , y i } \{x_i,y_i\} {xi,yi}的拟合函数 y = ϕ ∗ ( x ) y=\phi^*(x) y=ϕ(x)的图形。

2 算法代码

  • 多项式最小二乘拟合函数

    %% polynomial fit
    %@func:Fit the scatters by least-square polynomial function;
    %@inpt:@(x,y) Coordinate set (x,y);
    %      @w the weight in x;
    %      @the degree of polynomial;
    %@oupt:@the coefficient of polynomial function;
    %      @the MSE between the scatters and function with weight w;
    %@note:
    %@date:2021/05/12 by xiyin,li in hust;
    function [a,r] = polyFit(x,y,w,n)
        m = length(x);
        A = [];
        for ii=1:n+1
            A = [A x.^(ii-1)]
        end
        a = (A'*A)\(A'*y);
        r = y'*(y-A*a);
    end
    
  • 多项式拟合脚本

    % 习题3-1 李习银 2021.05.12
    %% 多项式插值脚本
    clc,clear
    close all
    %% 数据导入
    x = [-1 -.5 .0 .5 1.0 1.5 2.0]';
    y = [-4.447 -0.452 0.551 0.048 -0.447 0.549 4.552]';
    %% 图像绘制
    hold on
    plot1 = plot(x,y,'b*')
    w = 1+(x-x);
    [a,r] = polyFit(x,y,w,3);
    figure.x = linspace(1.1*min(x),1.1*max(x),100);
    figure.y = a(1)+a(2)*figure.x+a(3)*figure.x.^2+a(4)*figure.x.^3;
    plot2 = plot(figure.x,figure.y)
    legend('discrete point','curve fitting')
    title(['\delta^2=',num2str(r)])
    xlabel('x');ylabel('y')
    

3 数值结果

在这里插入图片描述

图4.多项式拟合

4 结果分析

  • 对于给定的点集,使用三次多项式拟合其平方误差可以达到 2.1762 × 1 0 − 5 2.1762\times10^{-5} 2.1762×105。说明其拟合效果是比较理想的。
  • 如果在选择拟合函数的类型前,先绘制这些散点图,可以发现,其函数图像更接近与奇数次的多项式函数,也可以从这方面来考虑使用的拟合函数的类型。
  • 在计算时,选用的基对于给定的权来说是非正交的,因此最后求解线性方程组,并且其系数矩阵并非对角矩阵,因此其求解过程会比较复杂。好在Matlab强大的矩阵运算工具可以实现矩阵求逆。
  • 0
    点赞
  • 0
    评论
  • 2
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值