插值計算(1)---MATLAB實現(xiàn)拉格朗日插值

2017-03-28  by:CAE仿真在線  來源:互聯(lián)網(wǎng)

插值,用最簡單的話說,就是:求過已知有限個離散數(shù)據(jù)點對的近視函數(shù)(每一個點都需要經(jīng)過)。
常見的插值方法有拉格朗日插值、牛頓插值、三次樣條函數(shù)插值。本文主要介紹拉個朗日插值,在后面的文章中將介紹其他幾種插值方法。
給定平面上的兩個互不相同的插值點,有且僅有一條通過這兩個點的直線;給定平面上的三個互不相同的三個插值點,有且僅有一條通過這三個點的二次曲線;那么,由范德蒙行列式的性質(zhì)以及線性方程組解的唯一性(系數(shù)行列式不為零)可推理出,給定平面上(n+1)個插值點,當x互不相同時,插值多項式存在且唯一。
被估計函數(shù)f(x)與插值函數(shù)g(x)之間存在一定的誤差,因此在進行插值計算的時候一定需要計算誤差值。

具體插值的理論計算方法參考教科書上介紹的方法,一切計算都是基于理論之上的。下面主要介紹使用MATLAB實現(xiàn)拉格朗日插值計算的算法過程:
clear
clc
x1=[2 4 6 8];
y=[4 6 10 14];
x2=3;
syms x %將字符或者數(shù)字轉(zhuǎn)換為字符,轉(zhuǎn)換之后可直接使用。這里是使x的維數(shù)相同后才能進行乘計算。
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('拉格朗日插值函數(shù)為\n')

expand(s) %多項式的展開運算
x=x2;
p=eval_r(s); %將括號內(nèi)的字符串視為表達式并運行
fprintf('插值函數(shù)在所求點x2的函數(shù)值為\n')
p
結(jié)果為:
拉格朗日插值函數(shù)為

ans =
- x^3/24 + (3*x^2)/4 - (7*x)/3 + 6
插值函數(shù)在所求點x2的函數(shù)值為
p =
4.6250

(詳見第三版張韻華數(shù)值分析)




開放分享:優(yōu)質(zhì)有限元技術(shù)文章,助你自學(xué)成才

相關(guān)標簽搜索:插值計算(1)---MATLAB實現(xiàn)拉格朗日插值 MatLab培訓(xùn) MatLab培訓(xùn)課程 MatLab在線視頻教程 MatLab技術(shù)學(xué)習(xí)教程 MatLab軟件教程 MatLab資料下載 MatLab代做 MatLab基礎(chǔ)知識 Fluent、CFX流體分析 HFSS電磁分析 Ansys培訓(xùn) Abaqus培訓(xùn) 

編輯
在線報名:
  • 客服在線請直接聯(lián)系我們的客服,您也可以通過下面的方式進行在線報名,我們會及時給您回復(fù)電話,謝謝!
驗證碼

全國服務(wù)熱線

1358-032-9919

廣州公司:
廣州市環(huán)市中路306號金鷹大廈3800
電話:13580329919
          135-8032-9919
培訓(xùn)QQ咨詢:點擊咨詢 點擊咨詢
項目QQ咨詢:點擊咨詢
email:kf@1cae.com