MATLAB 拉格朗日插值法示例 - 可视化演示
MATLAB 拉格朗日插值法示例 - 可视化演示
本示例使用MATLAB代码演示拉格朗日插值法,并通过绘制图形直观展示插值效果。
代码及解析
clear;
clc;
clf;
x0=[-1:0.02:1];
y0=1./(1+25*x0.^2);
plot(x0,y0,'b') %绘制原曲线
hold on
x1=linspace(-1,1,11);
y1=1./(1+25*x1.^2);
y0=lagrange(x1,y1,x0);
plot(x0,y0,'--r') %插值曲线
x1=linspace(-1,1,21);
y1=1./(1+25*x1.^2);
y0=lagrange(x1,y1,x0);
plot(x0,y0,'--g') %插值曲线
逐句代码解析:
clear; clc; clf;:清空命令窗口、清空当前图形、关闭所有图形窗口。x0=[-1:0.02:1];:定义x0为一个从-1到1,步长为0.02的行向量。y0=1./(1+25*x0.^2);:定义y0为一个与x0相同大小的行向量,每个元素为1/(1+25*x0^2)。plot(x0,y0,'b'):绘制x0和y0的图形,颜色为蓝色。hold on:保持当前图形,并在其上绘制后续的图形。x1=linspace(-1,1,11);:定义x1为一个从-1到1,长度为11的行向量,即包括-1和1。y1=1./(1+25*x1.^2);:定义y1为一个与x1相同大小的行向量,每个元素为1/(1+25*x1^2)。y0=lagrange(x1,y1,x0);:调用自定义函数lagrange,计算x0处的拉格朗日插值多项式在y1上的值,并将结果存储在y0中。plot(x0,y0,'--r'):绘制x0和y0的图形,颜色为红色,线型为虚线。x1=linspace(-1,1,21);:定义x1为一个从-1到1,长度为21的行向量,即包括-1和1。y1=1./(1+25*x1.^2);:定义y1为一个与x1相同大小的行向量,每个元素为1/(1+25*x1^2)。y0=lagrange(x1,y1,x0);:调用自定义函数lagrange,计算x0处的拉格朗日插值多项式在y1上的值,并将结果存储在y0中。plot(x0,y0,'--g'):绘制x0和y0的图形,颜色为绿色,线型为虚线。
代码解释
代码首先定义了一个原始函数,并绘制其图形。接着,分别使用11个和21个插值节点进行拉格朗日插值,并绘制出对应的插值曲线。通过比较插值曲线与原始曲线的差异,可以观察到插值节点数量对插值结果的影响:
- 插值节点数量越多,插值曲线越接近原始曲线,插值精度越高。
- 插值节点数量过少,插值曲线可能会偏离原始曲线,插值精度较低。
结论
本示例展示了MATLAB中使用拉格朗日插值法对函数进行插值的简单方法。通过代码解析和图形演示,可以直观地理解插值节点数量对插值结果的影响。
**注意:**示例中的 lagrange 函数是一个自定义函数,需要根据具体情况进行编写。
原文地址: https://www.cveoy.top/t/topic/n1RX 著作权归作者所有。请勿转载和采集!