【发布时间】:2013-01-04 01:23:17
【问题描述】:
我需要在方程组上运行一个简单的蒙特卡罗变系数。我每次都需要记录其中一个变量的求解系数。
以下是我一次运行的结果:
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 上的系数@--so在上述情况下,它将是一个 1x6 向量 [-0.429,-1.16,-1.07,-1.07,-0.232,-0.429,-1.16])。
我对 MATLAB 非常陌生,但我确信我可以弄清楚如何实现循环代码来进行模型迭代。我想不通的是如何在每次迭代后记录系数向量。是否有一些“访问器”每次都会给我每个方程的一个系数?
vpa(ans1.ps.coef(pc)) 之类的东西(完全是在黑暗中拍摄,这是错误的,但希望你能明白)。
【问题讨论】:
标签: matlab montecarlo symbolic-math