Как найти решение уравнения в wolfram mathematica

Использование Wolfram Mathematica в решении дифференциальных уравнений

Саратовский национальный исследовательский государственный университет имени Н.Г. Чернышевского

NovaInfo55, с. 5-9
Опубликовано 20 ноября 2016
Раздел: Физико-математические науки
Просмотров за месяц: 51
CC BY-NC

Видео:12.01 Решение систем ДУ в Wolfram MathematicaСкачать

12.01 Решение систем ДУ в Wolfram Mathematica

Аннотация

В статье рассматриваются примеры решения обыкновенных дифференциальных уравнений в системе Wolfram Mathematica.

Видео:КиЯ 0.18 | Решение уравнения и отображение его корней в Wolfram LanguageСкачать

КиЯ 0.18 | Решение уравнения и отображение его корней в Wolfram Language

Ключевые слова

Видео:Wolframalpha : решение любых задач для студента по алгебре, вышке, физике, дифференциальные ур. и прСкачать

Wolframalpha : решение любых задач для студента по алгебре, вышке, физике, дифференциальные ур. и пр

Текст научной работы

Системы компьютерной математики (Maple, Mathematica, MatLab, Derive и др.) применяются в различных областях науки. Они содержат процедуры для численных и аналитических расчетов, средства программирования, визуализации. В настоящее время пакеты прикладных программ используются не только при решении численных задач, но и при доказательстве теорем. Системы компьютерной математики используются в решении математических проблем в работах Д.С. Воронова, О.П. Гладуновой, Е.С. Корнева, М.В. Куркиной, Е.Д. Родионова, Я.В. Славолюбовой, В.В. Славского, Н.К. Смоленцева, Л.Н. Чибриковой и др.

