найти одну переменную с точки зрения другой в MATLAB - PullRequest
0 голосов
/ 24 октября 2018

Все, что я хочу, это написать p в терминах k и L для приведенных ниже уравнений:

eqn1 = (p1-2*k*L/3)*t-k*L*a/3==0;
eqn2 = k*L*t/3-(p2-2*k*L/3)*a ==0;

, тогда я сказал

solve([eqn1, eqn2], [p,p]) 

, но это дало ошибку при использовании pдважды

Я также попробовал:

A = [p-2*k*L/3, -k*L/3; k*L*t/3, p-2*k*L/3];
B = [t; a];
X = linsolve(A,B);

, и это дало мне полностью длинное решение для X, которое не отображает p в терминах k и L

правильное решениеЯ хочу это

p = kL/3

, а также p = kL

, это то, что я хочу, чтобы это отображалось.(к этому я уже знаю решение, но следующую проблему я не буду знать .. поэтому я должен научиться это делать) ... как я могу это сделать?

1 Ответ

0 голосов
/ 25 октября 2018

Для решения общих систем линейных уравнений см. Документацию https://de.mathworks.com/help/symbolic/solve-a-system-of-linear-equations.html

Относительно ваших уравнений: с заменой p1 и p2 на p каждое уравнение является линейным по p с решениями

s1= solve(eqn1,p)
s1 =
    (L*a*k + 2*L*k*t)/(3*t)
s2= solve(eqn2,p)
s2 =
    (2*L*a*k + L*k*t)/(3*a)

Таким образом, если рассматривать переменные L, a, k, t, не будет одновременного решения обоих уравнений.Символическая панель инструментов дает пустой результат:

s = solve([eqn1,eqn2],p)
s =
    Empty sym: 0-by-1

Кажется, что у вас есть предположения относительно a и t: если вы подставите p = KL / 3 в уравнения, вы получите

subs(eqn1,p,k*L/3)
ans =
    - (L*a*k)/3 - (L*k*t)/3 == 0
subs(eqn2,p,k*L/3)
ans =
    (L*a*k)/3 + (L*k*t)/3 == 0

что дает условие t = -a.Итак: что такое системы уравнений, для каких переменных вы хотите решить?Похоже на пересечение двух линий?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...