Matlab 多项式拟合

Matlab 多项式拟合文章目录一次多项式二次多项式一次多项式 x 0 33 1 12 1 41 1 71 2 19 y 0 68 0 91 1 15 1 83 2 07 拟合 p1 polyfit x y 1 用 x 和 y 拟合多项式 1 表示一次多项式 输出 0

1. 按

polyfit函数用于多项式的曲线拟合。

1.1. 语法

p = polyfit(x,y,n) [p,S] = polyfit(x,y,n) [p,S,mu] = polyfit(x,y,n) 

说明

  • p = polyfit(x,y,n) 返回阶数为 n 的多项式 p(x) 的系数,该阶数是 y 中数据的最佳拟合(在最小二乘方式中)。p 中的系数按降幂排列,p 的长度为 n+1
    p ( x ) = p 1 x n + p 2 x n − 1 + … + p n x + p n + 1 p(x)=p_{1} x^{n}+p_{2} x^{n-1}+\ldots+p_{n} x+p_{n+1} p(x)=p1xn+p2xn1++pnx+pn+1

  • [p,S] = polyfit(x,y,n) 还返回一个结构体 S,后者可用作 polyval 的输入来获取误差估计值。
  • [p,S,mu] = polyfit(x,y,n) 还返回 mu,后者是一个二元素向量,包含中心化值和缩放值。mu(1) 是 mean(x),mu(2) 是 std(x)。使用这些值时,polyfit 将 x 的中心置于零值处并缩放为具有单位标准差
    x ^ = x − x ‾ σ x \hat{x}=\frac{x-\overline{x}}{\sigma_{x}} x^=σxxx
    这种中心化和缩放变换可同时改善多项式和拟合算法的数值属性。




2. 一次多项式

clc,clear,close all; %清除命令,清空工作区,关闭所有窗口 x=[0.33, 1.12, 1.41, 1.71, 2.19]; y=[0.68, 0.91, 1.15, 1.83, 2.07]; %拟合 p1=polyfit(x, y, 1);% 用x 和 y 拟合多项式, 1 表示一次多项式 disp(p1);% 输出 0.8025 0.2431 表示多项式是 f(x) = 0.8025 * x + 0.2431 %绘制图形 y1=polyval(p1, x); plot(x, y, '*', x, y1, '-'); 

在这里插入图片描述

3. 二次多项式

x=[0.47, 0.96, 1.76, 2.53, 3.30, 3.74]; y=[1.07, 1.75, 2.27, 2.31, 1.49, 0.74]; % 拟合多项式 p2 = polyfit(x,y, 2); %2代表二次多项式拟合 disp(p2); %输出 -0.5495 2.2250 0.1260 多项式为 f(x) = -0.5495 * x * x + 2.225 * x + 0.126 %绘制图形 x2=0:0.1:4; %x2=x; y2 = polyval(p2, x2); plot(x, y, '*', x2, y2 , '-'); 

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/217845.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 上午8:38
下一篇 2026年3月18日 上午8:38


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号