插值算法+Matlab代码实现

学习内容:

1、 插值算法基本内容
2、 Matlab实现插值算法


学习时间:

2020.12.08

学习产出:

Matlab代码:
插值算法+Matlab代码实现_第1张图片

%插值算法的课后练习-----------------------------------------------------------------
clear;clc;
load data.mat;  %第一行当做x,其余当做y
format short;
%获取y的行数
y_r = size(data,1)-1;
%获取列数
c = size(data,2);
%利用三次样条插值求得2,4,6.....的值
x = data(1,:);
new_x = data(1,1)+1:2:data(1,c)-1;
newData = zeros(size(data,1),2*c-1);%初始化一个全0的矩阵
newData(1,:) = data(1,1):1:data(1,c);%第一行设置为1~15
%y标签向量
y_label = ["轮虫(10^6/L)","溶氧(mg/L)","COD(mg/L)","水温(°C)","PH值","盐度","透明度(cm)","总碱度","氯离子","透明度","生物量"];
for k=1:y_r
    y = data(k+1,:);
    p = pchip(x,y,new_x);%进行三次样条插值计算
    temp = zeros(1,2*c-1);%暂时存储一行数据
    for j=1:c   %把原来的数据隔开存储到temp里
        temp(2*j-1) = y(j);
        if j~=c
            temp(2*j) = p(j);
        end
    end
    newData(k+1,:) = temp;%把进行三次样条插值之后的数据赋值给newData中的指定行
    plot(x,y,"ro",newData(1,:),temp,"b-");
    xlabel("周数");
    ylabel(y_label(1,k));
    subplot(4,3,k);
end
%legend('样本点','三次埃尔米特插值','Location','SouthEast');
disp(newData);%输出newData
xlswrite("E:\data.xlsx",newData);%将变量导出为表格

运行结果:
插值算法+Matlab代码实现_第2张图片
插值算法+Matlab代码实现_第3张图片

你可能感兴趣的:(数学建模,算法,matlab,数据挖掘,大数据)