課程設計---hermite 插值法的程序設計及應用_第1頁
已閱讀1頁,還剩23頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  課程設計說明書</b></p><p>  題 目:Hermite 插值法的程序設計及應用</p><p><b>  學生姓名: </b></p><p><b>  學 院: </b></p><p><b>  班 級:

2、 </b></p><p><b>  指導教師: </b></p><p>  2012年 1月 5日</p><p><b>  摘要</b></p><p>  Hermite 插值是數(shù)值分析中的一個重要內(nèi)容,在相同的節(jié)點下得到比拉格朗日插值更高次的插值多項式,而且,相應的曲線

3、在部分節(jié)點處也更光滑.在我們所學課程中,只給出了當所有節(jié)點處一階導數(shù)均已知時的Hermite 插值.但在實際應用中,并不是所有節(jié)點處的一階導數(shù)都是已知的.為此,通過查閱文獻、學習總結,給出了更具一般性的Hermite 插值公式.已有的Hermite 插值公式成為本文所得結果的一個特例.</p><p>  本次課程設計,對Hermite 插值法進行了總結,包括Hermit插值法的理論推導,不同情形下的例,以及在解

4、決實際問題中的應用.同時也給出了Hermite插值公式的Matlab算法.</p><p>  關鍵詞 Hermite 插值;Matlab 實現(xiàn);數(shù)值分析</p><p><b>  目錄</b></p><p>  引言..............................................................

5、. 1</p><p>  Hermite插值................................................. 2</p><p>  §1.1 Hermite插值的概念........................................ 2</p><p>  §1.2 Hermite插值簡單情形.

6、..................................... 3</p><p>  §1.2.1簡單情形解的存在性.................................. 3</p><p>  §1.2.2 簡單情形解的存在唯一性............................. 5</p><p>  &#

7、167;1.2.3插值余項............................................ 5</p><p>  §1.3 Hermite插值其他情形................................ .......5 </p><p>  第二章 Hermite插值的Matlab實現(xiàn)............................

8、.........9 </p><p>  §2.1 導數(shù)完全情形Hermite插值的Matlab實現(xiàn)................... ..9</p><p>  §2.2導數(shù)不完全情形Hermite插值的Matlab實現(xiàn)....................10 </p><p>  §2.3 Hermite插值在實際問題中的

9、應用............................13 </p><p>  參考文獻.......................................................... 15 </p><p>  附錄A......................................................... 16 </p>

10、<p>  附錄B......................................................... 17 </p><p>  附錄C......................................................... 19 </p><p><b>  引言</b></p>

11、<p>  在實際工作中, 人們得到的一些數(shù)據(jù)通常是一些不連續(xù)的點, 在土木工程、流體力學、經(jīng)濟學和空氣動力學等學科中經(jīng)常要遇到這樣的問題. 此時, 這些數(shù)據(jù)如果不加以處理, 就難以發(fā)現(xiàn)其內(nèi)在的規(guī)律性. 如果用戶想得到這些分散點外的其他數(shù)值, 就必須運用這些已知的點進行插值.因此,對近似公式的構造產(chǎn)生了插值問題.</p><p>  在實際問題中,兩個變量的關系經(jīng)常要靠實驗和觀測來獲得,而在通常的情況下

12、只能得到在有限個點上的值</p><p>  人們希望找到的一個近似函數(shù),使得</p><p>  , </p><p>  此時,稱為被插值函數(shù),點稱為插值結點,稱為插值函數(shù),為插值條件.</p><p>  常用的插值法有Lagrange插值、Newton插值、最近鄰插值、Hermite 插值和三次樣條

13、插值插值法等. Lagrange插值在向量X 區(qū)域內(nèi)的插值較準確, 但向量X區(qū)域之外則不太準確.Newton插值僅適用于等距節(jié)點下的牛頓向前(后) 插值. 最近鄰插值是最簡便的插值, 在這種算法中, 每一個插值輸出像素的值就是在輸入圖像中與其最臨近的采樣點的值, 當圖像中包含像素之間灰度級變化的細微結構時, 最近鄰插值法會在圖像中產(chǎn)生人工的痕跡. 最近鄰插值的特點是簡單、快速, 缺點是誤差較大; 三次樣條插值一階和二階連續(xù)可導, 插值曲

14、線光滑, 插值效果比較好, 應用較廣Newton 插值和Lagrange 插值雖然構造比較簡單, 但都存在插值曲線在節(jié)點處有尖點、不光滑、插值多項式在節(jié)點處不可導等缺點. </p><p>  為了保證插值多項式 能更好地逼近, 對增加一些約束條件, 例如要求在某些結點處與的微商相等, 這樣就產(chǎn)生了切觸插值問題.切觸插值即為Hermite插值.它與被插函數(shù)一般有更高的密合度.</p><p&g

