【数学建模】插值算法+Matlab代码实现

学习内容:

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


学习时间:

2020.12.08

学习产出:

Matlab代码:
在这里插入图片描述

%插值算法的课后练习-----------------------------------------------------------------
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);%将变量导出为表格

运行结果:
在这里插入图片描述
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WSKH0929

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值