gpt4 book ai didi

matlab - 如何使用 Matlab 的 polyfit 获得正确的曲线拟合?

转载 作者:行者123 更新时间:2023-12-02 06:33:02 26 4
gpt4 key购买 nike

我正在尝试在 Matlab 中拟合一条简单的多项式曲线。我有测量数据(可以下载 here ),其绘制如下:

Plot of measurements

现在我想将二阶多项式拟合到这条曲线上。所以在 Matlab 中我做了以下工作:

load vel.csv
load dp.csv
[p, ~, ~] = polyfit(vel, dp, 2);

figure()
scatter(vel, dp);
hold on;
plot(vel,polyval(p,vel));
hold off;

但是结果看起来 Matlab 根本没有拟合多项式:

Badly fitted curve

如何使用 Matlab 的 polyfit 函数获得合适的曲线拟合?

最佳答案

虽然您不使用它们,但当您指定附加输出时,polyfit 会在进行多项式拟合之前对 x 数据进行居中和缩放,这会导致不同的多项式系数:

>> [p, ~, ~] = polyfit(vel, dp, 2)
p =

1.4683 35.7426 68.6857

>> p = polyfit(vel, dp, 2)
p =

0.022630 3.578740 -7.354133

这是 polyfit documentation 的相关摘录:

enter image description here

如果您选择该选项,则在应用多项式系数之前调用 polyval 来居中和缩放数据时需要使用第三个输出。我的建议是坚持第二次调用 polyfit,它给出正确的多项式并生成正确的图,除非您确实需要居中和缩放数据:

enter image description here

关于matlab - 如何使用 Matlab 的 polyfit 获得正确的曲线拟合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53499950/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com