Mathematica не может решить систему, используя коэффициенты - PullRequest
0 голосов
/ 06 июня 2018

Я пытаюсь решить уравнение с заданным входным значением, чтобы Mathematica могла обработать ответ и выдать результат.Однако, когда я пытаюсь это сделать, мне не нравится приведенное мной уравнение:

Solve[(Exp[2 h] - 1 - 2 h)/(5 h^2) == 0.1, h]

Solve was unable to solve the system with inexact coefficients or the system obtained by direct rationalization of inexact numbers present in the system. Since many of the methods used by Solve require exact input, providing Solve with an exact version of the system may help.

Solve[(-1 + E^(2 h) - 2 h)/(5 h^2) == 0.1, h]

Если не удается найти решение, отображается ошибка «Solve ::ex» , в которой показан текст выше.Я не уверен, должен ли я быть более определенным с моими входными аргументами.Я пытаюсь установить h на 0,1 (и другие значения, такие как 002, -0: 0001, -0: 00002) и получить десятичное значение.Использование NSolve также не дает результата.

1 Ответ

0 голосов
/ 07 июня 2018

Solve обычно лучше при полиномиальных проблемах и не так хорошо при трансцендентных.Reduce часто лучше в трансцендентных проблемах, но он также утверждает, что не может взломать это.Итак, следующее, что я делаю, это

Plot[{(Exp[2 h] - 1 - 2 h)/(5 h^2), 0.1 },{h,-5,3}]

, и это говорит мне, что ваша функция хорошо себя ведет и имеет решение около -3.

FindRoot часто очень агрессивен при поискекорни, если ему дают хорошо себя вести проблему и хорошее начальное предположение.Таким образом,

h/.FindRoot[(Exp[2 h] - 1 - 2 h)/(5 h^2) == 0.1 ,{h,-3}]

почти мгновенно говорит мне, что единственный (настоящий) корень около -3,41498

Этот метод должен одинаково хорошо работать для других положительных значений в правой части вашего уравнения,возможно, даже с очень грубыми оценками того, что может быть.Для отрицательных значений справа я подозреваю, что у вас могут быть другие проблемы.Вы можете использовать Plot, чтобы исследовать это, прежде чем пытаться использовать FindRoot

...