15、t;  本課程設計主要對Hermite插值法進行總結,對其一般情況,特殊情況進行更進一步的學習,盡量實現(xiàn)其在Matlab及C++上的程序運行.</p><p><b>  Hermite插值</b></p><p>  實際問題中應用較廣為Newton 插值和Lagrange 插值,雖然這輛種插值法構造比較簡單, 但都存在插值曲線在節(jié)點處有尖點、不光滑、插值多項式在節(jié)

16、點處不可導等缺點.為了克這些缺點,我們引入了Hermite插值.</p><p>  §1.1 Hermite插值的概念</p><p>  定義1.1 許多實際插值問題中,為使插值函數(shù)能更好地和原來的函數(shù)重合,不但要求二者在節(jié)點上函數(shù)值相等,而且還要求相切,對應的導數(shù)值也相等,甚至要求高階導數(shù)也相等.這類插值稱作切觸插值,或埃爾米特(Hermite)插值.</p>

17、<p>  該定義給出了Hermite插值的概念,由此得出Hermite插值的幾何意義,如圖1.1.</p><p>  定義1.2 滿足上述要求的插值多項式是埃爾米特插值多項式.記為H (x).</p><p>  定義1.3 求一個次數(shù)不大于的代數(shù)多項式 H(x) ,滿足:</p><p><b> ?。?-1)</b><

18、/p><p>  則(1-1)為Hermite插值條件.</p><p><b>  定義1.4 令</b></p><p><b>  (1-2)</b></p><p>  其中,都是次待定多項式并且它們滿足如下條件:</p><p>  稱(1-2)為Hermite插值公式

19、.</p><p>  解決Hermite插值問題,就是在給定結點處函數(shù)值與導數(shù)值的基礎上根據(jù)插值公式構造Hermite插值多項式,并根據(jù)已知條件解出多項式系數(shù).</p><p>  §1.2 Hermite插值簡單情形</p><p><b>  已知函數(shù)表:</b></p><p>  求一個插值多項式,使

20、其滿足條件數(shù)表.由于數(shù)表中包含個條件,所以能夠確定次數(shù)不大于的代數(shù)多項式 .</p><p>  此情形為導數(shù)個數(shù)與函數(shù)值個數(shù)相等的情形,即 Hermite 插值問題的最簡單也是最常用情形.</p><p>  1.2.1簡單情形解的存在性</p><p>  由于Hermite插值公式(1-2)已給出,接下來只需構造出及,即認為其存在.在此簡介Lagrange-H

21、ermite插值法構造插值多項式.</p><p>  Step1 構造()</p><p>  由條件知是的二重零點.已知Lagrange插值基函數(shù)是次多項式,且具有性質(zhì)</p><p><b>  ,</b></p><p>  則2次多項式也具有性質(zhì),而的一階導數(shù)在處的值所以當時,也都是的兩重零點.注意到是次多項式

22、,而是次多項式,因此可設其中為待定常數(shù).顯然時滿足,現(xiàn)只要求出滿足時,滿足即可.由此得到確定的兩個方程:</p><p><b>  解出</b></p><p><b>  于是.</b></p><p><b>  Step2 構造 </b></p><p>  由條件知是

23、的二重零點.因此可設也含因子,又,所以還含有因式,因此設,其中A為待定常數(shù).</p><p>  顯然是次多項式,且當時滿足,由可確定A如下:</p><p>  所以 .</p><p>  到此為止,Hermite插值問題的解為</p><p>  特別地,當1時,滿足的三階Hermite插值多項

24、式為</p><p><b>  .</b></p><p>  §1.2.2 簡單情形解的存在唯一性</p><p>  為了簡便理解,下面用流程圖來說明解的存在唯一性.詳見附錄A.</p><p>  §1.2.3 插值余項</p><p>  定理1.1 設在包含個插值結

25、點的最小區(qū)間[]上次連續(xù)可微,則存在與有關的,,使得</p><p>  其中.由此可得到三階Hermite插值多項式的誤差為:</p><p><b>  在與之間.</b></p><p>  §1.3 Hermite插值其他情形</p><p><b>  已知函數(shù)表:</b><

