[問題] fsolve 解多元非線性方程組

看板MATLAB作者 (文...)時間10年前 (2015/05/12 12:40), 10年前編輯推噓3(303)
留言6則, 2人參與, 最新討論串1/2 (看更多)
我嘗試用fsolve解多元非線性問題 第一次寫matlab,參考板上之前的討論 原始題目 (A-x-y)(B-x-β) = K1(x-α) (A-x-y)(C-y-α) = K2(y-β) (x-α) (C-y-α) = K3(α+β) (y-β)(B-x-β) = K4(α+β) Constant: K1.K2.K3.K4 input : A.B.C output: α.β.x.y 我寫出來的程式如下 function y=prac(x) y=zeros(1,4); A=30;B=20;C=60; %input parameter K1=2;K2=5.71;K3=3;K4=1.0; %constant y(1)=(A-x(1)-x(2))*(B-x(1)-x(4))-K1*(x(1)-x(3)); y(2)=(A-x(1)-x(2))*(C-x(2)-x(3))-K2*(x(2)-x(4)); y(3)=(x(1)-x(3))*(C-x(2)-x(3))-K3*(x(3)+x(4)); y(4)=(x(2)-x(3))*(B-x(1)-x(4))-K4*(x(3)+x(4)); x01=[1,1,1,1]; % initial guess a=fsolve('prac',x01) y=prac(a) 可是我怎麼跑都是 Error using prac (line 7) Not enough input arguments. 可以幫我看一下怎麼回事嗎? 或是說這個方程組沒辦法用fsolve解? 謝謝 p.s. 我沒有正確解可以驗算,但所有的解應該都是正實數 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.113.15.152 ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1431405619.A.7E3.html ※ 編輯: wen7774 (140.113.15.152), 05/12/2015 12:41:47

05/12 15:15, , 1F
1 2式相除,再把第3式代掉與第4式相比,可得K1*K3/K2=1 ?
05/12 15:15, 1F

05/12 21:52, , 2F
第4式第1項是(y-β)還是(y-α) ?
05/12 21:52, 2F

05/13 09:46, , 3F
第4式第1項是(y-β),但K是常數,這樣方程式會變相依嗎?
05/13 09:46, 3F

05/13 09:48, , 4F
這題的物理意義上確實是K1*K3/K2=K4=1
05/13 09:48, 4F

05/13 13:16, , 5F
你程式第4式第1項錯了,K1*K3/K2也不為1
05/13 13:16, 5F

05/14 14:32, , 6F
我再檢查一下問題在哪裡,謝謝S大
05/14 14:32, 6F
文章代碼(AID): #1LKOGpVZ (MATLAB)
文章代碼(AID): #1LKOGpVZ (MATLAB)