插值計(jì)算(1)---MATLAB實(shí)現(xiàn)拉格朗日插值
2017-03-28 by:CAE仿真在線 來(lái)源:互聯(lián)網(wǎng)
插值,用最簡(jiǎn)單的話說(shuō),就是:求過(guò)已知有限個(gè)離散數(shù)據(jù)點(diǎn)對(duì)的近視函數(shù)(每一個(gè)點(diǎn)都需要經(jīng)過(guò))。常見(jiàn)的插值方法有拉格朗日插值、牛頓插值、三次樣條函數(shù)插值。本文主要介紹拉個(gè)朗日插值,在后面的文章中將介紹其他幾種插值方法。
給定平面上的兩個(gè)互不相同的插值點(diǎn),有且僅有一條通過(guò)這兩個(gè)點(diǎn)的直線;給定平面上的三個(gè)互不相同的三個(gè)插值點(diǎn),有且僅有一條通過(guò)這三個(gè)點(diǎn)的二次曲線;那么,由范德蒙行列式的性質(zhì)以及線性方程組解的唯一性(系數(shù)行列式不為零)可推理出,給定平面上(n+1)個(gè)插值點(diǎn),當(dāng)x互不相同時(shí),插值多項(xiàng)式存在且唯一。
被估計(jì)函數(shù)f(x)與插值函數(shù)g(x)之間存在一定的誤差,因此在進(jìn)行插值計(jì)算的時(shí)候一定需要計(jì)算誤差值。
具體插值的理論計(jì)算方法參考教科書(shū)上介紹的方法,一切計(jì)算都是基于理論之上的。下面主要介紹使用MATLAB實(shí)現(xiàn)拉格朗日插值計(jì)算的算法過(guò)程:
clear
clc
x1=[2 4 6 8];
y=[4 6 10 14];
x2=3;
syms x %將字符或者數(shù)字轉(zhuǎn)換為字符,轉(zhuǎn)換之后可直接使用。這里是使x的維數(shù)相同后才能進(jìn)行乘計(jì)算。
n=4;
s=0; %用于計(jì)算多項(xiàng)式的表達(dá)式
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) %多項(xiàng)式的展開(kāi)運(yùn)算
x=x2;
p=eval_r(s); %將括號(hào)內(nèi)的字符串視為表達(dá)式并運(yùn)行
fprintf('插值函數(shù)在所求點(diǎn)x2的函數(shù)值為\n')
p
結(jié)果為:
拉格朗日插值函數(shù)為
ans =
- x^3/24 + (3*x^2)/4 - (7*x)/3 + 6
插值函數(shù)在所求點(diǎn)x2的函數(shù)值為
p =
4.6250
(詳見(jiàn)第三版張韻華數(shù)值分析)
開(kāi)放分享:優(yōu)質(zhì)有限元技術(shù)文章,助你自學(xué)成才
相關(guān)標(biāo)簽搜索:插值計(jì)算(1)---MATLAB實(shí)現(xiàn)拉格朗日插值 MatLab培訓(xùn) MatLab培訓(xùn)課程 MatLab在線視頻教程 MatLab技術(shù)學(xué)習(xí)教程 MatLab軟件教程 MatLab資料下載 MatLab代做 MatLab基礎(chǔ)知識(shí) Fluent、CFX流體分析 HFSS電磁分析 Ansys培訓(xùn) Abaqus培訓(xùn)
編輯