最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

拉格朗日(lagrange)插值(MATLAB实现)

互联网 admin 1浏览 0评论

拉格朗日(lagrange)插值(MATLAB实现)

Author:HanDi
上海某高校遥感专业 工科男
相信积微者速成,相信分享的力量
CSDN@这可真是难为我了

在学习气溶胶光学厚度(AOD)反演算法时,遇到了插值方法选择上的难题。对于AOD反演一般多使用线性插值的方法,但是出来的AOD存在高值区高演的现象。

因此,我尝试选用Lagrange插值方法。从学习原理到参考别的博主代码,到自己动手写出小模块。真的很开心。

当然,Lagrange插值不止这一种用途,至于如何耦合到自己的程序。各位可以试着理解并动手实践。

新手写技术博客没有什么经验,如有不足,还请大家多多包涵,欢迎大家私信交流 ^ _ ^ !!!一起进步~
以后会分享一些地理数据处理和数据挖掘的示例

下面是完整代码,我的MATLAB版本是 matlab2021a

这里是参考内容,供大家系统学习

.html

下面是源码和示例数据,自取
链接:=w43u
提取码:w43u

%主程序
clc
clear
xcoordinate=fopen('testx.txt','r');
X = fscanf(xcoordinate,'%f');
fclose(xcoordinate);
ycoordinate=fopen('testy.txt','r');
Y = fscanf(ycoordinate,'%f');
fclose(ycoordinate);
xinsert=fopen('xinsertpoint.txt','r');
x = fscanf(xinsert,'%f');
fclose(xinsert);
y = lagrange(X,Y,x);
y1 = sin(x);
hold on
plot(X, Y,'or' , x, y, '.k', x, y1, '-b');
legend('样本点','sin(x)','拉格朗日插值估算');
%Lagrange插值函数
function y=lagrange(x0,y0,x)
n=length(x0);m=length(x);
for i=1:mz=x(i);s=0.0;for k=1:np=1.0;for j=1:nif j~=kp=p*(z-x0(j))/(x0(k)-x0(j));endends=p*y0(k)+s;endy(i)=s;
end

插值效果如下图

如有错误,欢迎评论,私信,会及时改正

拉格朗日(lagrange)插值(MATLAB实现)

Author:HanDi
上海某高校遥感专业 工科男
相信积微者速成,相信分享的力量
CSDN@这可真是难为我了

在学习气溶胶光学厚度(AOD)反演算法时,遇到了插值方法选择上的难题。对于AOD反演一般多使用线性插值的方法,但是出来的AOD存在高值区高演的现象。

因此,我尝试选用Lagrange插值方法。从学习原理到参考别的博主代码,到自己动手写出小模块。真的很开心。

当然,Lagrange插值不止这一种用途,至于如何耦合到自己的程序。各位可以试着理解并动手实践。

新手写技术博客没有什么经验,如有不足,还请大家多多包涵,欢迎大家私信交流 ^ _ ^ !!!一起进步~
以后会分享一些地理数据处理和数据挖掘的示例

下面是完整代码,我的MATLAB版本是 matlab2021a

这里是参考内容,供大家系统学习

.html

下面是源码和示例数据,自取
链接:=w43u
提取码:w43u

%主程序
clc
clear
xcoordinate=fopen('testx.txt','r');
X = fscanf(xcoordinate,'%f');
fclose(xcoordinate);
ycoordinate=fopen('testy.txt','r');
Y = fscanf(ycoordinate,'%f');
fclose(ycoordinate);
xinsert=fopen('xinsertpoint.txt','r');
x = fscanf(xinsert,'%f');
fclose(xinsert);
y = lagrange(X,Y,x);
y1 = sin(x);
hold on
plot(X, Y,'or' , x, y, '.k', x, y1, '-b');
legend('样本点','sin(x)','拉格朗日插值估算');
%Lagrange插值函数
function y=lagrange(x0,y0,x)
n=length(x0);m=length(x);
for i=1:mz=x(i);s=0.0;for k=1:np=1.0;for j=1:nif j~=kp=p*(z-x0(j))/(x0(k)-x0(j));endends=p*y0(k)+s;endy(i)=s;
end

插值效果如下图

如有错误,欢迎评论,私信,会及时改正

发布评论

评论列表 (0)

  1. 暂无评论