присвоение переменной результата решения уравнения

Форум пользователей пакета Mathematica

Модератор: Admin

Kju
Сообщения: 9
Зарегистрирован: Вс сен 20, 2009 1:33 pm

присвоение переменной результата решения уравнения

Сообщение Kju » Ср ноя 05, 2014 12:09 pm

Если есть такие определения

Eq1=FindRoot[2x == 10, {x, 1}]

g:=3*x

то для того, чтобы подставить в g результат решения уравнения Eq1, мне достаточно выполнить

g/.Eq1

Ответ выдается правильный.

Вопрос такой: а что делать, если у меня есть два уравнения: Eq1 и Eq2, и, соответственно, два решения - x1 и x2, а величина g зависит от них обеих?

Код

g/.{x1->Eq1,x2->Eq2}

не срабатывает. Вместо подстановки чисел он переписывает выражение для g, в которое подставляет правило. Вот пример:

Eq1 = FindRoot[2 x1 == 10, {x1, 1}]
Eq2 = FindRoot[7 x2 == 14, {x2, 1}]

g := 3*x1 + 2*x2

g /. {x1 -> Eq1, x2 -> Eq2}

На это выдается ответ

{3 (x1 -> 5.) + 2 (x2 -> 2.)}.

Подскажите, пожалуйста, на чем я спотыкаюсь?