溫度插值演算法
A. 內插值法求發熱溫度時,計算步驟是怎樣的
內插值近似法求溫度(比熱隨溫度增大而增大)假定一個發熱溫度t0,查比熱,得V0cprod值,計算若t0>t,則假定溫度大了,減小假定值,重復若t0<t,則假定溫度小了,增加假定值,重復最後得tn<t1,tm>t2,n、m是附表中相鄰的兩個溫度值t熱=t1,t熱=t2,t熱=(t1+t2)/2都可以或插值B. 插值法計算公式是什麼
公式就是:Y=Y1+(Y2-Y1)×(X-X1)/(X2-X1)。
通俗地講,線性內插法就是利用相似三角形的原理,來計算內插點的數據。
內插法又稱插值法。根據未知函數f(x)在某區間內若干點的函數值,作出在該若干點的函數值與f(x)值相等的特定函數來近似原函數f(x),進而可用此特定函數算出該區間內其他各點的原函數f(x)的近似值,這種方法,稱為內插法。
按特定函數的性質分,有線性內插、非線性內插等;按引數(自變數)個數分,有單內插、雙內插和三內插等。
介紹:
線性插值是指插值函數為一次多項式的插值方式,其在插值節點上的插值誤差為零。線性插值相比其他插值方式,如拋物線插值,具有簡單、方便的特點。
線性插值的幾何意義即為概述圖中利用過A點和B點的直線來近似表示原函數。線性插值可以用來近似代替原函數,也可以用來計算得到查表過程中表中沒有的數值。
C. 插值的計算方法是什麼
計算方法:假設與A1對應的數據是B1,與A2對應的數據是B2,現在已知與A對應的數據是B,A介於A1和A2之間,則可以按照(A1-A)/(A1-A2)=(B1-B)/(B1-B2)計算得出A的數值,其中A1、A2、B1、B2、B都是已知數據。
根據(A1-A)/(A1-A2)=(B1-B)/(B1-B2)可知:(A1-A)=(B1-B)/(B1-B2)×(A1-A2)
A=A1-(B1-B)/(B1-B2)×(A1-A2)=A1+(B1-B)/(B1-B2)×(A2-A1)
插值法又稱「內插法」,是利用函數f (x)在某區間中已知的若干點的函數值,作出適當的特定函數,在區間的其他點上用這特定函數的值作為函數f (x)的近似值,這種方法稱為插值法。如果這特定函數是多項式,就稱它為插值多項式。
如果只需要求出某一個x所對應的函數值,可以用「圖解內插」。它利用實驗數據提供要畫的簡單曲線的形狀,然後調整它,使得盡量靠近這些點。
如果還要求出因變數p(x)的表達式,這就要用「表格內插」。通常把近似函數p(x)取為多項式(p(x)稱為插值多項式),最簡單的是取p(x)為一次式,即線性插值法。在表格內插時,使用差分法或待定系數法(此時可以利用拉格朗日公式)。在數學、天文學中,插值法都有廣泛的應用。
D. 插值法公式
以下是我的個人觀點:
首先你得分清楚插值和擬合這兩個的區別,
擬合是指你做一條曲線或直線,使得你的數據點跟這條線的「誤差」最小。注意,這個要求並不要求所有的數據點在我們的擬合曲線上。
插值是指你做一條曲線或直線完全經過這些點,就是說數據點一定都要在插值曲線上。
插值也有好多種:比如拉格朗日插值,分段插值,樣條插值(樣條插值要求你還要知道這些數據點的一階導數)
我們知道兩點確定一條直線(一次多項式),三點確定一條拋物線(二次多項式),試想一下有10個點是不是可以確定一個9次多項式(9次多項式裡面還有一個常數項,就是10個未知數,我們有10個數據點,剛好可以求解)
(**)拉格朗日插值就是上面的這種插值。但是它就是把這些多項式系數重新表示了一下(就是不用去求上面所說的10個系數)。你求出這些系數後,只要將你想要的x的值往裡一代,馬上就得到你想要的函數值。但這種插值在頭尾附近會出現一些不好的振盪現象(龍格現象)
(**)分段插值,還是按照上面的原則,比如說,我兩個點兩個點地確定一條直線(比如1,2點連起來,2,3點連起來),最後所有直線的集合(這時應當是一系列的折線)這個分段函數也是經過所有的數據點。當然你也可以三個點三個點地確定一條拋物線。用這一方面時,你要先確定你想要的x值在哪一個區間里,然後用這一區間的表達式來計算出函數值就可以了。本方法不會出現龍格現象
(***)樣條插值,上面提到分段插值是一系列折線,折線使得不光滑,樣條就是用其導數值,使得它們變光滑。
下面說計算方法吧!至於表達式,你如果理解了上面,你去找本「計算方法」或「數值計算」的書,上面都有表達式。應當不難。
另外你還可以藉助於MATLAB這樣的軟體來計算。
比如你的原始數據是X,Y,你想要求y(x=5)的值
X=[2,6,10,14,18,22,26,30,34,38,41,42,45,49,53,57,61,65,69,73,77,81]; %自變數的值
Y=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]; %自變數相應的函數值
X0=5; %你想要的點的值
N=22; %這個是點的個數
Doc=2; %分段插值中你想用幾個點插值
你可以用下面的語句得到y(x=5);
Y1=lagrange(X,Y,X0) %拉格朗日插值
Y2=interp1(X,Y,X0,'linear') %分段兩點線性插值
Y2=interp1(X,Y,X0,'spline') %分段兩點線性插值
可能說的不好,你如果想系統地學點,可能得看一下相關的書。
E. MATLAB插值計算問題
如果你只是對溫度進行插值。時間還是那些數據,就想你表中所列的那樣,可以使用interp1
其調用格式是yi = interp1(x,Y,xi,method)
演示一下當時間為0.02時,溫度17和31的值。
x=10:10:40;
Y=[3 12 24 29];
xi=[17 31];
method='spline';%採用樣條插值
yi = interp1(x,Y,xi,method)
答案是yi = 8.5300 24.9800
method也可以被定義為其他插值方法,比如'linear' 'cubic' 'pchip'
是不是覺得這樣效率很低,只能求出一行的兩個數據。
將數據區定義為一個矩陣,使用for循環就可以全部求出了。
當然這樣還是有點不人性化。我通常都是在Excel中寫好格式。然後用MATLAB寫個函數之間完成在Excel中的讀寫操作的。
這里有必要提一下,interp1,是MATLAB自帶的插值函數,你也可以自己編寫其他插值方法。比如牛頓插值和拉格朗日插值。
如果你想知道,在時間為0.0236時,溫度為27.6時的數據,那應該使用二元插值函數 interp2
ZI = interp2(X,Y,Z,XI,YI,method)
方法類似
F. 我在做溫度插值圖時,由於氣象站點的分布為分散的點狀, 需要對氣溫數據在水平方向上進行內插
你的問題比較專業,只能給些意見,希望能起到作用。
對於溫度取那種平均,我覺得需要結合你的目的,你想做長期變化,年際變化或者季節變化,就對應用不同的平均,長期就用40年平均,年際就用年平均,年內季節變化就用月平均,有這么好的數據,怎麼用完全取決於你想表達的內容和研究目的。
高程怎樣擬合我不會,我覺得地理信息系統的軟體里應該都有這些功能。
插值我通常都用克里金插值,好像是有限元差分法比較利於網格的使用,個人認為可以先做等高線和等溫線,高程根據實際情況以百米為單位再給溫度階梯。插值一次只能顯示一種屬性,先插高程,再插溫度,然後跟你沒插之前的實測線做個對比,變化范圍小應該就可以使用。
純屬個人意見,可能偏差較大,見諒。