matlab 拟合曲线想画出一些点拟合出的平滑曲线(点在线附近).如:点坐标为 x=[1 2 3 4 5 6];y=[21 45 75 94 98 98];
来源:学生作业帮助网 编辑:作业帮 时间:2024/08/29 08:36:42
matlab 拟合曲线想画出一些点拟合出的平滑曲线(点在线附近).如:点坐标为 x=[1 2 3 4 5 6];y=[21 45 75 94 98 98];
matlab 拟合曲线
想画出一些点拟合出的平滑曲线(点在线附近).
如:点坐标为 x=[1 2 3 4 5 6];y=[21 45 75 94 98 98];
matlab 拟合曲线想画出一些点拟合出的平滑曲线(点在线附近).如:点坐标为 x=[1 2 3 4 5 6];y=[21 45 75 94 98 98];
这样好些,比多项式精度高许多.
function hh
x=[1 2 3 4 5 6];
y=[21 45 75 94 98 98];
b0=[1 1 1 1 1 1];
a = nlinfit(x,y,@mymodel,b0)
xx=min(x):0.1:max(x);
yy= (xx.^3+a(1)*xx.^2+a(2)*xx+a(3))./(a(4)*xx.^2+a(5)*xx+a(6));
plot(x,y,'o',xx,yy)
function yhat = mymodel(a,x)
yhat = (x.^3+a(1)*x.^2+a(2)*x+a(3))./(a(4)*x.^2+a(5)*x+a(6));
结果:
a =
-4.9651 18.941 9.4897 0.11755 -0.72855 1.776
x=[1 2 3 4 5 6];y=[21 45 75 94 98 98];
polyfit(x,y,2)
第三个参数是拟合曲线的最高次数
这个的结果是:
ans =
-4.0000 44.0857 -21.8000
所以拟合的曲线是y=-4x^2+44.0857x-21.8
想要更精确,你可以提高次数,例如修改为5
...
全部展开
x=[1 2 3 4 5 6];y=[21 45 75 94 98 98];
polyfit(x,y,2)
第三个参数是拟合曲线的最高次数
这个的结果是:
ans =
-4.0000 44.0857 -21.8000
所以拟合的曲线是y=-4x^2+44.0857x-21.8
想要更精确,你可以提高次数,例如修改为5
ans =
0.0167 0.2917 -6.8333 35.2083 -38.6833 31.0000
收起
polyfit 是matlab 最基本的拟合 的命令。 你可以输入 help polyfit,或者 lookfor polyfit来查看其用法,和更高级的命令。