小弟正在做數值分析,需要跑非線性聯立方程式,方程如下:
θ m/p=σβ x/(1+μ)+(1-σ)θβ m/p 1/(1+μ) (1)
h=[A/((1-α) k_c^( α) (μ m/p) ) x/θ]^(-1/α) (2)
1/(1-α) q^(1/(1-α)) k_d^(-α/(1-α)) (μ m/p)^(-η/(1-α))=θ m/p 1/x (3)
1=β(1-δ_d )+σαβ m/p 1/k_d (4)
θ=β α k_c^( α-1) h^(1-α) (μ m/p)^η+(1-δ_c )β (5)
k_c+k_d=k_c^α h^(1-α) (m/p μ)^η+(1-δ_c ) k_c+(1-δ_d ) k_d-x (6)
m/p 1/(k_c^( α) h^(1-α) (μ m/p)+σ m/p)=0.16 (7)
有七條方程式要解六個變數,
小弟的寫法如下
syms A rm x k_c k_d q
alpha=0.3
phi=0.3
beta=0.952
delta=0.025
sigma=0.3
mu=0.04
theta=0.941
h=0.33
eta=0.25
eq_x=theta*rm-sigma*beta*(x/(1+mu))-(1-sigma)*beta*beta*rm*(1/(1+mu))
eq_h=(A*x/((1-alpha)*k_c^alpha*(mu*rm)*theta))^(-1/alpha)-h
eq_q=theta*(rm/x)-((1/1-alpha)*q^(1/(1-alpha))*k_d^(-alpha/(1-alpha)*(mu*rm)^(-eta/(1-alpha))))
eq_rm=beta*(1-delta)+sigma*alpha*beta*rm*(1/k_d)-1
eq_kc=beta*alpha*k_c^(alpha-1)*h^(1-alpha)*(mu*rm)^eta+(1-delta*beta)-theta
eq_kd=k_c^alpha*h^(1-alpha)*(mu*rm)^eta+(1-delta)*k_c+(1-delta)-x-k_c-k_d
eq_theta=rm/(k_c^alpha*h^(1-alpha)*(mu*rm)^eta+sigma*rm)-0.16
[x,h,q,rm,kc,kd=fsolve(eq_x,eq_h,eq_q,eq_rm,eq_kc,eq_kd,eq_theta)
最後出現這結果
Error using fsolve
Too many output arguments.
Error in mat7 (line 18)
[x,h,q,rm,kc,kd,theta]=fsolve(eq_x,eq_h,eq_q,eq_rm,eq_kc,eq_kd,eq_theta)
請熟悉matlab的高手大大看一下那兒出錯指點嗎?謝謝。