26、;/p><p>  求一個插值多項式,使其滿足條件數(shù)表.該問題中,導數(shù)個數(shù)與函數(shù)值個數(shù)不相等.我們稱之為Hermite插值中其他情形.在此簡介Newton-Hermite插值法構造插值多項式.</p><p>  先分析插值條件的個數(shù):個,那么,所構造的多項式的次數(shù)一般不能超.于是,按牛頓差值的思想,可設 </p><p>  其中,為n次牛頓差值多項式;為待定的次數(shù)不

27、超過m次的多項式. 顯然:</p><p><b>  為確定,對求導:</b></p><p><b>  根據(jù)插值條件,有 </b></p><p><b>  得到</b></p><p>  于是,把求的問題轉(zhuǎn)化為又一個插值問題</p><p>

28、<b>  已知的函數(shù)表</b></p><p>  確定一個次數(shù)不超過的插值多項式,使其滿足.</p><p><b>  根據(jù)牛頓差值公式.</b></p><p>  將上式帶回,即得到滿足條件</p><p>  的Newton-Hermite插值多項式.</p><p&

29、gt;  例1.1 已知函數(shù)表:</p><p>  求一個插值多項式H (x),使其滿足條件:</p><p>  該問題中,導數(shù)個數(shù)與函數(shù)值個數(shù)不相等.我們稱之為Hermite插值中其他情形.在此簡介Newton-Hermite插值法構造插值多項式.</p><p><b>  先由函數(shù)表</b></p><p>&

30、lt;b>  作線性插值,即為</b></p><p>  再注意到H (x)與P1 (x)在節(jié)點x0, x1上函數(shù)值相同,即:</p><p>  于是,它們的差可以設為</p><p>  其中為待定常數(shù),上式又可記為:</p><p><b>  (1-3)</b></p><

31、;p>  為確定,對上式求導:</p><p>  令x = x0,代入上式,并且注意到插值條件得:</p><p><b>  于是有</b></p><p>  將上式代入(1-3)得</p><p><b>  (1-4)</b></p><p>  可以驗證(1

32、-4)所確定的H(x)確實滿足插值條件(1-1).同時也可以看到,構造牛頓——埃米爾特插值多項式,完全采用牛頓插值的構造思想.</p><p>  最后,也可以把(1-4)式整理成拉格朗日形式:</p><p><b>  插值余項為</b></p><p><b>  ,</b></p><p>

33、<b>  在與之間.</b></p><p>  第二章 Hermite插值的Matlab實現(xiàn)</p><p>  §2.1 導數(shù)完全情形Hermite插值的Matlab實現(xiàn)</p><p>  在實際應用中,應用最廣也是最簡單的Hermite插值情形即為導數(shù)完全的情況下,Hermite插值多項式的擬合.我們首先討論該情形下的Mat

34、lab程序.</p><p>  在給出程序之前,我們首先給出該公式所應用的Hermite插值公式.</p><p>  定理2.1 設在節(jié)點上,</p><p><b>  ,</b></p><p>  其中,則函數(shù)在結點處處的Hermite插值多項式為</p><p><b>  

35、其中 .</b></p><p>  該定理的證明詳見文獻.</p><p>  該情形下對應的Matlab程序及流程圖詳見附錄B .</p><p>  為驗證該程序的正確性與有效性,下面給出例2.1.</p><p>  例2.1 設有如下數(shù)據(jù)表:</p><p>  在Matlab工作臺輸入如下命令

36、:</p><p>  >> x0=[0,0.5,1,1.5,2,2.5,3,3.5];</p><p>  y0=[0,0.4794,0.8415,0.9975,0.9093,0.5985,0.1411,- 0.3508];</p><p>  y1=[1,0.8776,0.5403,0.0707,-0.4161,-0.8011,-0.9900,-0.

37、9365];</p><p><b>  x=x0;</b></p><p>  y=hermite(x0,y0,y1,x);</p><p><b>  y</b></p><p><b>  plot(x,y)</b></p><p>  y2=si

38、n(x);</p><p><b>  hold on</b></p><p>  plot(x,y2,'*r')</p><p>  則輸出結點處的插值:</p><p>  y =0 0.4794 0.8415 0.9975 0.9093 0.5985 0.1411 -0.3508<

39、;/p><p>  的Hermite插值多項式的擬合圖像如圖:</p><p>  §2.2導數(shù)不完全情形Hermite插值的Matlab實現(xiàn)</p><p>  在實際應用中,并不是所有節(jié)點處的一階導數(shù)都是已知的,為此,我們給出了更具一般性的Hermite 插值公式及其算法實現(xiàn),已有的Hermite 插值公式成為本文所得結果的一個特例.</p>