Система компьютерной математики Wolfram Mathematica является одним из наиболее распространенных программных средств, которое позволяет выполнять численные, символьные вычисления, имеет развитую двумерную и трехмерную графику, а также встроенный язык программирования высокого уровня. Для знакомства с языком программирования Wolfram Language рекомендуется интернет-ресурс Wolfram Language & System «Documentation Center» (http://reference.wolfram.com/language/). Выбирая раздел, можно познакомиться с имеющимися командами для решения задач и с примерами их использования. Примеры использования Mathematica в решении геометрических задач приведены в 1.

Система Mathematica обладает обширными возможностями решения обыкновенных дифференциальных уравнений и их систем в символьном виде. Для этого используется функция DSolve, в алгоритме которой реализовано большинство известных на сегодняшний день аналитических методов.

Пример 1. Решим дифференциальное уравнение и построим график решений при различных значениях постоянной.

Как найти решение уравнения в wolfram mathematica

Как найти решение уравнения в wolfram mathematica

Пример 2. Решим уравнение y’=frac

Попытаемся решить уравнение с помощью функции DSolve:

Как найти решение уравнения в wolfram mathematica

В данном случае функция DSolve не может решить нелинейное уравнение. Поэтому запишем уравнение в виде:

и будем интегрировать обе части уравнения:

Как найти решение уравнения в wolfram mathematica

Следовательно, общее решение уравнения примет вид

-(-2+y^2)cos y+2ysin y=x-10ln (1-x)+13ln(2-x)+C

Пример 3. Решим дифференциальное уравнение и построим поле направлений и график решения уравнения при различных значениях константы.

Как найти решение уравнения в wolfram mathematica

Построим таблицу решений, заменив С[1] на a, где a изменяется от -2 до 2 с шагом 0,5:

Как найти решение уравнения в wolfram mathematica

Отобразим два графика одновременно и покажем, что векторы поля направлений являются касательными к решениям дифференциального уравнения:

Как найти решение уравнения в wolfram mathematica

Система Wolfram Mathematica используется для решения дифференциальных уравнений не только в математике, но и актуальна в других научных областях. Ее можно применять и в механике, в частности, для решения различных постановок задач, где в качестве математических объектов используются дифференциальные уравнения. В работах [6,7] рассмотрены уравнения движения мембран и акустических сред в виде обыкновенных дифференциальных уравнений. Для их решения может быть использована система компьютерной математики Wolfram Mathematica.

Видео:Язык Wolfram Mathematica с нуля | #1 Первая программа на wolfram.Скачать

Язык Wolfram Mathematica с нуля | #1 Первая программа на wolfram.

Читайте также

Математическая подготовка студентов в вузе в контексте будущей профессиональной деятельности

Использование прикладных программ при изучении математической статистики

Применение систем компьютерной математики при изучении комплексного анализа

Организация самостоятельной работы студентов в условиях информационно-образовательной среды вуза

Системы компьютерной математики в решении дифференциальных уравнений

Видео:Новое в Wolfram Language | Аналитическое решение уравнений в частных производныхСкачать

Новое в Wolfram Language | Аналитическое решение уравнений в частных производных

Список литературы

  1. Букушева А.В. Использование Mathematica для описания геометрии динамических систем // Математика и ее приложения: фундаментальные проблемы науки и техники : сборник трудов всероссийской конференции, Барнаул, 24 — 26 ноября 2015. — Барнаул : Изд-во Алт. ун-та, 2015. С. 248-249.
  2. Букушева А.В. Применение Wolfram Language для выделения специальных классов почти контактных метрических структур // Компьютерные науки и информационные технологии : Материалы Междунар. науч. конф. — Саратов : Издат. центр.»Наука», 2016. С. 105-107.
  3. Букушева А.В. Использование систем компьютерной математики для решения геометрических задач сложного уровня // Информационные технологии в образовании: Материалы VI Всероссийской научно-практической конференции. – Саратов: ООО «Издательский центр «Наука»». 2014. – С. 76-77.
  4. Букушева А.В. Решение учебно-исследовательских задач с использованием систем компьютерной математики // Информационные технологии в образовании: Материалы VII Всеросс. научно-практ. конф. – Саратов: ООО «Издательский центр «Наука»», 2015. С.185-187.
  5. Букушева А.В. Учебно-исследовательские задачи в продуктивном обучении будущих бакалавров-математиков // Образовательные технологии. 2016. №2. С. 16-26.
  6. Вельмисова А.И. Распространение и отражение гармонических волн в плоском акустическом слое с гибкими стенками в случае разрыва упругих свойств на одной из стенок // Математика. Механика: Сб. науч. тр. Саратов: Изд-во Сарат. ун-та, 2010. Вып.12. С. 136-140.
  7. Вельмисова А.И., Вильде М.В., Кириллова И.В. Распространение и отражение гармонических волн в плоском акустическом слое с кусочно-неоднородными гибкими стенками // Известия Саратовского университета. Новая серия. Серия: Математика. Механика. Информатика. 2011. Т.11. №4. С. 68-73.

Видео:Wolfram Mathematica - 7. Решаване на СЛАУСкачать

Wolfram Mathematica - 7. Решаване на СЛАУ

Цитировать

Зинина, А.И. Использование Wolfram Mathematica в решении дифференциальных уравнений / А.И. Зинина. — Текст : электронный // NovaInfo, 2016. — № 55. — С. 5-9. — URL: https://novainfo.ru/article/8754 (дата обращения: 25.02.2022).

Видео:Решение уравнений с помощь Solve WolframСкачать

Решение уравнений с помощь Solve Wolfram

Поделиться

Электронное периодическое издание зарегистрировано в Федеральной службе по надзору в сфере связи, информационных технологий и массовых коммуникаций (Роскомнадзор), свидетельство о регистрации СМИ — ЭЛ № ФС77-41429 от 23.07.2010 г.

Соучредители СМИ: Долганов А.А., Майоров Е.В.

Видео:Новое в Wolfram Language | Аналитическое решение уравнений в частных производных | Колебание струныСкачать

Новое в Wolfram Language | Аналитическое решение уравнений в частных производных | Колебание струны

7. Уравнения и системы уравнений

Уравнения и системы уравнений

Многие математические задачи сводятся к решению в общем случае нелинейных уравнений вида f(x) = 0 или f(x) = expr.

В системе Mathematica они обозначаются как eqns (от слова equations — уравнения). Разумеется, могут решаться и системы, состоящие из ряда таких уравнений.

Для решения уравнений (как одиночных, так и систем) в численном и символьном виде Mathematica имеет функцию Solve:

  • Solve [eqns, vars] — предпринимает попытку решить уравнение или систему уравнений eqns относительно переменных vars;
  • Solve [eqns, vars, elims] — пытается решать уравнения eqns по переменным vars, исключая переменные elims.

Входные параметры этой функции могут быть представлены списками или записаны выражениями через объединительный знак«&&». В eqns в качестве знака равенства используется знак «= =». Примеры применения функции Solve представлены на рис. 4.12.

Как найти решение уравнения в wolfram mathematica

Рис. 4.12. Примеры решения уравнений

Обратите внимание на то, что в определенных ситуациях система подсказывает тонкости решения, выдавая предупреждающие сообщения. Если такие ситуации не являются ошибками, препятствующими решению, то полученное решение выводится в ячейку вывода.

Решение систем нелинейных уравнений в символьном виде

Приведенные на рис. 4.13 примеры показывают решение систем нелинейных уравнений с помощью функции Solve.

Достаточно характерен пример с применением функции N. Если убрать в нем функцию N, то будет получен чрезвычайно громоздкий, хотя и точный результат (проверьте это сами, поскольку размеры результата делают нецелесообразным его приведение в книге). Функция N осуществляет выполнение всех промежуточных вычислений, благодаря чему результат получается вполне обозримым и представленным в комплексных числах.

В последнем примере рис. 4.13 получен набор из пяти пар корней, определенных через функцию Root. Эта функция, в свою очередь, означает вычисление корней полиномиального уравнения пятой степени. Данный пример, как и ранее приводимые решения кубического уравнения, является наглядной иллюстрацией того, что простота нелинейных уравнений порой оказывается весьма обманчивой, а их решение порой приводит к весьма громоздким и сложным результатам. Тем не менее, возможность решения отдельных нелинейных уравнений и их систем в символьном виде трудно переоценить. К сожалению, далеко не все уравнения имеют такие решения — многие можно решать только в численном виде.

Как найти решение уравнения в wolfram mathematica

Рис. 4.13. Примеры решения систем нелинейных уравнений

Не следует полагать, что Mathematica всегда выдает верное решение систем нелинейных уравнений. На самом деле решение иногда бывает ошибочным. Поэтому в большинстве случаев стоит оформлять решение таким образом, чтобы обеспечить его проверку. Для этого рекомендуется отдельно задать систему уравнений и результат решения. Тогда проверка легко осуществляется с помощью подстановки. Два примера решения систем уравнений с проверкой решений показаны на рис. 4.14.

В первом примере решение кажется очевидным (равенства выполняются, например, при х=2 и у=3). Однако здесь Mathematica дает сразу три пары решений, и все они оказываются верны, поскольку после подстановки проверка всех равенств возвращает True.

А вот во втором примере проверка дала не совсем обычный результат, что связано с наличием в решении неопределенной переменной а. В таких случаях стоит попробовать упростить решение с помощью функции Simplify, что и показано на рис. 4.14.

Как найти решение уравнения в wolfram mathematica

Рис. 4.14. Примеры решения уравнений с проверкой

Опции функции Solve

С функцией Solve можно использовать ряд опций. Их можно вывести командой Options [Solve]. Ниже описано их назначение:

  • InverseFunctions — указывает, следует ли использовать обратные функции;
  • MakeRules — указывает, должен ли результат быть представлен как объект AlgebraicRulesData;
  • Method — устанавливает алгоритм, используемый для вычисления результата (возможны методы 1, 2 и 3);
  • Mode — задает характер решения уравнения (возможны Generic, Modular и Rational);
  • Sort — устанавливает, нужна ли сортировка результатов;
  • Verif ySolutions — устанавливает, следует ли проводить проверку полученных решений и удаление посторонних решений;
  • WorkingPrecision — устанавливает число цифр промежуточных вычислений (по умолчанию Infinity).

На рис. 4.15 приведены примеры применения функции Solve с опцией Inverse-Functions.

Обратите внимание на то, что последняя система уравнений при отсутствии опции InverseFunctions решается с предупреждением. Она вообще не решается, если эта опция задана как False, и гладко решается при InverseFunctions -> True.

Как найти решение уравнения в wolfram mathematica

Рис. 4.15. Примеры решения уравнений с опцией InverseFunction

То, насколько может влиять на решение опция Method, наглядно показывают примеры, представленные на рис. 4.16.

Как найти решение уравнения в wolfram mathematica

Рис. 4.16. Примеры решения уравнений разными методами

Множество примеров решения систем нелинейных уравнений в символьном виде можно найти в справочной системе Mathematica.

Численное решение уравнений

Многие нелинейные уравнения и системы нелинейных уравнений в принципе не имеют аналитических решений. Однако их решение вполне возможно численными методами. Для численного решения систем нелинейных уравнений используется функция NSolve:

  • NSolve [eqns, vars] — пытается численно решить одно уравнение или систему уравнений eqns относительно переменных vars;
  • NSolve [eqns, vars, elims] — пытается численно решить уравнения eqns относительно vars, исключая переменные elims.

С этой функцией используется единственная опция WorkingPrecision, задающая число верных цифр результата — по умолчанию 16. На рис. 4.17 представлены примеры использования функции NSolve для численного решения уравнений.

Как найти решение уравнения в wolfram mathematica

Риc. 4.17. Примеры численного решения уравнений

Результаты решения с помощью функции NSolve также рекомендуется проверять с помощью подстановки, например, так:

Нетрудно заметить, что в данном случае решение верно.

Поиск корней уравнений

Для вычисления корней полиномиальных уравнений используется функция Roots:

На рис. 4.18 представлены примеры применения функции Roots.

Как найти решение уравнения в wolfram mathematica

Рис. 4.18. Примеры использования функции Roots

Формат выдачи результатов для функции Roots отличается от такового для функции Solve. Поэтому проверку решения подстановкой надо выполнять как в следующем примере:

х == -3.56155 | | х == 0.561553

Для преобразования результата вычислений в список решений (подобный решениям, получаемым с помощью функции Solve) здесь использована функция ToRules.

При затруднениях в решении уравнений с помощью функции Roots можно использовать следующие опции:

True, Eliminate -> False, EquatedTo-> Null,

Modulus -> 0, Multiplicity->1, Quar tics -> True, Using -> True>

Ниже они описаны подробно:

  • Cubics — указывает, следует ли искать явные решения для неприводимых кубических уравнений;
  • EquatedTo — задает выражение для замещения переменной в решении;
  • Modulus — задает промежуточную факторизацию полинома;
  • Multiplicity— устанавливает кратность каждого из корней в конечном результате;
  • Quartics — задает точное решение квадратного уравнения и полинома четвертой степени;
  • Using — указывает какие-либо дополнительные уравнения, которые следует использовать для решения уравнений.

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

Дополнительные функции для решения уравнений

Имеется также ряд дополнительных функций, которые используются описанными ранее функциями и также могут применяться при решении нелинейных уравнений:

  • Auxiliary [v] — применяется модулем Solve для указания того, что переменная v должна использоваться функцией Roots для результирующих решений, но соответствующие значения v не должны быть включены в окончательный ответ;
  • Eliminate [eqns, vars] — исключает переменные vars из системы уравнений eqns;
  • FindRoot [Ihs == rhs, ] — ищет численное решение уравнения Ihs == rhs, начиная с х = x0;
  • MainSolve [eqns] — основная функция для преобразования системы уравнений. Ее вызывают Solve и Eliminate. Уравнения должны быть представлены в форме Ihs == rhs. Они могут объединяться с помощью && и | |. MainSolve возвращает False, если не существует решения уравнений, и возвращает True, если все значения переменных являются решениями. MainSolve перестраивает уравнения, применяя определенные директивы;
  • MainSolve [eqns, vars, elim, rest] — пытается перестраивать уравнения eqns так, чтобы найти решения для переменных vars и исключить переменные elim. Список rest может включаться для указания порядка исключения любых остальных переменных;
  • NRoots [lhs==rhs, var] — возвращает список численных приближений корней полиномиального уравнения;
  • Residue [ехрr, ] — ищет вычет ехрг в точке х = х0;
  • SolveAlways [eqns, vars] — возвращает значения параметров, которые превращают уравнения eqns в тождества для всех значений переменных vars.

Примеры использования некоторых из этих функций показаны на рис. 4.19.

Как найти решение уравнения в wolfram mathematica

Рис. 4.19. Примеры применения дополнительных функций для решения уравнений

В целом надо отметить, что система Mathematica обладает обширными средствами для решения уравнений и их систем. Умение их применять — залог правильного и эффективного решения сложных математических задач, относящихся к классу решения уравнений.

Графическая иллюстрация и выбор метода решения уравнений

При рассмотрении приведенных выше примеров может сложиться благодушное впечатление о том, что решение нелинейных уравнений может производиться автоматически и без размышлений. Но это далеко не так — представленные выше примеры просто подобраны так, что они имеют решение с помощью соответствующих функций.

На самом деле порой даже простые уравнения могут не иметь решения. В сложных случаях очень полезна графическая визуализация решения. В качестве примера на рис. 4.20 показана визуализация вычисления корней квадратного уравнения. В данном случае график функции явно указывает на существование двух действительных корней при х, близких к 0.2 и 2.3. Функция Nsolve без труда находит оба корня.

Как найти решение уравнения в wolfram mathematica

Рис. 4.20. Визуализация решения квадратного уравнения для случая двух действительных корней

А вот на рис. 4.21 показан случай, когда из-за изменения последнего члена квадратичной функции ее график уже не пересекает ось х вообще. Это говорит о том, что решения в виде действительных корней нет. И в самом деле, NSolve находит корни как комплексно-сопряженные числа. Действительная часть найденных корней дает координату х для впадины кривой — параболы.

Если требуется решение равенства f1(х) = f 2 (x), то для графической визуализации решения можно построить графики функций f1(х) и f 2 (лг) — наличие точек их пересечения будет означать существование действительных корней. Этот случай иллюстрирует рис. 4.22. В данном случае проблем с решением нет, поскольку, по существу, решается квадратное уравнение.

Как найти решение уравнения в wolfram mathematica

Рис. 4.21. Визуализация решения квадратного уравнения для случая двух комплексных корней

Как найти решение уравнения в wolfram mathematica

Рис. 4.22. Пример визуализации решения уравнения вида f(x) = 5х + 1

Но вот на рис. 4.23 показан случай решения уравнения f(x) = ехр(х/2). Графики функций ясно показывают, что парабола пересекается экспонентой в двух точках. Однако функция NSolve отказывается решать такое уравнение и выдает сообщение о том, что оно является трансцендентным.

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

Как найти решение уравнения в wolfram mathematica

Рис. 4.23. Пример решения уравнения вида f(x) = ехр(х/2)

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

Получение сразу нескольких корней

Многие уравнения с тригонометрическими функциями могут иметь периодические или близкие к ним решения. К сожалению, функции Mathematica, вычисляющие корни уравнений, не способны в этом случае дать сразу несколько корней. Однако ситуация тут далеко не безнадежна — приведенный ниже пример наглядно показывает это.

Пусть требуется в интервале изменения х от 0 до 20 найти все решения уравнения

График функции, представляющей левую часть уравнения, показан на рис. 4.24. Хорошо видно, что он пересекает ось х семь раз, то есть имеет в интересующем нас диапазоне семь корней.

Как найти решение уравнения в wolfram mathematica

Рис. 4.24. График функции х sin(x) + х/2 — 1 и пример вычисления всех ее корней в интервале изменения х от 0 до 20

Колебательная составляющая функции обусловлена входящей в нее функцией sin(x), которая имеет нули в точках 0, n, 2n, Зn. Однако, как видно из рис. 4.24, эти значения лишь приближенные, ввиду влияния других членов уравнения.

Ключевая идея получения всех корней уравнения заключается в поиске нужных решений с помощью функции FindRoot, которой последовательно подставляются различные начальные приближения. Однако вместо уже испытанного приема — поиска корней поодиночке — можно воспользоваться «таблицей» решений, используя функцию Table. Решение, приведенное под графиком функции на рис. 4.24, наглядно иллюстрирует возможности этого приема — найдены (или, вернее, уточнены) все семь корней исходного уравнения.

Получение неизвестных в явном виде

Читатель, возможно, обратил внимание на то, что решения всех представленных выше примеров выглядят не совсем обычно — в виде списка подстановок. Это не позволяет использовать неизвестные в явном виде, например, для проверки решений или передачи найденных неизвестных в последующие вычислительные блоки. Однако от этого затруднения легко избавиться, если перед конструкций блока решения использовать выражение следующего вида:

Список переменных в этом выражении должен однозначно соответствовать списку неизвестных системы уравнений. Покажем этот прием в действии. Ниже приведено решение системы из трех нелинейных уравнений:

Обратите внимание на то, что вывод списка не дает полученных значений неизвестных. Это связано с тем, что переменные в блоке решения имеют ло-к(1лъный характер и за пределами блока их значения (в том числе неопределенные) сохранятся такими, какими они были до применения в блоке решения.

Теперь зададим решение в ином виде:

Как видите, на сей раз решение получено в виде списка с числами — явными значениями неизвестных. Можно обозначить их как а, Ь и с, получить список и даже использовать их отдельно:

Теперь можно проверить решение данной системы:

Полученный вектор правых частей системы совпадает с заданным, что свидетельствует о правильности решения. Разумеется, вместо нового списка для вектора решения можно было использовать и вектор .

Видео:Математика это не ИсламСкачать

Математика это не Ислам

Как решать уравнения в wolfram mathematica

Видео:Wolfram Mathematica, 9 занятие, весна 2020Скачать

Wolfram Mathematica, 9 занятие, весна 2020

7. Уравнения и системы уравнений

Многие математические задачи сводятся к решению в общем случае нелинейных уравнений вида f(x) = 0 или f(x) = expr.

В системе Mathematica они обозначаются как eqns (от слова equations — уравнения). Разумеется, могут решаться и системы, состоящие из ряда таких уравнений.

Для решения уравнений (как одиночных, так и систем) в численном и символьном виде Mathematica имеет функцию Solve:

  • Solve [eqns, vars] — предпринимает попытку решить уравнение или систему уравнений eqns относительно переменных vars;
  • Solve [eqns, vars, elims] — пытается решать уравнения eqns по переменным vars, исключая переменные elims.

Входные параметры этой функции могут быть представлены списками или записаны выражениями через объединительный знак«&&». В eqns в качестве знака равенства используется знак «= =». Примеры применения функции Solve представлены на рис. 4.12.

Как найти решение уравнения в wolfram mathematica

Рис. 4.12. Примеры решения уравнений

Обратите внимание на то, что в определенных ситуациях система подсказывает тонкости решения, выдавая предупреждающие сообщения. Если такие ситуации не являются ошибками, препятствующими решению, то полученное решение выводится в ячейку вывода.

Решение систем нелинейных уравнений в символьном виде

Приведенные на рис. 4.13 примеры показывают решение систем нелинейных уравнений с помощью функции Solve.

Достаточно характерен пример с применением функции N. Если убрать в нем функцию N, то будет получен чрезвычайно громоздкий, хотя и точный результат (проверьте это сами, поскольку размеры результата делают нецелесообразным его приведение в книге). Функция N осуществляет выполнение всех промежуточных вычислений, благодаря чему результат получается вполне обозримым и представленным в комплексных числах.

В последнем примере рис. 4.13 получен набор из пяти пар корней, определенных через функцию Root. Эта функция, в свою очередь, означает вычисление корней полиномиального уравнения пятой степени. Данный пример, как и ранее приводимые решения кубического уравнения, является наглядной иллюстрацией того, что простота нелинейных уравнений порой оказывается весьма обманчивой, а их решение порой приводит к весьма громоздким и сложным результатам. Тем не менее, возможность решения отдельных нелинейных уравнений и их систем в символьном виде трудно переоценить. К сожалению, далеко не все уравнения имеют такие решения — многие можно решать только в численном виде.

Как найти решение уравнения в wolfram mathematica

Рис. 4.13. Примеры решения систем нелинейных уравнений

Не следует полагать, что Mathematica всегда выдает верное решение систем нелинейных уравнений. На самом деле решение иногда бывает ошибочным. Поэтому в большинстве случаев стоит оформлять решение таким образом, чтобы обеспечить его проверку. Для этого рекомендуется отдельно задать систему уравнений и результат решения. Тогда проверка легко осуществляется с помощью подстановки. Два примера решения систем уравнений с проверкой решений показаны на рис. 4.14.

В первом примере решение кажется очевидным (равенства выполняются, например, при х=2 и у=3). Однако здесь Mathematica дает сразу три пары решений, и все они оказываются верны, поскольку после подстановки проверка всех равенств возвращает True.

А вот во втором примере проверка дала не совсем обычный результат, что связано с наличием в решении неопределенной переменной а. В таких случаях стоит попробовать упростить решение с помощью функции Simplify, что и показано на рис. 4.14.

Как найти решение уравнения в wolfram mathematica

Рис. 4.14. Примеры решения уравнений с проверкой

Опции функции Solve

С функцией Solve можно использовать ряд опций. Их можно вывести командой Options [Solve]. Ниже описано их назначение:

  • InverseFunctions — указывает, следует ли использовать обратные функции;
  • MakeRules — указывает, должен ли результат быть представлен как объект AlgebraicRulesData;
  • Method — устанавливает алгоритм, используемый для вычисления результата (возможны методы 1, 2 и 3);
  • Mode — задает характер решения уравнения (возможны Generic, Modular и Rational);
  • Sort — устанавливает, нужна ли сортировка результатов;
  • Verif ySolutions — устанавливает, следует ли проводить проверку полученных решений и удаление посторонних решений;
  • WorkingPrecision — устанавливает число цифр промежуточных вычислений (по умолчанию Infinity).

На рис. 4.15 приведены примеры применения функции Solve с опцией Inverse-Functions.

Обратите внимание на то, что последняя система уравнений при отсутствии опции InverseFunctions решается с предупреждением. Она вообще не решается, если эта опция задана как False, и гладко решается при InverseFunctions -> True.

Как найти решение уравнения в wolfram mathematica

Рис. 4.15. Примеры решения уравнений с опцией InverseFunction

То, насколько может влиять на решение опция Method, наглядно показывают примеры, представленные на рис. 4.16.

Как найти решение уравнения в wolfram mathematica

Рис. 4.16. Примеры решения уравнений разными методами

Множество примеров решения систем нелинейных уравнений в символьном виде можно найти в справочной системе Mathematica.

Численное решение уравнений

Многие нелинейные уравнения и системы нелинейных уравнений в принципе не имеют аналитических решений. Однако их решение вполне возможно численными методами. Для численного решения систем нелинейных уравнений используется функция NSolve:

  • NSolve [eqns, vars] — пытается численно решить одно уравнение или систему уравнений eqns относительно переменных vars;
  • NSolve [eqns, vars, elims] — пытается численно решить уравнения eqns относительно vars, исключая переменные elims.

С этой функцией используется единственная опция WorkingPrecision, задающая число верных цифр результата — по умолчанию 16. На рис. 4.17 представлены примеры использования функции NSolve для численного решения уравнений.

Как найти решение уравнения в wolfram mathematica

Риc. 4.17. Примеры численного решения уравнений

Результаты решения с помощью функции NSolve также рекомендуется проверять с помощью подстановки, например, так:

Нетрудно заметить, что в данном случае решение верно.

Поиск корней уравнений

Для вычисления корней полиномиальных уравнений используется функция Roots:

На рис. 4.18 представлены примеры применения функции Roots.

Как найти решение уравнения в wolfram mathematica

Рис. 4.18. Примеры использования функции Roots

Формат выдачи результатов для функции Roots отличается от такового для функции Solve. Поэтому проверку решения подстановкой надо выполнять как в следующем примере:

Для преобразования результата вычислений в список решений (подобный решениям, получаемым с помощью функции Solve) здесь использована функция ToRules.

При затруднениях в решении уравнений с помощью функции Roots можно использовать следующие опции:

Ниже они описаны подробно:

  • Cubics — указывает, следует ли искать явные решения для неприводимых кубических уравнений;
  • EquatedTo — задает выражение для замещения переменной в решении;
  • Modulus — задает промежуточную факторизацию полинома;
  • Multiplicity— устанавливает кратность каждого из корней в конечном результате;
  • Quartics — задает точное решение квадратного уравнения и полинома четвертой степени;
  • Using — указывает какие-либо дополнительные уравнения, которые следует использовать для решения уравнений.

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

Дополнительные функции для решения уравнений

Имеется также ряд дополнительных функций, которые используются описанными ранее функциями и также могут применяться при решении нелинейных уравнений:

  • Auxiliary [v] — применяется модулем Solve для указания того, что переменная v должна использоваться функцией Roots для результирующих решений, но соответствующие значения v не должны быть включены в окончательный ответ;
  • Eliminate [eqns, vars] — исключает переменные vars из системы уравнений eqns;
  • FindRoot [Ihs == rhs, ] — ищет численное решение уравнения Ihs == rhs, начиная с х = x0;
  • MainSolve [eqns] — основная функция для преобразования системы уравнений. Ее вызывают Solve и Eliminate. Уравнения должны быть представлены в форме Ihs == rhs. Они могут объединяться с помощью && и | |. MainSolve возвращает False, если не существует решения уравнений, и возвращает True, если все значения переменных являются решениями. MainSolve перестраивает уравнения, применяя определенные директивы;
  • MainSolve [eqns, vars, elim, rest] — пытается перестраивать уравнения eqns так, чтобы найти решения для переменных vars и исключить переменные elim. Список rest может включаться для указания порядка исключения любых остальных переменных;
  • NRoots [lhs==rhs, var] — возвращает список численных приближений корней полиномиального уравнения;
  • Residue [ехрr, ] — ищет вычет ехрг в точке х = х0;
  • SolveAlways [eqns, vars] — возвращает значения параметров, которые превращают уравнения eqns в тождества для всех значений переменных vars.

Примеры использования некоторых из этих функций показаны на рис. 4.19.

Как найти решение уравнения в wolfram mathematica

Рис. 4.19. Примеры применения дополнительных функций для решения уравнений

В целом надо отметить, что система Mathematica обладает обширными средствами для решения уравнений и их систем. Умение их применять — залог правильного и эффективного решения сложных математических задач, относящихся к классу решения уравнений.

Графическая иллюстрация и выбор метода решения уравнений

При рассмотрении приведенных выше примеров может сложиться благодушное впечатление о том, что решение нелинейных уравнений может производиться автоматически и без размышлений. Но это далеко не так — представленные выше примеры просто подобраны так, что они имеют решение с помощью соответствующих функций.

На самом деле порой даже простые уравнения могут не иметь решения. В сложных случаях очень полезна графическая визуализация решения. В качестве примера на рис. 4.20 показана визуализация вычисления корней квадратного уравнения. В данном случае график функции явно указывает на существование двух действительных корней при х, близких к 0.2 и 2.3. Функция Nsolve без труда находит оба корня.

Как найти решение уравнения в wolfram mathematica

Рис. 4.20. Визуализация решения квадратного уравнения для случая двух действительных корней

А вот на рис. 4.21 показан случай, когда из-за изменения последнего члена квадратичной функции ее график уже не пересекает ось х вообще. Это говорит о том, что решения в виде действительных корней нет. И в самом деле, NSolve находит корни как комплексно-сопряженные числа. Действительная часть найденных корней дает координату х для впадины кривой — параболы.

Если требуется решение равенства f1(х) = f 2 (x), то для графической визуализации решения можно построить графики функций f1(х) и f 2 (лг) — наличие точек их пересечения будет означать существование действительных корней. Этот случай иллюстрирует рис. 4.22. В данном случае проблем с решением нет, поскольку, по существу, решается квадратное уравнение.

Как найти решение уравнения в wolfram mathematica

Рис. 4.21. Визуализация решения квадратного уравнения для случая двух комплексных корней

Как найти решение уравнения в wolfram mathematica

Рис. 4.22. Пример визуализации решения уравнения вида f(x) = 5х + 1

Но вот на рис. 4.23 показан случай решения уравнения f(x) = ехр(х/2). Графики функций ясно показывают, что парабола пересекается экспонентой в двух точках. Однако функция NSolve отказывается решать такое уравнение и выдает сообщение о том, что оно является трансцендентным.

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

Как найти решение уравнения в wolfram mathematica

Рис. 4.23. Пример решения уравнения вида f(x) = ехр(х/2)

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

Получение сразу нескольких корней

Многие уравнения с тригонометрическими функциями могут иметь периодические или близкие к ним решения. К сожалению, функции Mathematica, вычисляющие корни уравнений, не способны в этом случае дать сразу несколько корней. Однако ситуация тут далеко не безнадежна — приведенный ниже пример наглядно показывает это.

Пусть требуется в интервале изменения х от 0 до 20 найти все решения уравнения

График функции, представляющей левую часть уравнения, показан на рис. 4.24. Хорошо видно, что он пересекает ось х семь раз, то есть имеет в интересующем нас диапазоне семь корней.

Как найти решение уравнения в wolfram mathematica

Рис. 4.24. График функции х sin(x) + х/2 — 1 и пример вычисления всех ее корней в интервале изменения х от 0 до 20

Колебательная составляющая функции обусловлена входящей в нее функцией sin(x), которая имеет нули в точках 0, n, 2n, Зn. Однако, как видно из рис. 4.24, эти значения лишь приближенные, ввиду влияния других членов уравнения.

Ключевая идея получения всех корней уравнения заключается в поиске нужных решений с помощью функции FindRoot, которой последовательно подставляются различные начальные приближения. Однако вместо уже испытанного приема — поиска корней поодиночке — можно воспользоваться «таблицей» решений, используя функцию Table. Решение, приведенное под графиком функции на рис. 4.24, наглядно иллюстрирует возможности этого приема — найдены (или, вернее, уточнены) все семь корней исходного уравнения.

Получение неизвестных в явном виде

Читатель, возможно, обратил внимание на то, что решения всех представленных выше примеров выглядят не совсем обычно — в виде списка подстановок. Это не позволяет использовать неизвестные в явном виде, например, для проверки решений или передачи найденных неизвестных в последующие вычислительные блоки. Однако от этого затруднения легко избавиться, если перед конструкций блока решения использовать выражение следующего вида:

Список переменных в этом выражении должен однозначно соответствовать списку неизвестных системы уравнений. Покажем этот прием в действии. Ниже приведено решение системы из трех нелинейных уравнений:

Обратите внимание на то, что вывод списка не дает полученных значений неизвестных. Это связано с тем, что переменные в блоке решения имеют ло-к(1лъный характер и за пределами блока их значения (в том числе неопределенные) сохранятся такими, какими они были до применения в блоке решения.

Теперь зададим решение в ином виде:

Как видите, на сей раз решение получено в виде списка с числами — явными значениями неизвестных. Можно обозначить их как а, Ь и с, получить список и даже использовать их отдельно:

Теперь можно проверить решение данной системы:

Полученный вектор правых частей системы совпадает с заданным, что свидетельствует о правильности решения. Разумеется, вместо нового списка для вектора решения можно было использовать и вектор .

Видео:Как решить любую задачу студенту? : Интеллектуальный поисковик wolframalpha.comСкачать

Как решить любую задачу студенту? : Интеллектуальный поисковик wolframalpha.com

Решение системы нелинейных уравнений в Mathematica

Я пытаюсь численно решить приведенную ниже систему из шести уравнений (g0-g5) для a0-a5 в системе Mathematica. Я не специалист по математике и не совсем уверен, как это сделать.

Однако я потратил много времени, пытаясь заставить NSolve и FindRoot дать решение. Вот этот код:

Еще одна дополнительная информация, которую я могу предложить, заключается в том, что результирующее решение для f (x, y) должно быть эквивалентно двумерной стандартной нормальной плотности. Любая помощь приветствуется. Это мой первый пост на SO, дайте мне знать, если потребуется дополнительная информация.

2 ответа

Я поражен. Я никогда не ожидал, что это закончится. Но если вы все время вычитаете, чтобы он выполнил интегралы, то Reduce завершится в мгновение ока.

Примечание. Это дает Simplify одно предположение, которое вы должны проверить, является ли оно обоснованным. Это предположение позволяет превратить все ваше ConditionalExpression в предположительно допустимые выражения для вашей проблемы. Я получил это предположение, просмотрев каждый из результатов, возвращаемых интеграцией, и увидел, что все они зависят от этого, чтобы результат был действительным.

Вот как это сформулировать численно:

Обратите внимание, что я сделал первоначальное предположение, очень близкое к известному решению (спасибо @Bill), и поиск ответа все еще занимает очень много времени.

Видео:✅ КиЯ 9 | Как вычислить выражение прямо в ячейке в Wolfram Mathematica?Скачать

✅ КиЯ 9 | Как вычислить выражение прямо в ячейке в Wolfram Mathematica?

Научный форум dxdy

Последний раз редактировалось misha89 23.05.2014, 14:07, всего редактировалось 3 раз(а).

Пытаюсь решить систему уравнений с помощью Математики. Взял пример отсюда http://reference.wolfram.com/mathematica/ref/Solve.html и все работало, но стоило подставить какой-то другой набор уравнений, для проверки, так сразу что-то не так.

Как найти решение уравнения в wolfram mathematica]$»>
Как найти решение уравнения в wolfram mathematica]$»>

Как правильно решать системы уравнений в Математике?

Вот конкретное задание Как найти решение уравнения в wolfram mathematica, Complexes]$»>.
Вот ответное замечание со стороны Математики

