MATLAB--插值法--清风

本文介绍了在MATLAB中使用三次样本插值法和埃尔米特插值法进行数值预测,重点在于处理数据的互异性。代码示例展示了如何应用这两种方法,并对不同数据集进行可视化。作者在理解spline函数的过程中遇到了误解,但最终解决了问题。
摘要由CSDN通过智能技术生成

% 该方法是用于预测数值,比较可靠的有三次样本插值法和埃尔米特插值法,具体可以B站搜数学建模清风。

%用两种插值法预测偶数周数值
load('matlab.mat')
A = input("请输入需要插值数据:")
choice = input("请选择预测方法,1为三次样本插值,2为埃尔米特插值法:")
[x,y] = size(A)
xx = [1,3,5,7,9,11,13,15]
tit= {'','轮虫','溶氧','COD','水温','PH值','盐度','透明度','总碱度','氯离子','透明度','生物量'}
%三次样本插值法
if choice == 1
   % a = CYF1(A)%互异性的行元素为0,互异性不成立则元素值为该行的行数
    for i = 2:x%行数循环
       % if a(i) == 0%该行数据满足互异性
            yy(i,:) = A(i,:)
            P1(i,:) = {spline(xx,yy,1:1:15)}
       % end
        %if a(i) ~= 0%该行数据不满足互异性
         %   b = CYF2(A,a)%返回值为每行相同元素的列
        %end
    end
     B = P1{12,1}
     for j = 2:x
         subplot(3,4,j)
         plot(1:15,B(j,:),'r-')
         title(tit{1,j})
     end
end
%埃尔米特插值法
if choice == 2
    for i = 2:x%行数循环
            yy(i,:) = A(i,:)
            P1(i,:) = {pchip(xx,yy,1:1:15)}
       % end
        %if a(i) ~= 0%该行数据不满足互异性
         %   b = CYF2(A,a)%返回值为每行相同元素的列
        %end
    end
     B = P1{12,1}
     for j = 2:x
         subplot(3,4,j)
         plot(1:15,B(j,:),'r-')
         title(tit{1,j})
     end
end

%用这个方法的时候想复杂了,没有完全理解spline函数的意义,以为spline函数无法处理不满足互异性的样本,结果是可以的。还傻愣愣的去想怎么找到不满足互异性的样本数据,然后单独拿出来分段处理,卡了几天,最后才发现原来我是一个shabi

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值