Re: [問題] 為什麼要spline?

看板Fortran作者 (交換關聯)時間16年前 (2008/09/11 11:23), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/3 (看更多)
題外話,spline 最差的部份,是在於不連續點,會產生Gibbs phenomia 好比產生一方波,以1000點描述一秒,方波頻率5(既一秒有五個方波) 現把方波增點,改為一秒已10萬點描述。 會發現在不連續處有Gibbs phenomia http://en.wikipedia.org/wiki/Image:Gibbs_phenomenon_250.png
解決方法有兩者,一是捨去函數的概念,將不連續處以多點描述 二是不用spline : 最有名的是monotonic cubic interpolation http://en.wikipedia.org/wiki/Monotone_cubic_interpolation ※ 引述《sjgau (sjgau)》之銘言: : 如果你學過 應力,材力,那就很好解釋了。 : cubic spline 的發明者,好像是 汽車工業, : 造船工業或是 飛機工業的人, : 他每天都使用 大型的蛇尺在劃曲線。 : 所以,他就幫蛇尺建立數學模式, : 去聯立求解相鄰兩個 控制點之間的 : 三次函數。 : cubic spline 的意思,就是這麼來的。 : y= a*(x^3) + b*(x^2) + c*x + d : 如果有 十個控制點,就有九個 y=f(x) 的方程式, : 因為是 三次式,所以 他的一次和 二次導函數都會連續, : 符合 產生出來的曲線,斜率和 轉彎半徑都要連續的 需求。 : 另外,為了避免 y= f(x) 在 y' 太大的地方 失真的問題產生, : 建議採用 參數方程式, : y= f(x) --> : x= t(x), : y= t(y) : ※ 引述《mystea (mystea)》之銘言: : : 因為看到版規上說關於科學計算的問題可以討論, : : 所以我的fortran版首波就獻給spline interpolation啦~ : : 問題很簡單: spline interpolation到底是哪裡好呢? : : 我知道用了spline -- 一階導數連續. 但是一階導數連續 : : 又怎樣呢? 何況一階導數連續的interpolation function也不是唯一的阿... : : (比方說一個經過每一個點的超高階polynomial) : : 總之, 在我們使用spline時, 被後市不是有一套沒說出來的思想架構呢??? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.132.13.207
文章代碼(AID): #18o8yWo1 (Fortran)
討論串 (同標題文章)
文章代碼(AID): #18o8yWo1 (Fortran)