40、<p>  在此首先給出求解Hermite插值問題的一般性公式。</p><p>  定理2.1 設在節(jié)點上,</p><p><b>  ,</b></p><p>  其中,則函數(shù)在結點處處的Hermite插值多項式為</p><p><b>  其中</b></p>

41、<p>  該定理的證明詳見文獻.</p><p>  由該公式得到的更具一般性的Hermite插值公式Matlab程序詳見附錄C.</p><p>  為了驗證該程序的一般性,首先給出導數(shù)完全情況下的例.</p><p>  例2.2 已知數(shù)表:</p><p>  根據(jù)所列的數(shù)據(jù)點求出其Hermite插值多項式,并計算當x=2

42、.0 時的y 值.</p><p>  在Matlab 中鍵入下面命令</p><p>  x=1:0.2:1.8; y=[1, 1.0954, 1.1832, 1.2649, 1.3416];</p><p>  x1=x; y1=[0.5, 0.4564,0.4226,0.3953,0.3727];</p><p>  [h,yy]=He

43、rmiteInt1(x,y,x1,y1,2)</p><p>  按回車鍵得到插值多項式:</p><p><b>  h =</b></p><p>  43215754781469129/1099511627776000-1145972591322841157/4398046511104000*t+163294776469783529843

44、/211106232532992000*t^2+1665485238488168375/60798594969501696*t^8+15318604908211965505/30399297484750848*t^6-4691451189851556625/30399297484750848*t^7-50392743046091368807/37999121855938560*t^3-63885352929874938617/60798

45、594969501696*t^5+441043429159790924983/303992974847508480*t^4-130567005823358125/60798594969501696*t^9</p><p><b>  yy =</b></p><p><b>  1.4112</b></p><p>  該

46、例所得插值多項式的對應的函數(shù)圖如下圖所示:</p><p>  顯然,在導數(shù)完全的情況下該程序能夠準確的求得Hermite插值多項.為了體現(xiàn)其一般性,給出例2.3.</p><p>  例2.3 找出次數(shù)小于4的滿足數(shù)表</p><p>  的Hermite插值多項式.</p><p>  在Matlab 的命令窗口直接輸入以下命令: <

47、;/p><p>  x=[0,1,2];y=[0,1,1];x1=[0,1];y1=[0,1];</p><p>  h=HermiteInt1(x,y,x1,y1)</p><p>  按回車鍵后得到插值多項式為:</p><p>  h =1/4*t^4-3/2*t^3+9/4*t^2.</p><p>  該例所得插

48、值多項式對應的函數(shù)圖如下:</p><p>  §2.3 Hermite插值在實際問題中的應用</p><p>  實際問題 技術員為了描繪出車門的曲線,他得到數(shù)據(jù)</p><p>  分析他如何用數(shù)值方法實現(xiàn). </p><p>  首先用2.2節(jié)所得程序求得插值多項式。</p><p>  在Matlb中

49、輸入以下命令:</p><p>  x=[0,10,1,2,3,4,5,6,7,8,9];</p><p>  y=[2.51,5.80,3.30,4.04,4.70,5.22,5.54,5.78,5.40,5.57,5.70];</p><p>  x1=[0,10];</p><p>  y1=[0.8,0.2];</p>

50、<p>  h=HermiteInt1(x,y,x1,y1)</p><p>  按回車鍵可得插值多項式為:</p><p>  h=4/5*t-1132854469/317520000*t^2+251/100+4337490841/423360000*t^3-1714571473981/142884000000*t^4+10955247103/1428840000*t^5-57

51、148609549/19051200000*t^6+33010812389/43545600000*t^7-192428418647/1524096000000*t^8+419662093/30481920000*t^9+33910721/914457600000*t^11-432289699/457228800000*t^10-965039/1524096000000*t^12</p><p>  為驗證該He

52、rmite插值多項式的擬合程度下面將1,210將代入該多項式可得到擬合的值.</p><p>  =2.5100,3.3000,4.0400,4.7000,5.2200,5.5400,5.7800,5.4000,5.5700,</p><p>  5.7000, 5.8000</p><p>  因此可以看出它與函數(shù)表完全擬合.</p><p&g

53、t;  由插值多項式得到的車門曲線如圖2.4與圖2.5所示. </p><p><b>  參考文獻</b></p><p>  [1]李慶揚,王能超,易大義.數(shù)值分析.4 版[M].北京:清華大學出版社,2001:41-45.</p><p>  [2]應瑋婷,王潔.Hermite插值公式的推廣及其matlab 實現(xiàn).[A].浙江 臨海:臺州

