看板 MATLAB 關於我們 聯絡資訊
※ 引述《w0005151 (小科)》之銘言: : 各位大大好 : 我的程式中需要求x^2/a^2+y^2/b^2=1(橢圓) : 與y=x*tan(x) : 原先我是用linspace取x的格點然後在得到兩條曲線的y座標y1與y2 : 最後用polyxpoly(x,y1,x,y2)得到交點 : 但我發現tan函數因為會去向無限大所以好像會有點問題 : 當我x的格點數取的不一樣的時候所得到的交點位置與交點個數竟然會有明顯的差異 : 用plot看的時候也發現y=xtanx這個函數在格點數不一樣的時候畫出來的圖也會不同 : 有些格點數會變得相當奇怪 : 如果只是要精確地求出交點的話有什麼別的方法嗎? 用function f(x)=x^2/a^2+(x*tan(x))^2/b^2-1 用fzero解 f(x)=0 非線性求解 解的個數要畫個圖看看 不然就-a~a分割成數個點當初始值 for 迴圈代入 當fzero的初始值去收斂到解 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.33.6.152
w0005151:fzero輸入的函數是要用function寫嗎? 02/25 00:36
w0005151:可是在我的程式中橢圓的a,b是在for迴圈裡變的 02/25 00:37
w0005151:這樣我的function會有三個變數 好像就不能用fzero? 02/25 00:37
alamabarry:可以多加一層function f(a,b)回傳x的所有解 02/25 15:57
alamabarry:但是解應該會有重複就是了 02/25 15:57
alamabarry:但是如果你要把解畫圖出來看應該沒差 02/25 15:57
alamabarry:可能只能畫點的圖plot3 02/25 16:02