MATLAB atan 和 atan2
atan 和 atan2 都是求反正切函式,但引數數量和計算方法都有不同。
atan2(a,b)是4象限反正切,它的取值不僅取決於正切值a/b,還取決於點 (b, a) 落入哪個象限
當點(b, a) 落入第一象限時,atan2(a,b)的範圍是 0 ~ pi/2;
當點(b, a) 落入第二象限時,atan2(a,b)的範圍是 pi/2 ~ pi;
當點(b, a) 落入第三象限時,atan2(a,b)的範圍是 -pi/2~0;
當點(b, a) 落入第四象限時,atan2(a,b)的範圍是 -pi~-pi/2
而 atan(a/b) 僅僅根據正切值為a/b求出對應的角度 (可以看作僅僅是2象限反正切)
當 a/b > 0 時,atan(a/b)取值範圍是 0 ~ pi/2;
當 a/b < 0 時,atan(a/b)取值範圍是 -pi/2~0
故 atan2(a,b) = atan(a/b) 僅僅發生在 點 (b, a) 落入第一象限 (b>0, a>0)或 第三象限(b>0, a<0)。
當點 (b, a) 落入第二、三象限時,很顯然atan2(a,b) 不等於 atan(a/b) ,並且atan2(a,b)也不可能等於 2*atan(a/b) 。
這是因為,假如點 (b, a) 落入第二象限,則 a/b<0, 故atan(a/b)取值範圍始終是 -pi/2~0,2*atan(a/b) 的取值範圍是-pi~0,然而,atan2(a,b)的範圍是 pi/2 ~ pi,故不可能有atan2(a,b) = 2*atan(a/b) 。假如點(b, a) 落入第三象限,則則 a/b>0 , 故 atan(a/b) 取值範圍是 0 ~ pi/2,2*atan(a/b) 的取值範圍是 0 ~ pi,而此時atan2(a,b)的範圍是 -pi~-pi/2,很顯然,atan2(a,b) = 2*atan(a/b)
舉個例子,a = 1, b = -1,則 atan(a/b) = atan(-1) = -pi/4, 而 atan2(a,b) = 3*pi/4
相關文章
- 轉載 atan2(a,b) 和 atan(a/b)
- 7.27 ATAN2
- 7.26 ATAN
- JavaScript Math.atan()JavaScript
- JavaScript Math.atan2()JavaScript
- python Math.atan2() degrees()Python
- 利用matlab求解方程和方程組Matlab
- vscode和matlab聯動-提高開發效率VSCodeMatlab
- matlab中中影象PSNR和SSIM的計算Matlab
- Matlab學習-視覺化和程式設計Matlab視覺化程式設計
- ADOV路由和DSR路由matlab對比模擬路由Matlab
- C++和MATLAB混編的問題集錦C++Matlab
- matlab畫sigmoid函式和其一階倒數MatlabSigmoid函式
- Python和Matlab有何區別?哪個更難?PythonMatlab
- matlab classdefMatlab
- geoshow in matlabMatlab
- matlab技巧Matlab
- matlab影像對比度增強,拉伸和灰度變換Matlab
- MATLAB生成.coe檔案和.mif檔案程式碼示例Matlab
- MATLAB一維插值和二維插值 比較Matlab
- matlab對不定積分和定積分的計算Matlab
- Matlab繪圖Matlab繪圖
- matlab呼叫pythonMatlabPython
- matlab 基礎Matlab
- 模板匹配(matlab)Matlab
- MATLAB VS PYTHONMatlabPython
- [MATLAB]排列大小Matlab
- matlab快捷鍵Matlab
- [MatLab]學習筆記2:MatLab數值資料Matlab筆記
- 數學建模中常用的30個MATLAB程式和函式Matlab函式
- matlab版本轉換Matlab
- matlab讀資料Matlab
- Matlab常用語句Matlab
- SciPy Matlab 陣列Matlab陣列
- matlab如何生成exeMatlab
- matlab開啟drivingScenarioDesignerMatlab
- 【Matlab】基礎教程Matlab
- 每日總結(matlab)Matlab