插值计算(1)---MATLAB实现拉格朗日插值
2017-03-28 by:CAE仿真在线 来源:互联网
插值,用最简单的话说,就是:求过已知有限个离散数据点对的近视函数(每一个点都需要经过)。常见的插值方法有拉格朗日插值、牛顿插值、三次样条函数插值。本文主要介绍拉个朗日插值,在后面的文章中将介绍其他几种插值方法。
给定平面上的两个互不相同的插值点,有且仅有一条通过这两个点的直线;给定平面上的三个互不相同的三个插值点,有且仅有一条通过这三个点的二次曲线;那么,由范德蒙行列式的性质以及线性方程组解的唯一性(系数行列式不为零)可推理出,给定平面上(n+1)个插值点,当x互不相同时,插值多项式存在且唯一。
被估计函数f(x)与插值函数g(x)之间存在一定的误差,因此在进行插值计算的时候一定需要计算误差值。
具体插值的理论计算方法参考教科书上介绍的方法,一切计算都是基于理论之上的。下面主要介绍使用MATLAB实现拉格朗日插值计算的算法过程:
clear
clc
x1=[2 4 6 8];
y=[4 6 10 14];
x2=3;
syms x %将字符或者数字转换为字符,转换之后可直接使用。这里是使x的维数相同后才能进行乘计算。
n=4;
s=0; %用于计算多项式的表达式
for i=1:n
t1=1;
for j=1:n
if j==i %排除J=i的情况。
t1=t1;
else
t1=t1*(x-x1(j));
end
end
t2=1;
for j=1:n
if j==i
t2=t2;
else
t2=t2*(x1(i)-x1(j));
end
end
s=s+t1/t2*y(i);
end
fprintf('拉格朗日插值函数为\n')
expand(s) %多项式的展开运算
x=x2;
p=eval_r(s); %将括号内的字符串视为表达式并运行
fprintf('插值函数在所求点x2的函数值为\n')
p
结果为:
拉格朗日插值函数为
ans =
- x^3/24 + (3*x^2)/4 - (7*x)/3 + 6
插值函数在所求点x2的函数值为
p =
4.6250
(详见第三版张韵华数值分析)
开放分享:优质有限元技术文章,助你自学成才
相关标签搜索:插值计算(1)---MATLAB实现拉格朗日插值 MatLab培训 MatLab培训课程 MatLab在线视频教程 MatLab技术学习教程 MatLab软件教程 MatLab资料下载 MatLab代做 MatLab基础知识 Fluent、CFX流体分析 HFSS电磁分析 Ansys培训 Abaqus培训
编辑