插值計算(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培訓
編輯