MATLAB 数据拟合问题如何用matlab求出这些点的二次多项式拟合方程的系数呢呢?请帮我写出M文件的内容吧,数据:x

MATLAB 数据拟合问题
如何用matlab求出这些点的二次多项式拟合方程的系数呢呢?请帮我写出M文件的内容吧,
数据:
x=[5.50,6.75,7.25,5.50,7.00,6.50,6.75,5.25,5.25,6.00,6.50,6.25,7.00,6.90,6.80,6.80,7.10,7.00,6.80,6.50,6.25,6.00,6.50,7.00,6.80,6.80,6.50,5.75,5.80,6.80];
y=[7.38,8.51,9.52,7.50,9.33,8.28,8.75,7.30,7.20,8.00,7.89,8.15,9.10,8.86,8.90,8.87,9.26,9.00,8.75,7.95,7.65,7.27,8.00,8.50,8.75,9.21,8.27,7.67,7.93,9.26];
以下是使用Curve Fitting Tools的拟合结果.
Linear model Poly2:
f(x) = p1*x^2 + p2*x + p3
Coefficients (with 95% confidence bounds):
p1 = 0.5005 (0.1571,0.844)
p2 = -5.134 (-9.418,-0.8505)
p3 = 20.5 (7.238,33.75)
但是怎样写出一个能求出这个二次多项式系数的M文件呢?这里面有的点取值X是相同的,Y是不同的,不知polyfit函数还能用不?
jiangboyuan020 1年前 已收到1个回答 举报

红袖儿 幼苗

共回答了25个问题采纳率:84% 举报

可以用的,而且冗余值越多对于最小二乘拟合越精确(前提是没有坏值)
比方说我一个x=1 有5个y 2,3,4,5,6
则把x写为x = [1 1 1 1 1]
y = [2 3 4 5 6]
就可以了.
程序楼上两位已经给了,借用下.
p = polyfit(x,y,2);
如果不想用polyfit,可以自己写一个,原理和polyfit其实是一样的
x=[5.50,6.75,7.25,5.50,7.00,6.50,6.75,5.25,5.25,6.00,6.50,6.25,7.00,6.90,6.80,6.80,7.10,7.00,6.80,6.50,6.25,6.00,6.50,7.00,6.80,6.80,6.50,5.75,5.80,6.80];
y=[7.38,8.51,9.52,7.50,9.33,8.28,8.75,7.30,7.20,8.00,7.89,8.15,9.10,8.86,8.90,8.87,9.26,9.00,8.75,7.95,7.65,7.27,8.00,8.50,8.75,9.21,8.27,7.67,7.93,9.26];
m = (x.*x)'
A = [m ,x' ,1]
para = inv(A'*A)*A'*y'
para里面为[a b c]
a为2次项系数,b为一次,c为常数.

1年前

3
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 0.695 s. - webmaster@yulucn.com