Какое правило ему надо указать? Мне необходимо это решить в Как найти решение уравнения в wolfram mathematica^3$»>

Последний раз редактировалось Ms-dos4 23.05.2014, 14:38, всего редактировалось 1 раз.

Последний раз редактировалось arseniiv 23.05.2014, 17:30, всего редактировалось 1 раз.

А ещё Complexes указывать не нужно — по умолчанию она так и решает в комплексных. Вот если нужны действительные, указывать Reals уже понадобится.

И насчёт оформления: маленькие кусочки кода окружайте тегами [​tt][​/tt] , это же не формулы.

— Пт май 23, 2014 20:30:22 —

Какое правило ему надо указать? Мне необходимо это решить в Как найти решение уравнения в wolfram mathematica^3$»>
В Как найти решение уравнения в wolfram mathematicaс какими операциями? Может, всё-таки просто Как найти решение уравнения в wolfram mathematica?

arseniiv
, нет, в Как найти решение уравнения в wolfram mathematica^3$»>.

Это то самое задание с базисом Грёбнера.

Используя базис Грёбнера решить в Как найти решение уравнения в wolfram mathematica^3$»> заданную систему уравнений.

Я решил, после нахождения базиса, вбить базис и найти его решение. Если найду решение базиса, то найду решение системы. Но не уверен в этой идее в принципе.

🎬 Видео

Видео курс Wolfram Mathematica | Функции D и DtСкачать

Видео курс Wolfram Mathematica | Функции D и Dt

Видео курс Wolfram Mathematica | Функция ApartСкачать

Видео курс Wolfram Mathematica | Функция Apart

Видео курс Wolfram Mathematica | Лин. системы | Часть 1/2Скачать

Видео курс Wolfram Mathematica | Лин. системы | Часть 1/2

Видео курс Wolfram Mathematica | Функция IntegrateСкачать

Видео курс Wolfram Mathematica | Функция Integrate

Видео курс Wolfram Mathematica | Функция Plot | Часть 1/2Скачать

Видео курс Wolfram Mathematica | Функция Plot | Часть 1/2

Wolfram Research Mathematica логарифмическое неравенствоСкачать

Wolfram Research Mathematica логарифмическое неравенство
Поделиться или сохранить к себе: