三次样条差值-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)的二阶导数值:'

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览