matlab帮编程-插值的

来源:百度知道 编辑:UC知道 时间:2024/06/21 12:33:30
由于题目中函数不好打 我截图了
就是图片里的问题

求程序
希望大家帮帮忙

%by dynamic
%see also http://www.matlabsky.com
%contact me matlabsky@gmail.com
%2009.2.
%

function matlabsky
x=-1+0.2*(0:10);
y=1./(1+25*x.^2);
xi=-1+0.05*(0:40);
%1
%Matlab中没有提供Lagrange插值的支持函数,我这里提供一个
yi1=lagrange(x,y,xi);
%2
%Matlab提供了Hermite插值的函数pchip()
yi2=pchip(x,y,xi);
%3
subplot(311)
plot(x,y,'o-')
subplot(312)
plot(x,y,'o',xi,yi1)
subplot(313)
plot(x,y,'o',xi,yi2)

%Lagrange的函数
function y=lagrange(x0,y0,x)
%x0,y0为已知的点的数据
%x为需要插值的点
%y返回的插值结果
%dynamic
%all rights preserved by www.matlabsky.cn
%2008.10.2
n=length(x0);
m=length(x);
for ii=1:m
z=x(ii);
s=0;
for jj=1:n
p=1;
for kk