关于matlab中多项式拟合的问题对于150个数据进行多项式拟合,并对x属于{1,2,3,4}分别采用最邻近、双线性和三次样条插值方法进行插值.代码:A=[1 3 6 3 1];s=poly2str(A,'x');x=unifrnd(0,5,150,4)%产生150个[0
来源:学生作业帮助网 编辑:六六作业网 时间:2024/08/17 09:50:09
关于matlab中多项式拟合的问题对于150个数据进行多项式拟合,并对x属于{1,2,3,4}分别采用最邻近、双线性和三次样条插值方法进行插值.代码:A=[1 3 6 3 1];s=poly2str(A,'x');x=unifrnd(0,5,150,4)%产生150个[0
关于matlab中多项式拟合的问题
对于150个数据进行多项式拟合,并对x属于{1,2,3,4}分别采用最邻近、双线性和三次样条插值方法进行插值.
代码:
A=[1 3 6 3 1];
s=poly2str(A,'x');
x=unifrnd(0,5,150,4)%产生150个[0 5]上的均匀分布随机数
y=polyval(A,x)
x=0:0.03:5;
%5阶多项式拟合
p=polyfit(x,y,5)
y=polyval(p,x)
%显示
plot(x,y,'ro')
x=0:0.03:5;
xi=1:4;
yi_nearest=interp1(x,y,xi,'nearest');
yi_linear=interp1(x,y,xi);
yi_spline=interp1(x,y,xi,'spline');
figure;
hold on;
subplot(1,3,1);
plot(x,y,'ro',xi,yi_nearest,'b-');
title('最邻近插值');
subplot(1,3,2);
plot(x,y,'ro',xi,yi_linear,'b-');
title('线性插值');
subplot(1,3,3);
plot(x,y,'ro',xi,yi_spline,'b-');
title('三次样条插值');
错误:
Error using ==> polyfit at 48
X and Y vectors must be the same size.
关于matlab中多项式拟合的问题对于150个数据进行多项式拟合,并对x属于{1,2,3,4}分别采用最邻近、双线性和三次样条插值方法进行插值.代码:A=[1 3 6 3 1];s=poly2str(A,'x');x=unifrnd(0,5,150,4)%产生150个[0
程序改成如下:
A=[1 3 6 3 1];
s=poly2str(A,'x');
x=unifrnd(0,5,150,1)%产生150个[0 5]上的均匀分布随机数
y=polyval(A,x)
%5阶多项式拟合
p=polyfit(x,y,5)
y=polyval(p,x)
%显示
plot(x,y,'ro')
xi=1:4;
yi_nearest=interp1(x,y,xi,'nearest');
yi_linear=interp1(x,y,xi);
yi_spline=interp1(x,y,xi,'spline');
figure;
hold on;
subplot(1,3,1);
plot(x,y,'ro',xi,yi_nearest,'b-');
title('最邻近插值');
subplot(1,3,2);
plot(x,y,'ro',xi,yi_linear,'b-');
title('线性插值');
subplot(1,3,3);
plot(x,y,'ro',xi,yi_spline,'b-');
title('三次样条插值');