趙榮紅
摘 要:根據(jù)拉格郎日(Lagrange)插值算法原理,運(yùn)用Flash的ActionScript腳本語(yǔ)言,以現(xiàn)有實(shí)驗(yàn)數(shù)據(jù)(或文獻(xiàn)數(shù)據(jù))為依據(jù),通過(guò)內(nèi)插方式,增補(bǔ)中間數(shù)據(jù),實(shí)現(xiàn)了常見(jiàn)物質(zhì)的溶解度曲線繪制,使曲線更具平滑,消除了由于數(shù)據(jù)結(jié)點(diǎn)少而產(chǎn)生拆線的不足。
關(guān)鍵詞:Lagrange插值算法;溶解度曲線;ActionScript腳本語(yǔ)言
一、概述
初學(xué)化學(xué)教學(xué)中溶解度及溶解度曲線的知識(shí),是讓學(xué)生理解和掌握溶液的概念和基本特征,認(rèn)識(shí)溶解現(xiàn)象,了解物質(zhì)的溶解過(guò)程以及溶液在生產(chǎn)、生活中的應(yīng)用,了解飽和溶液和溶解度的概念、含義,了解溶解度曲線的意義。在教學(xué)課件的設(shè)計(jì)中,如何能更好地繪制出溶解度曲線使學(xué)生能更有效、直觀地去理解和掌握教學(xué)內(nèi)容有著十分重要的意義。本文是通過(guò)運(yùn)用一種常用的插值方法——拉格郎日(Lagrange)插值法,實(shí)現(xiàn)常見(jiàn)物質(zhì)的溶解度曲線繪制。
二、基本原理
所謂“插值”,通俗地講就是在所給函數(shù)表中再“插入”一些需要的函數(shù)值。數(shù)據(jù)表中的函數(shù)值為已知的節(jié)點(diǎn)xi,稱(chēng)為插值節(jié)點(diǎn),插值節(jié)點(diǎn)上所給的函數(shù)值yi=f(xi)稱(chēng)為樣本值,函數(shù)值待求點(diǎn)x,則稱(chēng)為插值點(diǎn)。插值節(jié)點(diǎn)所界定的Δ=[minxi,maxxi]稱(chēng)為插值區(qū)間。插值方法的設(shè)計(jì)原理是針對(duì)某個(gè)插值點(diǎn)x,用插值節(jié)點(diǎn)xi上的樣本值組合生成f(x)的近似值y即:
f(x)≈■λi f(xi) (1)
就是說(shuō),適當(dāng)選取權(quán)系數(shù)λi,而取yi的組合值,即:
y=■λi yi (2)
作為插值結(jié)果。
用于插值計(jì)算的式(2)即稱(chēng)為式(1)的插值公式。插值方法的目的在于尋求函數(shù)的近似值,自然要求所求出的插值結(jié)果能夠有足夠的精度。為保證所設(shè)計(jì)的插值公式f(x)具有“盡可能高”的精度,則可以用n階多項(xiàng)式表示。Lagrange插值方法的基本思想是:將待求的n次多項(xiàng)式的插值函數(shù)f(x)改寫(xiě)成用已知函數(shù)值的系數(shù)的n+1個(gè)待定n次多項(xiàng)式的線性組合形式,再用插值條件和函數(shù)分解技術(shù)確定n+1個(gè)待定n次多項(xiàng)式,求出插值多項(xiàng)式。有如下形式的Lagrange插值基函數(shù)。
φi(x)=■■,i=0,1,2,...,n (3)
顯然基函數(shù)
φi(xi)=1
φi(xj)=0,j=0,1,...,i-1,i+1,...,n
因而將它們加以組合即得所求的插值公式
y=■yiφi(x)=■yi ■■ (4)
這種形式的插值公式稱(chēng)為L(zhǎng)agrange插值公式。
三、插值實(shí)現(xiàn)
1.常見(jiàn)物質(zhì)的溶解度
通過(guò)查閱資料可獲取各種物質(zhì)的溶解度,表1列出了幾種常見(jiàn)物質(zhì)的溶解度值。
注:?葚表示為用Lagrange方法計(jì)算的值。
2.實(shí)現(xiàn)方法
根據(jù)(4)式,我們用Flash動(dòng)畫(huà)設(shè)計(jì)軟件的ActionScript 3定義了一個(gè)類(lèi)Lagrange,通過(guò)該類(lèi)的一個(gè)方法LagrangeInsert( )完成給定插入點(diǎn)x的函數(shù)值計(jì)算。(如下代碼所示)
public class Lagrange
{
public function LagrangeInsert(xx:Number,leng:int,arr1:Array,arr2:Array):Number
{
var yy:Number = 0;
var i:int;
var j:int;
var l:Number;
for (i=0; i { l = 1; for (j=0; j { if (i != j) { l *= (xx-arr1[j])/(arr1[i]-arr1[j]); } } yy += arr2[i] * l; } return yy; } } 說(shuō)明:在上述方法中,xx表示插入點(diǎn)橫坐標(biāo)(即任意溫度值),leng表示物質(zhì)溶解度測(cè)定值(或參考文獻(xiàn)值的結(jié)點(diǎn)數(shù)),一般來(lái)講可能是11個(gè)結(jié)點(diǎn)值(從0到100,每10度一個(gè)測(cè)定值),arr1和arr2分別表示溫度和對(duì)應(yīng)溶解度測(cè)定值(或參考文獻(xiàn)值)。任意給定一個(gè)溫度值(xx),就可計(jì)算并返回一個(gè)溶解度值(yy表示)(即插入值)。根據(jù)需要,通過(guò)循環(huán)方法可以計(jì)算出多個(gè)插入值,然后將這些值通過(guò)繪制線段的方法繪制出來(lái),即可形成一條平滑的曲線,避免了出現(xiàn)折線形式。如我們計(jì)算NH4HCO3的20個(gè)溶解度值: 表2 Lagrange插值法計(jì)算所得溶解度值 ■ NH4HCO3的溶解度曲線為如下圖所示: ■ 四、結(jié)論 運(yùn)用該方法,實(shí)現(xiàn)了常見(jiàn)物質(zhì)的溶解度曲線繪制,使曲線更具平滑,對(duì)完成這類(lèi)曲線繪制具有一定的幫助作用,對(duì)制作更為精確、漂亮的教學(xué)課件有很好的借鑒意義。 參考文獻(xiàn): 王能超.計(jì)算方法簡(jiǎn)明教程.北京:高等教育出版社,2004-01. (作者單位 陜西省咸陽(yáng)渭城二初中)