2013-10-06 117 views
0

我有一套方程式的麻煩。 我:在Matlab中如何替換變量?

x' = f(t, x, u) - it's a set of equations - dimension n 
x1' = .. 
x2' = .. 
x3' = .. 

,我有U形 - 這是一個向量(U1,U2,U3 ..)

我怎麼能在我的方程組代替這款U? 例如:

x1' = sin(t) * u1 + sin(u2) 
x2' = u2*x2 

u1 = sin(1000t) 
u2 = cos(1000t) 

,我需要

x1' = sin(t) * sin(1000t) + sin(cos(1000t)) 
      x2' = cos(1000t) * x2 

感謝的。

回答

1

好吧,假設你使用的是象徵性的工具箱:

syms t u1 u2 x2; 
x1prime = sin(t) * u1 + sin(u2); 
x2prime = u2 * x2; 

然後你可以使用方法A或B.方法A:

x1prime = subs(x1prime, [u1 u2], [sin(1000*t) cos(1000*t)]) 
x2prime = subs(x2prime, u2, cos(1000*t)) 

方法B:

u1 = sin(1000*t); 
u2 = cos(1000*t); 
x1prime = subs(x1prime) 
x2prime = subs(x2prime) 

我在Matlab R2011A上測試了這兩種方法。使用最適合你的東西。

+0

這是一個例子。一般情況是怎麼回事? – pandreym

+0

@ user1602627你是什麼意思? –

+0

該系統可能不包含sin(1000 * t)或cos(1000 * t) 它可能是隨機函數u(t)。我需要在系統x'1 = f(t,x,u)中代入u(t)=(u1(t)..un(t))。 – pandreym