MATLAB拟合二次曲线问题

以下是2段matlab代码,第一个是用polyfit函数进行二次多项式拟合的,第二段是用左除的命令求解的,二次多项式的系数从高次到低次为 1 1 1.但是这两种方法的误差平方和却不同,求什么原因,以及如何解决?感激不尽!
polyfit函数进行二次多项式拟合:
x=[0 0.5 0.6 0.7 0.8 0.9 1.0];%原始数据
y=[1 1.75 1.96 2.19 2.44 2.71 3.00];%原始数据
A=polyfit(x,y,2);
z=polyval(A,x);
plot(x,y,'r*',x,z,'b')
A
d=(z-y).^2;
sum(d)
legend('插值点','二次拟合');

用左除的命令求解:
x=[0 0.5 0.6 0.7 0.8 0.9 1.0];
y=[1 1.75 1.96 2.19 2.44 2.71 3.00];
R=[(x.^2)' x' ones(7,1)];
A=R\y'

x1=[0 0.5 0.6 0.7 0.8 0.9 1.0];
y1=[1 1.75 1.96 2.19 2.44 2.71 3.00];
x=[0 0.5 0.6 0.7 0.8 0.9 1.0];
y=x.^2+x+1;
plot(x1,y1,'k+',x,y,'r')
z=(y-y1).^2;
sum(z)
legend('插值点','二次拟合');

%属于误差范围,第二种方法求y应该用求出的A,不能简化为系数1。
%第一种方法:
A1=sym(A,'d')'
A1 =
1.0000000000000008881784197001252
0.99999999999999844568776552478084
1.0000000000000006661338147750939
%第二种方法:
A2=sym(A,'d')
A2 =
0.99999999999999877875467291232781
1.0000000000000004440892098500626
1.0000000000000004440892098500626
%第二种方法应改为
y=A(1)*x.^2+A(2)*x+A(3);
plot(x1,y1,'k+',x,y,'r')
z=(y-y1).^2;
sum(z)
ans =
8.38164711797325e-31
温馨提示:内容为网友见解,仅供参考
无其他回答

如何用matlab计算二次曲线的拟合度?
第一步:需进行清除储存器储存的数据,按“SHIFT”键+“MODF”键,显示屏会出现如图的画面,从左至右分别表示清除数据、清除模式、清除所有,我们这里只需清除数据。按“1”键后,显示屏出现“Stat clear”字样,表示已清除。第二步:完成数据清除后,选“MODE”(模式),出现下图,从左至右分别表示...

运用MATLAB拟合二次曲线后,怎么做误差分析?
1.误差平方和(SSE)2. R-Square(复相关系数或复测定系数)3. Adjusted R-Square(调整自由度复相关系数)4.Root mearn squared error(RMSE),(均方根误差)

matlab二阶拟合为什么是直线
数据不足,拟合函数不合适。1、数据不足:二阶拟合需要三个数据点来确定二次函数的系数。2、拟合函数不合适:二阶拟合用于拟合二次函数或抛物线形状的曲线。

MATLAB最小二乘法拟合曲线
首先,我们导入数据,然后调用polyfit(x, y, 2)来计算多项式系数,这里2表示我们选择的多项式阶数。执行这段代码后,我们得到的p值就是多项式的系数。接着,利用hold on功能,我们将原始数据点以'o'标记显示出来,以直观对比。然后,利用plot函数和polyval(p, x)计算出拟合曲线,并以红色线型'r'绘制...

matlab根据数据拟合二次曲线拟合二次函数的代码
32.38,37.99,40.81,43.62,46.45,49.28,52.13,54.88,57.83,60.84,63.57,66.40];a = polyfit(x, y, 2);%进行2次拟合,a是多项式前面的值。a1 = polyval(a, x);%得到拟合后的新值 plot(x,a1,'r');grid on 我试过了,能用,不知道是不是你要的。这是二次拟合曲线 ...

怎样用 mathematica 拟合二元函数?
例2 由下面给出的一组数据进行二次函数拟合,并绘制拟合曲线。xi 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 yi 5.1234 5.3057 5.5687 5.9378 6.4337 7.0978 7.9493 9.0253 10.3627 解:In[1]:= data={{0.1,5.1234},{0.2,5.3057},{0.3,5.5687},{0.4,5...

如何运用MATLAB拟合二次曲线
方法1:x=0:0.1:1;y=[-0.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2];A=polyfit(x,y,2)z=polyval(A,x);plot(x,y,'k+',x,z,'r') %作出数据点和拟合曲线的图形 以上只是线性的最小二乘拟合。方法2:直接用matlab的CFtool工具 ...

MATLAB怎么求二次曲线拟合系数
clear;clc x=rand(1,12)%自己改 y=rand(1,12)%自己改 z=3+5*x+7*y+11*x.^2+13*y.^2+17*x.*y+rand(1,12)%自己改 以下为最小二乘法拟合二次曲面系数 A=z\/[ones(size(z));x;y;x.^2;y.^2;x.*y];s=sprintf('F(x,y)=%.5g%+.5gx%+.5gy%+.5gx^2%+.5gy^...

matlab二次曲线拟合
并不是精度不够,后两项的系数也并不是0,只是结果显示有效数字位数的问题。>> num2str(f)ans = 5246096810.4814 -45015.413449487 0.13696632426218 >> plot(c,i.^2,'r.',c,polyval(f,c))

求指导。。。如何用matlab拟合一次函数或者二次函数的公式和曲线...
A=polyfit(x,y,3)z=polyval(A,x)plot(x,y,'k+',x,z,'r') %作出数据点和拟合曲线的图形,线性的最小二乘拟合。y=a(x-h)²+k(a≠0,a、h、k为常数),顶点坐标为(h,k) [4] ,对称轴为直线x=h,顶点的位置特征和图像的开口方向与函数y=ax²的图像相同,当x=h时...

相似回答