三次样条差值-matlab通用程序

数值分析课程的大作业,教材《数值分析》李乃成.梅立泉

clear
x=input('请按照格式[x1,x2,x3...]格式输入y=f(x)函数已知点的横坐标xi=');   %三次样条差值函数                                                                 
y=input('请按照格式[y1,y2,y3...]格式输入y=f(x)函数已知点对应的纵坐标yi=');
n=size(x,2);      %特别注意,matlab中的矩阵编号是从1开始的,而教材上的矩阵编号是从0开始的
for k=2:n           %计算h(i)
    h(k)=x(k)-x(k-1);
end
for k=2:(n-1)                    %计算μ和λ
   mu(k)=h(k)/(h(k)+h(k+1));
   lumbda(k)=1-mu(k);
end
for k=2:(n-1)
    d(k)=6*((y(k+1)-y(k))/h(k+1)-(y(k)-y(k-1))/h(k))/(h(k)+h(k+1));            %计算di
end
fprintf('边界条件类型选择:\n1.已知f(a)和f(b)的二阶导数\n2.已知f(a)和f(b)的一阶导数\n3.y=f(x)是以T=b-a为周期的周期函数\n');
m=input('请输入对应序号:');
if m==1
    M(1)=input('请输入f(a)的二阶导数值:');
    M(n)=input('请输入f(b)的二阶导数值:');
    A=zeros(n-2,n-2);
    for k=1:(n-3)            

  • 10
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值