Решение "буквенных" уравнений в Wolfram|Alpha

Задача "выразить х из уравнения (с несколькими неизвестными)" встречается довольно часто. Ее можно рассматривать, как решение уравнения с буквенными коэффициентами. Поэтому логично, что Wolfram|Alpha использует для решения таких "буквенных" уравнений запрос solve, который обычно служит для решения уравнений с одним неизвестным.

Вот простой пример такой задачи.

Дано:



Найти x.

Запрос solve применительно к этому уравнению дает такой результат:

solve 2x+3y-1=0



Здесь Wolfram|Alpha отдает приоритет отысканию переменной y. Возможно, полагая, что y это - функция, а x - ее аргумент? Кстати, тот же самый результат дает и запрос solve 2x+3y-1.

Если же из данного уравнения нужно найти именно х, то это следует указать явно. И вот, каким образом:

solve 2x+3y-1 for x



При этом, в отличие от первого варианта, здесь Wolfram|Alpha дает возможность посмотреть пошаговое решение задания с подробным текстовым комментарием:



(Эта замечательная особенность Wolfram|Alpha уже обсуждалась в одном из предыдущих постов Математика с Wolfram|Alpha: шаг за шагом...)


Итак, рассмотренный выше пример уже дает представление о том, как легко Wolfram|Alpha справляется с "буквенными" уравнениями. Однако, пойдет ли дело так же гладко, если вместо x и y взять другие буквы?

Запрос solve 2a+3b-1 дает следующее:



Однако, абсолютно аналогичный по структуре запрос solve 2n+3m-1 выводит совсем другой результат:



Конечно же! Логика здесь есть: Wolfram|Alpha по умолчанию считает неизвестным то, что обозначено буквой, расположенной ближе к концу алфавита. Но, если вы не уверены в своем знании английского алфавита, тогда, решая в Wolfram|Alpha буквенное уравнение, лучше каждый раз явно указывать неизвестную величину.

Естественно, теперь возникает вопрос: а что будет, если взять уравнение, которое содержит не два буквенных обозначения, а больше? Например, такое:



Как и следовало ожидать, здесь Wolfram|Alpha по запросу solve (без указания неизвестного) выводит решение квадратного уравнения относительно x:

solve a*x^2+b*x+c*b^2=0



Если же из данного уравнения нужно найти b, то запрос должен быть таким:

solve a*x^2+b*x+c*b^2=0 for b



Аналогичным образом следует поступить, если ищем c:

solve a*x^2+b*x+c*b^2=0 for c



Также ясно, что решение кубического уравнения



даст запрос solve a*x^3+b*x^2+c*x+d



А вот, если нас интересует, как выражается из данного уравнения a, то запрос формулируем иначе:

solve a*x^3+b*x^2+c*x+d=0 for a



Под конец, хочется задать Wolfram|Alpha вопрос посложнее. Например, сможет ли система решить такое "буквенное" уравнение?



Запрос solve без явного указания неизвестного выводит решение этого уравнения относительно z:

solve a-(a-e*((x*v-a*(w+x))/(w*x)))=e*(((a-e*((x*v-a*(w+x))/(w*x)))(y+z)-z*v)/(y*z))



Если же нужно найти, к примеру, w, тогда, естественно, получим:



Что же касается решения трансцендентных "буквенных" уравнений, то все зависит от вида конкретного уравнения. Если уравнение допускает аналитическое решение, тогда это решение получается точно так же, как и ранее. Если же нет, тогда, по-возможности, Wolfram|Alpha выдает неявное решение в графическом виде.

Рассмотрим несколько типичных примеров.

solve cos(x)-sin(y)=y^2



solve sin(x)-cos(y)=y



solve sin(x)-cos(y^2)+x=0 for y



Некоторые решения оказываются довольно неожиданными и по-своему красивыми:

solve sin(x)-cos(y)+xу=0 for y



solve sin(x)-cos(y)+x^2=0 for x



solve sin(x)-cos(y)+log(x)=0 for x



solve sin(x)-cos(y)+log(y)=0



solve sin(x)-cos(y)+e^x=0



solve sin(x)-cos(y)+x^y=0



И т.д. и т.п.