2016-01-27 2 views
0

У меня проблема с решением системы уравнений. У меня есть три уравнения с известным решением и три неизвестных в каждом уравнении. Однако, когда я использую функцию solve в MATLAB, она возвращает с ошибкой, что у меня есть шесть уравнений и три переменные.Использование решающей функции MATLAB для нахождения решения системы уравнений

Фрагмент моего кода:

syms V0 T0 X0 
A=(g*X0/(2*V0^2*cos(T0)^2)-tan(T0))==a; 
B=(tan(T0)-g*X0/(V0^2*cos(T0)^2))==b; 
C=(-g/(2*V0^2*cos(T0)^2))==c; 

soln=solve([A,B,C],[V0,T0,X0]); 

Я уже вычислили скалярные значения a, b и c. g - постоянная. Я не уверен, почему он возвращает, что у меня есть шесть уравнений.

+0

Предоставьте исполняемый код, который определяет 'a',' b' и т. Д. Также отредактируйте, чтобы точно указать, что происходит с ошибкой. И наконец, какую версию «Matlab» вы используете? Вы смотрите на документацию для своей версии или онлайн? Если у вас есть старая версия, вам нужно будет использовать 'solve (A, B, C, V0, T0, X0);', который отлично работает и в последней версии. – horchler

ответ

0

V0^2 означает его квадратичное уравнение. Вы можете решить для V0^2 как переменную. Положим V0^2 = J0 и решим вместо J0.

soln=solve([A,B,C],[J0,T0,X0]); 

Тогда его три линейных уравнения с тремя переменными.

Как только вы получите значение J0, вам необходимо решить для V0^2 = J0.

+0

Я только что понял еще одну вещь. Вам нужно преобразовать cos (T0)^2 в sec (T0)^2 и затем преобразовать его в tan (T0)^2. Затем вы должны получить весь заголовок (T0) в один тип - либо tan T0, tan2T0, либо TanTo^2. Затем вам нужно установить W0, равный типу Tan T0, и решить уравнение, используя Soln = solve [A, B, C], [J0, W0, Xo] – Maertin

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