[問題] 從二維矩陣轉換出一個連續可微曲面
Input: 一個二維矩陣
Output: 轉換出一個連續的曲面 f(x,y) 並可算出曲面上任意位置的梯度值▽f(x,y)
例如:
z= [
412 407 412 512 527 ;
162 90 162 266 290;
412 407 412 512 527;
458 453 458 557 572;
482 477 482 581 596
]
轉換出f(x, y)
f(2, 2) = 90
f(3, 4) = 512
以上兩點座標剛好是整數,所以算出的值應該會和矩陣值相同(或是相近)
▽f(3, 4) = (57.5, 145.5)
這值是用gradient function算出的值
f(3.5, 2.2) = ?
▽f(3.5, 2.2) = ?
目前有試過的function
gradient:
可算出矩陣的梯度值,但輸出是以矩陣的方式,並非連續的,
無法算出非整數座標時的梯度值
fit:
可以計算曲面上的值,但不知如何得到梯度值
目前用過的fitType:
linearinterp, nearestinterp 但各曲面連接的線段上可能不可微分
polynomial surfaces 用來逼近的話有很多點的值差距很大
版上大神們對於這問題是否能提供一些意見呢?
是否有特別的名詞來敘述這個問題?
目前我能想到的只有fitting,如果能有確定的名詞的話也比較好找方法
另外是否有其他版適合用來討論這問題呢?
連結是比較大的矩陣,並plot出fit的結果
https://drive.google.com/file/d/0B0zE4dfRjG4daFdXNi1lOEppUlk/edit?usp=sharing
拜託大家解惑了, 謝謝 <(_ _)>
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.48.61
→
02/19 11:53, , 1F
02/19 11:53, 1F
→
02/19 11:56, , 2F
02/19 11:56, 2F
→
02/19 11:57, , 3F
02/19 11:57, 3F
→
02/19 11:58, , 4F
02/19 11:58, 4F
→
02/19 12:05, , 5F
02/19 12:05, 5F
感謝ejialan大神的回應
我比較需要取得的是梯度的值,用▽f來fit的確是滿方便的。
看了一下rbf的介紹,有很多地方不懂。
如果我矩陣的是200x100,那我用rbf就需要先算出那40000個點的係數嗎?
我每次要計算任意一個座標的值,就需要先把40000個值加總起來。
這樣複雜度可能會太大了,因為我轉出的曲面會不斷的呼叫來取值。
另外rbf得到的曲面可以證明是可微的嗎?
※ 編輯: shefiroth26 來自: 140.112.48.61 (02/19 18:05)
※ 編輯: shefiroth26 來自: 140.112.48.61 (02/19 18:14)
→
02/20 10:45, , 6F
02/20 10:45, 6F
→
02/20 10:47, , 7F
02/20 10:47, 7F
→
02/20 10:49, , 8F
02/20 10:49, 8F
→
02/20 10:52, , 9F
02/20 10:52, 9F
→
02/20 10:52, , 10F
02/20 10:52, 10F
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章