日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

埃尔米特(Hermite)插值

發布時間:2023/12/13 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 埃尔米特(Hermite)插值 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? ?Hermite插值滿足在節點上等于給定函數值,而且在節點上的導數值也等于給定的導數值。對于高階導數的情況,Hermite插值多項式比較復雜,在實際情況中,常常遇到的是函數值與一階導數給定的情況。在此情況下,n個節點x1,x2,…,xn的Hermite插值多項式的表達式如下:


其中:


這樣就很容易寫出代碼了,關鍵就是記住公式。

matlab中的實現:

Hermite.m

function f = Hermite(x,y,y_1,x0) %求已知數據點的向后差分牛頓插值多項式 %已知數據點的x 坐標向量:x %已知數據點的y 坐標向量:y %已知數據點的導數向量:y_1 %求得的Hermite插值多項式或x0處的插值:f syms t; f = 0.0;if(length(x) == length(y))if(length(y) == length(y_1))n = length(x);elsedisp('y和y的導數的維數不相等!');return;end elsedisp('x和y的維數不相等!');return; end for i=1:nh = 1.0;a = 0.0;%%計算hi和aifor j=1:nif( j ~= i)h = h*(t-x(j))^2/((x(i)-x(j))^2);a = a + 1/(x(i)-x(j));endendf = f + h*((x(i)-t)*(2*a*y(i)-y_1(i))+y(i));if(i==n)if(nargin == 4)f = subs(f,'t',x0);elsef = vpa(f,6);endend end


HermiteInsert.m

x=1:0.2:1.8; y=[1 1.0954 1.1832 1.2649 1.3416]; y_1=[0.5 0.4564 0.4226 0.3953 0.3727]; f=Hermite(x,y,y_1) f=Hermite(x,y,y_1,1.44)x1=0:2*pi; y1=sin(x1); y1_1=cos(x1); xx=0:0.5:2*pi; yy=Hermite(x1,y1,y1_1,xx); plot(x1,y1,'o',xx,yy,'r')



總結

以上是生活随笔為你收集整理的埃尔米特(Hermite)插值的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。