Раствор экстракта wxMaxima из «solve»

#wxmaxima

Вопрос:

У меня есть следующий код, который отлично работает до предпоследней инструкции.

 (%i17) M_A;  (%o17) [500.0,-0.22*F_Bz-750.0,0.22*F_By-105.0]  (%i18) solve(M_A[2]);  rat: replaced -750.0 by -750/1 = -750.0  rat: replaced -0.22 by -11/50 = -0.22  (%o18) [F_Bz=-37500/11]  (%i19) solve(M_A[3]);  rat: replaced -105.0 by -105/1 = -105.0  rat: replaced 0.22 by 11/50 = 0.22  (%o19) [F_By=5250/11]  (%i20) F_Br : sqrt(F_By^2 F_Bz^2);  (%o20) sqrt(F_Bz^2 F_By^2)  (%i21) float(%);  (%o21) sqrt(F_Bz^2 F_By^2)  

как я могу получить численный ответ для %i20.

Выход wxMaxima

Комментарии:

1. Попробуй subst(append(%o18, %o19), F_Br); .

2. @RobertDodier он печатает только F_Br, ничего ему не присваивая

3. Тем временем я попробовал: tmp1 : M_A[2]; что производит -0.22*F_Bz-750.0 , то tmp2 : solve(tmp1); производит [F_Bz=-37500/11] , наконец tmp3 : rhs(%); , выплевывает 0 вместо -37500/11. Как я могу получить -37500/11, назначенный tmp3

4. Я не уверен, что понимаю, что вы имеете в виду, когда говорите: «он печатает только F_Br, ничего ему не присваивая» — я попробовал предложенную мной идею, и, похоже, она возымела желаемый эффект. Может быть, вы сможете показать входные данные, которые вы пробовали.

5. О tmp3 , обратите внимание, что % это список с одним элементом, который представляет собой уравнение. Я думаю tmp3: rhs(%[1]); , то есть получить первый (и единственный) элемент, а затем взять его значения, будет иметь эффект, которого вы ожидали.

Ответ №1:

Вот что я получаю, когда пытаюсь подставить решения уравнений в выражение для F_Br . Смотри %i7 и %o7 .

 (%i3) M_A:[500.0,(-0.22)*F_Bz-750.0,0.22*F_By-105.0] (%o3) [500.0, (- 0.22 F_Bz) - 750.0, 0.22 F_By - 105.0] (%i4) s1:solve(M_A[2])  rat: replaced -750.0 by -750/1 = -750.0  rat: replaced -0.22 by -11/50 = -0.22  37500 (%o4) [F_Bz = - -----]  11 (%i5) s2:solve(M_A[3])  rat: replaced -105.0 by -105/1 = -105.0  rat: replaced 0.22 by 11/50 = 0.22  5250 (%o5) [F_By = ----]  11 (%i6) F_Br:sqrt(F_By^2 F_Bz^2)  2 2 (%o6) sqrt(F_Bz   F_By ) (%i7) subst(append(s1,s2),F_Br)  750 sqrt(2549) (%o7) --------------  11 (%i8) float(%) (%o8) 3442.337880372093