Если искомая функция является полиномом, для её дифференцирования и интегрирования можно использовать методы модуля numpy.polynomial.polynomial. Хочу обратить внимание, что самый левый коэффициент соответствует младшему члену полинома, правый - старшему. Функции polyder() и polyint() содержат дополнительные опциональные коэффициенты, которые позволяют использовать их более гибко.
Показаны сообщения с ярлыком дифференциальные уравнения. Показать все сообщения
Показаны сообщения с ярлыком дифференциальные уравнения. Показать все сообщения
четверг, 14 июня 2018 г.
понедельник, 1 января 2018 г.
Lua. Больше чем калькулятор
В одном из предыдущих постов я описал свой опыт использования Lua в качестве системы для расчётов. Идея заключалась в том, чтобы перед началом работы подгружать в стандартный интерпретатор необходимые математические функции. Со временем функционал вырос, усложнилась справочная система, появилась возможность локализации, тестирование... В итоге, calc.lua превратился в LuaCalculus. Здесь я хотел бы описать основные возможности программы на данный момент.
пятница, 10 апреля 2015 г.
Maxima. Дифференциальные уравнения
Для решения обыкновенных дифференциальных уравнений в Maxima служит функция
ode2(выражение, y, x),
где y - искомая функция, x - независимая переменная. Выражение может быть дифференциальным уравнением первого или второго порядка. Данная функция умеет находить решения для различных типов уравнений:
первого порядка
- линейные;
- с разделяющимися переменными;
- однородные;
- уравнения в полных дифференциалах;
- уравнения Бернулли;
- обобщённые однородные уравнения;
второго порядка
- с постоянными коэффициентами;
- в полных дифференциалах;
- однородные линейные с постоянными коэффициентами, которые могут быть сведены к уравнениям с постоянными коэффициентами;
- уравнения Эйлера;
- уравнения, разрешимые методом вариации постоянных;
- уравнения, свободные от независимой переменной, допускающие понижение порядка. [Е.А. Чичкарёв, "Компьютерная математика с Maxima"]
пятница, 30 января 2015 г.
SMath. Программы
SMath Studio предоставляет возможность организовывать циклы и ветвления, позволяя таким образом формировать достаточно сложные вычислительные алгоритмы.
среда, 6 августа 2014 г.
Scilab. ОДУ
Базовой функцией Scilab для решения обыкновенных дифференциальных уравнений (ОДУ) первого порядка является
y = ode([type,] y0, t0, t, f)
где y0 - вектор начальных значений функции y(t) в точке t0, t - координаты узлов расчётной сетки, f - связь значения функции с её производной dy/dt = f(y,t). Необязательный параметр type - метод поиска решения (adams - метод Адамса, stiff - жёсткая задача, rk - адаптивный метод Рунге - Кутта четвёртого порядка, rkf - пятиэтапный метод Рунге - Кутта четвёртого порядка, fix - rkf с фиксированным шагом). Хотя в функции ode() можно указать ещё ряд параметров (точность, якобиан и др.), я не стал их записывать, чтобы не перегружать вид выражения.
суббота, 5 апреля 2014 г.
Freemat. Дифференциальные уравнения
Freemat умеет решать только обыкновенные дифференциальные уравнения первого порядка, и только одним способом - методом Рунге-Кутта. Чтобы им воспользоваться, нужно представить уравнение в виде y'(t) = f(t,y) и задать начальное условие y(0) = y0. Сам расчёт производится функцией ode45:
[t,y] = ode45(f(t,y), tsp, y0, option),
где f(t,y) - функциональная связь производной со значением аргумента и функции,
tsp - интервал t, на котором производится расчёт,
y0 - значение функции в начальной точке,
option - дополнительные параметры.
Подписаться на:
Сообщения (Atom)

