[問題] 解方程式 如何只保留實數的解已回收

看板MATLAB作者 (明日幸福今日修)時間13年前 (2011/03/31 10:30), 編輯推噓4(405)
留言9則, 2人參與, 最新討論串1/3 (看更多)
大家好 小弟在解一個方程式 他有三個根 有實有虛 如何只取實數的根呢 syms P A B K T x; solve('((3-x)/(x))*(((A-2*x)/(1-A+2*x))^2)=(P^0.5)*K', x) 其中 只有x是未知 其他都是已知 目前的做法是 solve('((3-x)/(x))*(((A-2*x)/(1-A+2*x))^2)=(P^0.5)*K', x) 會跑出三種解(用 P A B K T等表示) 其中有兩個解的表示式裡面有i 所以我就只取第一種 不過當給訂的 P A B K T有變化時 還是會有虛數解出現 請問有沒有辦法限制只取出實數且 3>x>0的解呢 另外 當方程式變成 syms P A B K T x; solve('((3-x)/(x))*(((A-2*x)/(1-A+2*x))^2)*exp(B*x/T)=(P^0.5)*K', x) 執行顯示 ans = [ empty sym ] 應該是無解的意思吧 即使我B給0 理論上就跟第一個方程是一樣 他還是不能解 想請問這類的方程該怎麼處理呢 非常感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 131.215.220.183

04/01 01:25, , 1F
實數根我會用fzero內插出實數解
04/01 01:25, 1F

04/01 09:15, , 2F
有兩個是共軛解的話,剩下那個應該就是實數解囉
04/01 09:15, 2F

04/01 09:16, , 3F
既然是實係數方程式的話
04/01 09:16, 3F

04/01 09:18, , 4F
你這是先解(近似)解析解再代入數值變成數值解
04/01 09:18, 4F

04/01 09:19, , 5F
有可能解析解就先出不來了(matlab符號解不是特強)
04/01 09:19, 5F

04/01 09:19, , 6F
如果可以接受的話數值先代進去直接try各種數值方法解吧
04/01 09:19, 6F

04/01 19:17, , 7F
很難..................代數解的話
04/01 19:17, 7F

04/01 19:18, , 8F
因為代數解出來的實虛會隨方程式變化
04/01 19:18, 8F

04/01 19:18, , 9F
有時候是實數~~~變數一變又變成虛數了
04/01 19:18, 9F
文章代碼(AID): #1Da-TXKB (MATLAB)
文章代碼(AID): #1Da-TXKB (MATLAB)