我需要在一個方程組上運行簡單的蒙特卡羅變係數。我需要每次記錄其中一個變量的解算係數。MATLAB如何在符號方程系統解決方案中訪問特定係數?
以下得到我從單次運行的結果:
syms alpha gamma Ps Pc beta lambda Pp Sp Ss Dp Ds;
eq1 = -Ss + alpha + 0.17*Ps - 1*Pc;
eq2 = -Sp + beta + 0.2*Pp;
eq3 = -Ds + gamma - 0.2*Ps + 1*Pp;
eq4 = -Dp + lambda - 0.17*Pp + 1*Ps;
eq5 = Ss - Ds;
eq6 = Sp - Dp;
ans1 = solve(eq1,eq2,eq3,eq4,eq5,eq6,'Ps','Pp','Ss','Ds','Sp','Dp');
disp('Ps')
vpa(ans1.Ps,3)
disp('Pp')
vpa(ans1.Pp,3)
disp('Ss')
vpa(ans1.Ss,3)
disp('Ds')
vpa(ans1.Ds,3)
disp('Sp')
vpa(ans1.Sp,3)
disp('Dp')
vpa(ans1.Dp,3)
我將改變幾個變量(對PS,PP,和PC),並記錄在PC上係數中的每個所述縮減的形成方程(即在vpa(ans1.xx)
之後出現的Pc上的係數 - 因此在上述情況下,它將是1x6向量[-0.429,-1.16,-1.07,-1.07,-0.232,-0.429,-1.16]
)。
我對MATLAB很陌生,但我確信我可以弄清楚如何實現循環代碼來完成模型迭代。我無法弄清楚的是如何在每次迭代後記錄係數向量。是否有一些「訪問者」每次都會給出每個方程的一個係數? 類似vpa(ans1.ps.coef(pc))
(這是在黑暗中的全面鏡頭,這是錯誤的,但希望你能明白)。
這是偉大的,我覺得我幾乎沒有。我如何將檢索到的Pc每次迭代存儲到矩陣中? (這可能很容易,但我又是新來的matlab)。感謝您的回答! – Trevor
我已經添加了另一個代碼段來進一步解釋它... – bla
謝謝!感謝幫助。 – Trevor