[心得] Mathematica計算定點到曲線距離

作者: alfadick (悟道修行者)   2014-02-27 23:44:52
譬如有個曲線是f(x,y)=0,(它可以是拋物線、圓、甚至亂七八糟的圖形)
又有一個定點是(xo,y0)。想要計算點到f(x,y)=0的距離(最小距離),
我剛才發現了一個新方法。
至於Mathematica有沒有現成的函數,
我還沒讀完virtual book,也還不知道,有請板上朋友解說這部分了。
因為這個新方法有用到特別的思路來解決問題,所以特別把思路說明一下。
我這篇的po文要旨,也只是想分享思路、順便記錄而已。
我的方法是用符號邏輯著手,
給一定點A(x0,y0),想求它到曲線f(x,y)=0的最小距離,
考慮A到所有f(x,y)=0上的點的距離,把這∞個距離想成一個集合,
然後求其最小值。可是mathematica似乎無法對集合求最小值。
並且"這∞個距離想成一個集合"說歸說,要怎麼寫?
如果是數學,寫成 集合K={d | 存在x,y, f(x,y)=0且d=點到圖形距離} 是可以
(注意這裡是存在(there exists),不是對於所有(for all))
問題是mathematica能不能看得懂,能不能轉成它的指令的問題。
我認為有機會,但不保證。譬如曲線是y^13 == 4 x^2 + 5 x^2 + x,定點是(21,6)
Reduce[Exists[{x, y},
y^13 == 4 x^2 + 5 x^2 + x && Sqrt[(x - 21)^2 + (y - 6)^2] == d], d]
跑很久跑不出來。我猜可能是因為,d不是單純的"區間"、或者是好幾個區間的聯集,
它可能錯綜複雜,是支離破碎的一堆實數。mathematica給不出形式來。
(當然我的example, 好像可以用數學理論證看看d是不是區間@@,
但太麻煩了)
作者: tml (流刑人形)   2014-02-27 23:52:00
只要數值解的話用FindMinimum就好了,Minimize會找解析解最後面加個FindMinimum[...,...,WorkingPrecision -> 30]看看

Links booklink

Contact Us: admin [ a t ] ucptt.com