样条插值函数matlab程序,Matlab程序三次样条插值函数

已知一组数据点,编写一程序求解三次样条插值函数满足

5d1dd6aa5eb5bc7eab94276f0355b397.png

并针对下面一组具体实验数据

bdec5d36468bccedac349901466fb140.png

求解,其中边界条件为.

解:Matlab计算程序为:

clear

clc

x=[0.25 0.3 0.39 0.45 0.53]

y=[0.5000 0.5477 0.6245 0.6708 0.7280]

n=length(x);

for i=1:n-1

h(i)=x(i+1)-x(i);

end

for i=1:n-2

k(i)=h(i+1)/(h(i)+h(i+1));

u(i)=h(i)/(h(i)+h(i+1));

end

for i=1:n-2

gl(i)=3*(u(i)*(y(i+2)-y(i+1))/h(i+1)+k(i)*(y(i+1)-y(i))/h(i));

end

g0=3*(y(2)-y(1))/h(1);

g00=3*(y(n)-y(n-1))/h(n-1);

g=[g0 gl g00];

g=transpose(g)

k1=[k 1];

u1=[1 u];

Q=2*eye(5)+diag(u1,1)+diag(k1,-1)

m=transpose(Q\g)

syms X;

for i=1:n-1

p1(i)=(1+2*(X-x(i))/h(i))*((X-x(i+1))/h(i))^2*y(i);

p2(i)=(1-2*(X-x(i+1))/h(i))*((X-x(i))/h(i))^2*y(i+1);

p3(i)=(X-x(i))*((X-x(i+1))/h(i))^2*m(i);

p4(i)=(X-x(i+1))*((X-x(i))/h(i))^2*m(i+1);

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值