54、學院數(shù)學與信息工程學院,2010:03-0004-06</p><p>  [3]黃明游,劉播,徐濤,數(shù)值計算方法[M],北京:科學出版社.2005.</p><p><b>  附錄A</b></p><p><b>  附錄B</b></p><p>  導數(shù)完全的情況下Hermite插值多項式

55、擬合Matlab程序:</p><p>  function f = Hermite(x,y,y_1,x0) </p><p><b>  syms t; </b></p><p><b>  f = 0.0; </b></p><p>  if(length(x) == length(y)) &l

56、t;/p><p>  if(length(y) == length(y_1)) </p><p>  n = length(x); </p><p><b>  else </b></p><p>  disp('y和y的導數(shù)的維數(shù)不相等!'); </p><p><b> 

57、 return; </b></p><p><b>  end </b></p><p><b>  else </b></p><p>  disp('x和y的維數(shù)不相等!'); </p><p><b>  return; </b></p&

58、gt;<p><b>  end </b></p><p>  for i=1:n </p><p><b>  h = 1.0; </b></p><p><b>  a = 0.0; </b></p><p>  for j=1:n </p>&

59、lt;p>  if( j ~= i) </p><p>  h = h*(t-x(j))^2/((x(i)-x(j))^2); </p><p>  a = a + 1/(x(i)-x(j)); </p><p><b>  end </b></p><p><b>  end </b><

60、;/p><p>  f = f + h*((x(i)-t)*(2*a*y(i)-y_1(i))+y(i)); </p><p><b>  if(i==n) </b></p><p>  if(nargin == 4) </p><p>  f = subs(f,'t',x0); </p>&l

61、t;p><b>  else </b></p><p>  f = vpa(f,6); </p><p><b>  end </b></p><p><b>  end </b></p><p><b>  end</b></p>&

62、lt;p><b>  對應流程程圖為:</b></p><p><b>  附錄C</b></p><p>  更具一般性的Hermite插值公式的Matlab程序:</p><p>  function[h,yy]=HermiteInt1(x,y,x1,y1,xx)</p><p>  %求

63、Hermite 插值.x 為插值節(jié)點,y 為相應的函數(shù)值;在節(jié)點x1 的一階導數(shù)為y1;xx 為插值點.</p><p>  %輸出Hermite 插值函數(shù)的表達式h,若輸入?yún)?shù)中有插值點xx 時,再輸出xx 相應的插值函數(shù)值yy.</p><p>  n=length(x);m=length(x1);</p><p><b>  syms t</

64、b></p><p><b>  yy=0;</b></p><p><b>  for i=1:n</b></p><p>  %下面求y(i)前的系數(shù)</p><p><b>  I=0;</b></p><p>  %下面這個循環(huán)是要找出x(

65、i)在數(shù)組x1 中的位置</p><p><b>  for j=1:m</b></p><p>  if x(i)==x(j)</p><p><b>  I=j;</b></p><p><b>  break;</b></p><p><b&

66、gt;  end</b></p><p><b>  end</b></p><p>  l1=1;l2=0;</p><p><b>  for j=1:n</b></p><p><b>  if j~=i</b></p><p>  l

67、1=l1*(t-x(j))/(x(i)-x(j));</p><p>  l2=l2+1/(x(i)-x(j));</p><p><b>  end</b></p><p><b>  end</b></p><p><b>  for j=1:m</b></p>

68、<p><b>  if j~=I</b></p><p>  l1=l1*(t-x1(j))/(x(i)-x1(j));</p><p>  l2=l2+1/(x(i)-x1(j));</p><p><b>  end</b></p><p><b>  end</

69、b></p><p><b>  if I==0</b></p><p><b>  l2=0;</b></p><p><b>  end</b></p><p>  yy=yy+l1*(-l2*(t-x(i))+1)*y(i);</p><p>

70、;<b>  end</b></p><p><b>  for i=1:m</b></p><p>  %下面求y1(i)前的系數(shù)</p><p><b>  l3=1;</b></p><p><b>  for j=1:n</b></p>

71、<p>  if x(j)~=x1(i)</p><p>  l3=l3*(t-x(j))/(x1(i)-x(j));</p><p><b>  end</b></p><p><b>  end</b></p><p><b>  for j=1:m</b>&

72、lt;/p><p>  if x1(j)~=x1(i)</p><p>  l3=l3*(t-x1(j))/(x1(i)-x1(j));</p><p><b>  end</b></p><p><b>  end</b></p><p>  yy=yy+l3*(t-x1(i)

73、)*y1(i);</p><p><b>  end</b></p><p>  h=simplify(yy);</p><p>  if nargin==5</p><p>  yy=eval(subs(h,'xx','t'));</p><p><b>

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論