Re: [問題] 如何用fzero拿多根已回收

看板MATLAB作者 (.............)時間14年前 (2011/09/05 22:20), 編輯推噓1(104)
留言5則, 2人參與, 最新討論串2/3 (看更多)
※ 引述《yulishsu (Yulis)》之銘言: : 小弟現在在做一個簡單的練習 : 用fzero解 x^3-6*x^2+11*x-6=0 : (手解的話根就是 1, 2 ,3) : 但每次都只能得一個值 : 那小弟嘗試在起始值的部分做一個 for loop : 但這樣值又太多 也不太準 = = : 不知道有沒有什麼方法可以用fzero 得到 準確的那三個根? : p.s. 用 p=[3 -6 11 -6 ]; root=roots(p) 可得 : 但有時候多項式包含sin cos 就不能用這方式 : 所以想找一個簡單的式子來練習 fzero fzero 要單變數連續函數..可收斂到實數解... roots 要多項式 你的東西已經是非線性了 只能把未知數拆成很多個初始值去收斂 藉由不同的初始值去收斂到不同根 若你的方程式有一些變數 則你可以得到跟與變數之間的變化曲線 如果複數的地方你也想知道 那就必須設成複數形式的根 也就會變成兩個變數 這時候fzero已無法完成你的需求 你也無從得到數值的存在性(勘根定理 變號) 僅能用fminsearch用多變數求解得到 "極小值"的位置 過程也要假設不同的實部與虛部的初始值 但無法從數值上確認根的存在性 僅能得到"可能"為根的地方 以上是我所知道的 所知有限 如有更好方法煩請指導!! 我也很想知道 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.125.38.162

09/05 22:23, , 1F
補充...變數都變成三角函數了~~就已經不是多項式了
09/05 22:23, 1F

09/05 22:23, , 2F
你又怎麼能說明他還有三個根呢
09/05 22:23, 2F

09/05 22:23, , 3F
若他還是多項式 你又如何確認他一定有三個實跟呢
09/05 22:23, 3F

09/06 10:37, , 4F
應該說我希望找到這非多項式的第二個根 但我不知道他總共
09/06 10:37, 4F

09/06 10:37, , 5F
有幾個根 但從圖上知至少有第二個根
09/06 10:37, 5F
文章代碼(AID): #1EPDh88h (MATLAB)
文章代碼(AID): #1EPDh88h (MATLAB)