2013-10-06 3 views
0

У меня проблема с набором уравнений. у меня есть:Как заменить переменную в Matlab?

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

и у меня есть и - это вектор (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). и мне нужно заменить u (t) = (u1 (t) .. un (t)) в системе x'1 = f (t, x, u). – pandreym

Смежные вопросы