matlab 拟合的二次函数通过系数重新构建后与原图不符

这是用cftool拟合出来的函数

img


这是拟合结果

img


在代码中重新构建后

img


结果是这样的QAQ

img


但是如果直接把曲线复制到图上却是正确的

img


问题出哪里了QAQ

绘图部分是用的

scatter(x,散点纵坐标);hold on;plot(x,y)

吗?

该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
根据您提供的信息,问题可能出在重新构建二次函数时没有正确使用拟合结果的系数。请确保在重新构建函数时使用了正确的系数值。

以下是一个示例代码,演示了如何使用Matlab中的polyfit函数进行二次拟合,并使用拟合结果的系数重新构建函数:

% 原始数据点
x = [1, 2, 3, 4, 5];
y = [2.2, 4.8, 7.6, 11.2, 15.8];

% 二次拟合
p = polyfit(x, y, 2);

% 使用拟合结果的系数重新构建函数
f = @(x) polyval(p, x);

% 绘制原始数据和拟合曲线
plot(x, y, 'o', x, f(x), '-');
legend('原始数据', '拟合曲线');

在这个示例中,我们首先定义了一组原始数据点 xy。然后,使用 polyfit 函数进行二次拟合,并将结果存储在变量 p 中。接下来,我们使用匿名函数 @(x) polyval(p, x) 来重新构建二次函数 f。最后,我们绘制了原始数据点和拟合曲线进行对比。

请注意,您需要根据您的具体情况进行调整。确保在重新构建函数时使用了正确的系数值,并与原始图像进行比较,以验证结果的准确性。


如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

常数项系数是10的六次方数量级,显示结果的时候只有三个有效数字,因此差别还是挺大的,从你的图上看,大概把常数项系数增加500左右,就能和曲线比较贴合,也就是把p3 = 6.931e6改成p3 = 6.9315e6。你要更准确结果的话,你可以把数据发出来,我帮你得到准确的拟合系数值。
有用希望采纳一下哦!