【Matlab】线性插值

例:

有一组函数,x=0:10:100,y=f(x),想线性插值的方式求函数值,例如:

x=2.5,根据x=0、f(0)、x=10、f(10)插值求x=2.5时的值

x=-10,根据x=0、f(0)、x=10、f(10)插值求x=-10时的值

x=55,根据x=50、f(50)、x=60、f(60)插值求x=55时的值

x=101,根据x=90、f(90)、x=100、f(100)插值求x=101时的值

注:此情况下,内插精度较高

代码:

主代码:

matlab 复制代码
%线性插值只有内插时精度是最好的
clc
clear
close all
%%
x=0:1:100;
y=sin(x);
x0=9.05;
y0=ChaZhi(x,y,x0)
%%
figure(1)
plot(x,y,'b-')
hold on
plot(x0,y0,'r*')

插值函数:

matlab 复制代码
function y0=ChaZhi(x,y,x0)%x是行矩阵
%%
xx=sort([x,x0]);
label=find(xx==x0);%找到x0的标签
label=label(1);
%% 找最近的两个数,超范围了就取最小/大的两个值
if label==1
    x1=xx(2);y1=y(1);
    x2=xx(3);y2=y(2);
elseif label==length(xx)
    x1=xx(length(xx)-1);y1=y(length(y));
    x2=xx(length(xx)-2);y2=y(length(y)-1);
else
    x1=xx(label-1);y1=y(label-1);
    x2=xx(label+1);y2=y(label);
end
%% 线性插值
y0=y2-(y2-y1)/(x2-x1)*(x2-x0);
相关推荐
星马梦缘33 分钟前
Matlab机器人工具箱使用1 简单的描述类函数
matlab·矩阵·机器人·位姿·欧拉角·rpy角
机器学习之心14 小时前
PINN驱动的高阶偏微分方程求解MATLAB代码
matlab·物理信息神经网络·高阶偏微分方程
民乐团扒谱机14 小时前
逻辑回归算法干货详解:从原理到 MATLAB 可视化实现
数学建模·matlab·分类·数据挖掘·回归·逻辑回归·代码分享
echoarts1 天前
MATLAB R2025a安装配置及使用教程(超详细保姆级教程)
开发语言·其他·matlab
bu_shuo1 天前
安装MATLAB205软件记录
matlab·matlab安装
MATLAB代码顾问1 天前
MATLAB可以实现的各种智能算法
开发语言·matlab
软件算法开发2 天前
基于LSTM深度学习的网络流量测量算法matlab仿真
深度学习·matlab·lstm·网络流量测量
wheeldown3 天前
【数学建模】数据预处理入门:从理论到动手操作
python·数学建模·matlab·python3.11
小白的高手之路3 天前
Matlab中的积分——函数int()和quadl()
matlab
机器学习之心3 天前
PINN物理信息神经网络用于求解二阶常微分方程(ODE)的边值问题,Matlab实现
人工智能·神经网络·matlab·物理信息神经网络·二阶常微分方程