[討論] 計算三元方程式求解有疑問

看板MATLAB作者 (※煞氣的56傳說※)時間12年前 (2013/08/05 13:20), 編輯推噓0(0014)
留言14則, 2人參與, 最新討論串1/1
function F=func3(x) F=zeros(3,1); F(1)=1.95+log10(x(1))+1/6*log10(x(2)/423+x(3))-log10(16.316); F(2)=1.95+log10(x(1))+1/6*log10(x(2)/433+x(3))-log10(16.197); F(3)=1.95+log10(x(1))+1/6*log10(x(2)/443+x(3))-log10(16.102); end x = 0.2095 0.5140 0.4264 理論上 x2應該要是1XX 但是這種逼近的方法斯乎找不到正確的解答 大大可以幫忙解惑嗎 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.114.46.174

08/05 15:45, , 1F
等等...x到底式輸入端還是輸出端?
08/05 15:45, 1F

08/05 22:48, , 2F
X為輸出端 我就是要解出X(1) X(2) X(3)
08/05 22:48, 2F

08/06 08:52, , 3F
因為這樣看我會覺得x是輸入端,而F才是輸出端
08/06 08:52, 3F

08/06 08:59, , 4F
那可以順便附上F的結果嗎?搞不好F可以找到一些線索
08/06 08:59, 4F
其實是要解出這一個三元的方程式 1.95+log(x)+1/6*log(y/423+z)=log(16.316) 1.95+log(x)+1/6*log(y/433+z)=log(16.197) 1.95+log(x)+1/6*log(y/443+z)=log(16.102) 求出X Y Z 不過用程式跑出來的答案 不太準確 1.95+log(x)+1/6*log(y/B+z)=log(A) X Y Z求出後 是要利用代入一B值 求出相對應的A 但是跑出來的答案 根本不能用 比如說 改變B值 423 433 A值都一樣 ※ 編輯: kalpavastar : 140.114.46.174 (08/06 10:15) ※ 編輯: kalpavastar 來自: 140.114.46.174 (08/06 10:18)

08/06 13:42, , 5F
嗯,剛剛用其他方式去試,好像還真的解不出來
08/06 13:42, 5F

08/06 13:43, , 6F
有沒有考慮把log去掉再做?
08/06 13:43, 6F

08/06 13:50, , 7F
剛剛試過了,就算把log去掉好像還是沒辦法解,所以正規
08/06 13:50, 7F

08/06 13:51, , 8F
做法應該是沒辦法解
08/06 13:51, 8F

08/06 13:55, , 9F
所以你用的方法是不是forward modeling?
08/06 13:55, 9F

08/06 13:56, , 10F
因為剛剛仔細看MATLAB是回我"沒有明確解"
08/06 13:56, 10F
是阿 解方程式 用FSOLVE或其他方法都沒解答 手算的話又都解不算不出來 本身不是很了解MATLAB 不知道這題可不可以算得出來q_q ※ 編輯: kalpavastar 來自: 140.114.46.174 (08/06 16:27)

08/06 18:05, , 11F
因為人家matlab都已經告訴你沒有明確解了,手算會算出來
08/06 18:05, 11F

08/06 18:05, , 12F
反而有鬼XD
08/06 18:05, 12F

08/06 18:06, , 13F
有可能需要用一些數值分析的方法吧
08/06 18:06, 13F

08/06 18:06, , 14F
然後這部分小弟我可能幫不上忙m(_ _)m
08/06 18:06, 14F
文章代碼(AID): #1H_pOtA0 (MATLAB)