Re: [問題] 如何用fzero拿多根已回收
※ 引述《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
討論串 (同標題文章)