Как получить функцию от ndsolve в mathematica

GeekBrains

Иллюстрированный самоучитель по Mathematica 3/4

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

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

  • NDSolve [eqns, у, ] – ищет численное решение дифференциальных уравнений .eqns относительно функции у независимой переменной х в интервале от xmin до xmax;
  • NDSolve [eqns, , ] – ищет численные решения относительно функций yi.

MaxSteps – опция к NDSolve, которая определяет максимальное количество шагов.

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

Нередко решение предпочитают представить на фазовой плоскости. Рисунок 4.26 иллюстрирует такую возможность. Более того, поскольку решается система из трех дифференциальных уравнений, фазовая траектория решения находится в трехмерном пространстве.

Простота задания решения и вывода его результатов в графической форме открывает широкие возможности применения системы для математического моделирования сложных явлений. При этом, в отличие от такого решения с помощью обычных языков высокого уровня (например, Фортран, Бейсик, Паскаль или С), не требуется составления каких-либо программ по реализации численных методов решения систем дифференциальных уравнений, таких как, скажем, метод Рунге-Кутта. Они представлены в виде уже готовых функций.

Иллюстрированный самоучитель по Mathematica 3/4 › Операции математического анализа › Решение дифференциальных уравнений в численном виде
Рис. 4.25. Решение системы дифференциальных уравнений с выводом решения в виде графиков временных зависимостей

Иллюстрированный самоучитель по Mathematica 3/4 › Операции математического анализа › Решение дифференциальных уравнений в численном виде
Рис. 4.26. Решение системы дифференциальных уравнений с выводом решения в форме кривых на фазовых плоскостях

Математика NDSolve

У меня вопрос о функции NDSolve в системе Mathematica. У меня есть осциллятор, определяемый этими двумя уравнениями:

Где u — некоторая постоянная.

Как создать NDSolve, который решит эту проблему? Я пробовал следующий код (он должен зависеть от времени), но он не работает:

(начальное смещение 2м).

2 ответа

Вы должны заметить, что первое уравнение, дифференцированное по отношению к t , можно использовать для замены v[t] . Но тогда второе уравнение становится ОДУ второго порядка и требует добавления другого дополнительного начального условия. Мы дадим

GeekBrains

Затем, решив это ОДУ для x , вы можете восстановить v[t]==x'[t] Я даю вам решение в виде Manipulate , чтобы геометрически ситуация стала вам ясна.

enter image description here

Надеюсь, это поможет вам, но в следующий раз, прежде чем вы спросите, вам нужно сначала освежить теорию, поскольку вы можете видеть, что заданный вами вопрос касается очень базовой и элементарной математики, а не программирования в системе Mathematica. Удачи!!

Вам необходимо указать числовое значение для вашего u , а также начальное условие для v[t] :

How to use values computed with NDSolve in Mathematica?

I’m trying to solve one differential equation and use 2 computed values (at specific points) as boundary conditions for a new differential equation. An example:

Now I want do define sys2 with boundary conditions taken from the solution sol1 . I mean it should look like this:

And then we can solve sys2 using NDSolve . I didn’t find any clues to how to extract these values from the solution.

Your help would be greatly appreciated.

1 Answer 1

There is an example in the documentation of InterpolatingFunction for achieving this (http://reference.wolfram.com/language/ref/InterpolatingFunction.html).

Not the answer you're looking for? Browse other questions tagged wolfram-mathematica or ask your own question.

Related
Hot Network Questions

Subscribe to RSS

To subscribe to this RSS feed, copy and paste this URL into your RSS reader.

site design / logo © 2021 Stack Exchange Inc; user contributions licensed under cc by-sa. rev 2021.11.24.40828

By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.

GeekBrains

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *