我需要在方程组上运行一个简单的蒙特卡洛变量系数。我每次都需要记录其中一个变量的求解系数。
以下是一次运行的结果:
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 上的系数(即,在之后出现的 Pc 上的系数vpa(ans1.xx)
- 所以在上述情况下,它将是一个 1x6 向量[-0.429,-1.16,-1.07,-1.07,-0.232,-0.429,-1.16]
)。
我对 MATLAB 很陌生,但我确信我可以弄清楚如何实现循环代码来进行模型迭代。我想不通的是如何在每次迭代后记录系数向量。是否有一些“访问器”每次只给我每个方程的一个系数?类似的东西vpa(ans1.ps.coef(pc))
(这完全是在黑暗中拍摄,这是错误的,但希望你明白)。