matlab练习之数据处理与多项式计算

Posted on 2020-03-11 01:49  薛向峰  阅读(463)  评论(0编辑  收藏  举报

 

 10 插值

MATLAB中的插值函数为interp1,其调用格式为: yi= interp1(x,y,xi,'method')
其中x,y为插值点,yi为在被插值点xi处的插值结果;x,y为向量,
'method'表示采用的插值方法,MATLAB提供的插值方法有几种:
'nearest'是最邻近插值, 'linear'线性插值; 'spline'三次样条插值; 'pchip'立方插值.缺省时表示线性插值
注意:所有的插值方法都要求x是单调的,并且xi不能够超过x的范围。
%}
x = 0:2*pi;
y = sin(x);
xx = 0:0.5:2*pi;

% interp1对sin函数进行分段线性插值,调用interp1的时候,默认的是分段线性插值
y1 = interp1(x,y,xx,'linear');
subplot(2,2,1);
plot(x,y,'o',xx,y1,'r')
title('分段线性插值')

h=6:2:18;
t1=[18 20 22 25 30 28 24];
t2=[ 15 19 24 28 34 32 30];
m=6.5:2:18.5;
y1 = interp1(h,t1,m,'spline')
y2 = interp1(h,t2,m,'spline')
----------------------------------
y1 =
  1 至 6 列
   18.5020   20.4986   22.5193   26.3775   30.2051   26.8178
  7 列
   23.7966
y2 =
  1 至 6 列
   15.6553   20.3355   24.9089   29.6383   34.2568   30.9594
  7 列
   31.1218

 11 多项式拟合  a = polyfit ( x, y, n)函数,a是n阶函数的系数,a是一个长度为n+1的行向量

y = polyval(p,x) 计算多项式 p 在 x 的每个点处的值。参数 p 是长度为 n+1 的向量,其元素是 n 次多项式的系数(降幂排序)

x=1:10:101;
y=log10(x);
y1= polyfit ( x, y, 5);
y2 = polyval(y1,x);
 plot(x,y,'*',x,y2)

  

 

Copyright © 2024 薛向峰
Powered by .NET 8.0 on Kubernetes