1. 首页 > 科技

Matlab: 如何循环使用不同的插值方法? matlabwhile循环举例

Matlab: 如何循环使用不同的插值方法?matlabwhile循环举例

matlab 怎么进行三次样条插值

spline函数可以实现三次样条插值:

x = 0:10; 

y = sin(x);

xx = 0:.25:10;

yy = spline(x,y,xx);

plot(x,y,'o',xx,yy)

(另外fnplt csapi这两个函数也是三次样条插值函数)

如何用matlab实现一维插值:

1、先看一个实例,最后再来说明一维插值在matlab中的用法。实例如下图,用13个节点作三种插值,并比较结果。

2、首先启动matlab,选择编辑器,再新建一个命令文件。

3、然后,在编辑器窗口中输入本题的代码。如下图所示。并保存,此处命名为yiwei。

4、最后再命令行窗口处输入yiwei,并敲入键盘上的enter建。最终得到的结果是插值与原来的13个数据点之间的比较图,可以看出结果很好。

(通过上面的例子,也知道了matlab进行一维插值的命令是interp1.该命令的形式为y1=interp1(x0,y0,x1,'method').功能:根据已知的数据(x0,y0),用method方法进行插值,然后计算x1对应的函数值y1.)

(其中的参数及其注意事项。x0,y0是已知的数据向量,其中x应以升序或者降序排列,x1是插值点的自变量坐标向量;method是用来选择插值算法的,它可以取:‘linear’(线性插值)、‘cubic’(三次多项式插值)、‘nearst’(最近插值)、‘spline’(三次样条插值)。)

参考资料

matlab中文论坛.matlab中文论坛[引用时间2018-1-9]

matlab while循环的使用技巧。就是输出循环的运算次数,自己试了多次,结果都是最初的i值

怎么可能发生你说的情况呢?

贴出代码来帮你查错。

简单示例:

>> i=1;while i<=5,disp(i);i=i+1;end

1

2

3

4

5

用matlab实现拉格朗日插值法的程序

附件中是拉格朗日插值法程序。

以下面数据为例:(运行时,也就是调用Language.m程序)

x = [-2.15     -1.00   0.01   1.02     2.03      3.25]; 

y = [17.03   7.24     1.05    2.03    17.06    23.05 ]; 

x0 = 0.6;

y0=Language(x,y,x0)

(上面语句,在command window中输入即可)

结果:

 y0=

    0.0201

matlab拉格朗日插值法程序

function f=lang(x,y,x0)

syms p;

n=length(x);

f=0;

for k=1:n

l=y(k);

for j=1:k-1

l=l*(p-x(j))/(x(k)-x(j));

end

for j=k+1:n

l=l*(p-x(j))/(x(k)-x(j));

end

f=f+l;

simplify(f);

end

if(nargin==2)

f=subs(f,'p','x');

f=collect(f);

f=vpa(f,4);

else

m=length(x0);

for i=1:m

temp(i)=subs(f,'p',x0(i));

end

f=temp;

end