Решите систему уравнений и неравенств python

Символическая математика с симпы

https://youtu.be/n_zuhuufalk Эта статья показывает, как решать математические уравнения и выражения символически, в Python. Благодаря симпы-библиотеке это оказывается чрезвычайно легкой задачей. Однако, как вы увидите в следующих примерах, количество инструментов и функций, предоставляемых этой библиотекой, огромно. Благодаря всем его функциям, Sympy … Символическая математика с симпы Подробнее »

  • Автор записи

Автор: Andrea Ridolfi
Дата записи

Автор оригинала: Andrea Ridolfi.

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

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

По этим причинам Симпи представляет собой фундаментальный инструмент для решения множества Математика связанные проблемы. Статья разделена на разные разделы, каждый из которых имеет дело с конкретным Симпи функция. Если вы заинтересованы в теме, вы можете найти документацию обо всех описанных здесь функциях (и много других) в https://www.sympy.org/en/index.html Отказ

Видео:Python для самых маленьких. Линейные уравнения. Решение задачСкачать

Python для самых маленьких. Линейные уравнения. Решение задач

Импорт Sympy

Первый шаг включает в себя импорт в наш скрипт Симпи библиотека; Поскольку несколько разных пакетов будут использоваться во всем этом примере, мы им импортируем их, написав следующую строку кода (для импорта Sympy Вы, должно быть, ранее установили его, если вы еще этого не сделали, введите « | Установить PIP Sympy » в вашем терминале).

Видео:СМОЖЕШЬ РЕШИТЬ ЭТУ ЗАДАЧУ В ОДНУ СТРОКУ НА PYTHON?Скачать

СМОЖЕШЬ РЕШИТЬ ЭТУ ЗАДАЧУ В ОДНУ СТРОКУ НА PYTHON?

Определение переменных и функций

Начнем с определения переменных, которые мы хотим использовать в наших расчетах. Для этого мы эксплуатируем Симпи Функция Символы () который принимает в качестве ввода строки и превращает его в Симпи Переменная; Затем мы назначаем значение функции переменной с тем же именем выбранной строки. В следующих строках кода мы инициализируем две переменные « X » и « y ».

Аналогичная процедура может быть использована для определения имени функций, которые будут использоваться в сценарии; На этот раз S YMPY Функция, которая служит для цели, это Функция () и работает так же, как Символы () Отказ Мы, следовательно, инициализировать функцию под названием « F », с данного момента каждый раз, когда мы вводим « f » на скрипте, мы имеем в виду функцию.

Видео:Использование библиотеки SymPy для работы с системами уравнений в PythonСкачать

Использование библиотеки SymPy для работы с системами уравнений в Python

Использование Sympy в вашем компьютере

Симпи можно даже использовать непосредственно с вашего терминала; Именно здесь его способность символически решать математические уравнения и функции выражают все возможное. Теперь мы увидим, как инициализировать и напрямую использовать Симпи в терминале. Первое, что нужно сделать, это открыть свой терминал и импорт Симпи Аналогичным образом как и раньше. Мы, следовательно, введите «Импортировать Sympy» и нажмите Enter. После этого мы входим в следующую команду « Sympy.init_session () », следующие строки содержат две только что описанные команды и вывод, который будет предложена вашим терминалом.

Как вы можете видеть, после Sympy.init_session () Команда, несколько Симпи пакеты были импортированы; Кроме того, буквы «X», «Y», «Z» и «T» были инициализированы как симпы, «K», «M» и «n» как целочисленные параметры, в то время как буквы «F», «G» и «H» как функции.

Все эти задачи были выполнены автоматически в пределах Sympy.init_session () команда, которая в основном инициировала Симпи сеанс с некоторыми заранее определенными функциями и переменными.

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

Видео:Решения системы линейных уравнений на Python (Sympy).Скачать

Решения системы линейных уравнений на Python (Sympy).

Расширение и упрощение математических выражений

В этом разделе мы узнаем, как использовать Симпи расширить или упростить математическое выражение. Обе задачи могут быть выполнены автоматически и мгновенно, просто используя функции Развернуть () и фактор () Отказ

Чтобы увидеть, как расширять() Функция работает, мы сначала определим функцию f = (3x + 5y 2 – 6) 2 И тогда мы передаем его как единственный входной параметр функции Развернуть () Отказ В терминале набираются следующие строки, чтобы получить лучший графический вывод; Тем не менее, они работают так же, когда набираются в скрипте.

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

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

Видео:Решение 1 го нелинейного алгебраического уравнения в PythonСкачать

Решение 1 го нелинейного алгебраического уравнения в Python

Решение уравнений и неравенства

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

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

Это особенно полезно в случае символических решений уравнений с несколькими переменными, в которых нас могут быть заинтересованы в получении символического решения по одному из двух неизвестных. Следующие строки сообщают либо численное решение уравнения одного переменного и символического решения двумя переменных уравнения относительно переменной « y ».

Аналогичным образом мы также можем получить численное и/или символическое решение уравнения или неравенства высшего порядка. Оба задача отображаются в следующих строках.

Видео:Решение n го нелинейных алгебраических уравнений в PythonСкачать

Решение n го нелинейных алгебраических  уравнений в Python

Решение систем уравнений/неравенств

Симпи Может использоваться для решения систем уравнений/неравенств. Для этого мы будем эксплуатировать, снова функции решить () Отказ В случае системы уравнений мы вводим уравнения в виде элементов списка; Следующие строки описывают решение системы трех линейных уравнений с помощью решить () Отказ

Как видно, вывод решить () Функция – это значения трех разных системных переменных. Таким же образом, мы также можем получить решение систем неравенств; Достаточно ввести неравенства как элементы списка; На этот раз символы «>» Метки

Видео:Система уравнений VS Система неравенств. ОГЭ по математике №9, 13| Математика TutorOnlineСкачать

Система уравнений VS Система неравенств. ОГЭ по математике №9, 13| Математика TutorOnline

Решение систем линейных уравнений с помощью Numpy в Python

Библиотеку Numpy можно использовать для выполнения множества математических и научных операций, таких как скалярное произведение, поиск значений синуса и косинуса, преобразование Фурье и т.д.

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

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

Что такое система линейных уравнений?

Википедия определяет систему линейных уравнений как:

В математике система линейных уравнений (или линейная система) – это набор двух или более линейных уравнений, включающих один и тот же набор переменных.

Конечная цель решения системы линейных уравнений – найти значения неизвестных переменных. Вот пример системы линейных уравнений с двумя неизвестными переменными x и y:

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

В матричном решении решаемая система линейных уравнений представлена в виде матрицы AX = B. Например, мы можем представить уравнение 1 в виде матрицы следующим образом:

Чтобы найти значение переменных x и y в уравнении 1, нам нужно найти значения в матрице X. Для этого мы можем взять скалярное произведение обратной матрицы A и матрицы B, как показано ниже:

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

Видео:34 Задача: Найти корни квадратного уравнения при помощи PythonСкачать

34 Задача: Найти корни квадратного уравнения при помощи Python

Решение

Из предыдущего раздела мы знаем, что для решения системы линейных уравнений нам необходимо выполнить две операции: обращение и скалярное произведение матрицы. Библиотека Numpy от Python поддерживает обе операции. Если вы еще не установили библиотеку Numpy, вы можете сделать это с помощью следующей команды pip:

Давайте теперь посмотрим, как решить систему линейных уравнений с помощью библиотеки Numpy.

Видео:Урок 4 Переменные в Python. Оператор присваиванияСкачать

Урок 4 Переменные в Python. Оператор присваивания

Использование методов inv() и dot()

Сначала мы найдем матрицу, обратную матрице A, которую мы определили в предыдущем разделе.

Давайте сначала создадим матрицу A на Python. Для создания матрицы можно использовать метод массива модуля Numpy. Матрицу можно рассматривать как список списков, где каждый список представляет собой строку.

В следующем скрипте мы создаем список с именем m_list, который дополнительно содержит два списка: [4,3] и [-5,9]. Эти списки представляют собой две строки в матрице A. Чтобы создать матрицу A с помощью Numpy, m_list передается методу массива, как показано ниже:

Чтобы найти обратную матрицу, которая передается методу linalg.inv() модуля Numpy:

Следующим шагом является нахождение скалярного произведения между матрицей, обратной матрицей A и B. Важно отметить, что матричное скалярное произведение возможно только между матрицами, если их внутренние размеры равны, т.е. количество столбцов левой матрицы должно соответствовать количеству строк в правой матрице.

Чтобы найти точечный продукт с помощью библиотеки Numpy, используется функция linalg.dot(). Следующий скрипт находит скалярное произведение между обратной матрицей A и B, которая является решением уравнения 1.

Здесь 2 и 4 – соответствующие значения для неизвестных x и y в уравнении 1. Чтобы убедиться, что если вы подставите 2 вместо неизвестного x и 4 вместо неизвестного y в уравнении 4x + 3y, вы увидите что результат будет 20.

Давайте теперь решим систему трех линейных уравнений, как показано ниже:

Вышеупомянутое уравнение можно решить с помощью библиотеки Numpy следующим образом:

В приведенном выше скрипте методы linalg.inv() и linalg.dot() связаны вместе. Переменная X содержит решение уравнения 2 и печатается следующим образом:

Значения неизвестных x, y и z равны 5, 3 и -2 соответственно. Вы можете подставить эти значения в уравнение 2 и проверить их правильность.

Видео:Решение систем линейных матричных уравнений через формулы Крамера в PythonСкачать

Решение систем линейных матричных уравнений через формулы Крамера в Python

resolve()

В двух предыдущих примерах мы использовали методы linalg.inv() и linalg.dot() для поиска решения системы уравнений. Однако библиотека Numpy содержит метод linalg.solve(), который можно использовать для непосредственного поиска решения системы линейных уравнений:

Вы можете видеть, что результат такой же, как и раньше.

Видео:Cистемы уравнений. Разбор задания 6 и 21 из ОГЭ. | МатематикаСкачать

Cистемы уравнений. Разбор задания 6 и 21 из ОГЭ.  | Математика

Пример

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

Предположим, продавец фруктов продал 20 манго и 10 апельсинов за один день на общую сумму 350 долларов. На следующий день он продал 17 манго и 22 апельсина за 500 долларов. Если цены на фрукты оставались неизменными в оба дня, какова была цена одного манго и одного апельсина?

Эту задачу легко решить с помощью системы двух линейных уравнений.

Допустим, цена одного манго равна x, а цена апельсина – y. Вышеупомянутую проблему можно преобразовать так:

Решение для указанной выше системы уравнений показано здесь:

И вот результат:

Выходные данные показывают, что цена одного манго составляет 10 долларов, а цена одного апельсина – 15 долларов.

Видео:Алгебра 9 класс. Решение систем уравнений через подстановку.Скачать

Алгебра 9 класс. Решение систем уравнений через подстановку.

Библиотека Sympy: символьные вычисления в Python

Что такое SymPy ? Это библиотека символьной математики языка Python. Она является реальной альтернативой таким математическим пакетам как Mathematica или Maple и обладает очень простым и легко расширяемым кодом. SymPy написана исключительно на языке Python и не требует никаких сторонних библиотек.

Документацию и исходный код этой библиотеки можно найти на ее официальной странице.

Видео:RecSys Cookbook: строим рекомендательную систему на Python без глубоких знаний математикиСкачать

RecSys Cookbook: строим рекомендательную систему на Python без глубоких знаний математики

Первые шаги с SymPy

Используем SymPy как обычный калькулятор

В библиотеке SymPy есть три встроенных численных типа данных: Real , Rational и Integer . С Real и Integer все понятно, а класс Rational представляет рациональное число как пару чисел: числитель и знаменатель рациональной дроби. Таким образом, Rational(1, 2) представляет собой 1/2 , а, например, Rational(5, 2) — соответственно 5/2 .

Библиотека SymPy использует библиотеку mpmath , что позволяет производить вычисления с произвольной точностью. Таким образом, ряд констант (например, пи, e), которые в данной библиотеке рассматриваются как символы, могут быть вычислены с любой точностью.

Как можно заметить, функция evalf() дает на выходе число с плавающей точкой.

В SymPy есть также класс, представляющий такое понятие в математике, как бесконечность. Он обозначается следующим образом: oo .

Символы

В отличие от ряда других систем компьютерной алгебры, в SymPy можно в явном виде задавать символьные переменные. Это происходит следующим образом:

После их задания, с ними можно производить различные манипуляции.

С символами можно производить преобразования с использованием некоторых операторов языка Python. А именно, арифметических ( + , -` , «* , ** ) и логических ( & , | ,

Библиотека SymPy позволяет задавать форму вывода результатов на экран. Обычно мы используем формат такого вида:

Видео:Решение системы неравенствСкачать

Решение системы неравенств

Алгебраические преобразования

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

Раскрытие скобок

Чтобы раскрыть скобки в алгебраических выражениях, используйте следующий синтаксис:

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

Упрощение выражений

Если вы хотите привести выражение к более простому виду (возможно, сократить какие-то члены), то используйте функцию simplify .

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

Видео:Математика без Ху!ни. Метод Гаусса.Скачать

Математика без Ху!ни. Метод Гаусса.

Вычисления

Вычисления пределов

Для вычисления пределов в SymPy предусмотрен очень простой синтаксис, а именно limit(function, variable, point) . Например, если вы хотите вычислить предел функции f(x) , где x -> 0 , то надо написать limit(f(x), x, 0) .

Также можно вычислять пределы, которые стремятся к бесконечности.

Дифференцирование

Для дифференцирования выражений в SymPy есть функция diff(func, var) . Ниже даны примеры ее работы.

Проверим результат последней функции при помощи определения производной через предел.

tan 2 (𝑥)+1 Результат тот же.

Также при помощи этой же функции могут быть вычислены производные более высоких порядков. Синтаксис функции будет следующим: diff(func, var, n) . Ниже приведено несколько примеров.

Разложение в ряд

Для разложения выражения в ряд Тейлора используется следующий синтаксис: series(expr, var) .

Интегрирование

В SymPy реализована поддержка определенных и неопределенных интегралов при помощи функции integrate() . Интегрировать можно элементарные, трансцендентные и специальные функции. Интегрирование осуществляется с помощью расширенного алгоритма Риша-Нормана. Также используются различные эвристики и шаблоны. Вот примеры интегрирования элементарных функций:

Также несложно посчитать интеграл и от специальных функций. Возьмем, например, функцию Гаусса:

Результат вычисления можете посмотреть сами. Вот примеры вычисления определенных интегралов.

Также можно вычислять определенные интегралы с бесконечными пределами интегрирования (несобственные интегралы).

Решение уравнений

При помощи SymPy можно решать алгебраические уравнения с одной или несколькими переменными. Для этого используется функция solveset() .

Как можно заметить, первое выражение функции solveset() приравнивается к 0 и решается относительно х . Также возможно решать некоторые уравнения с трансцендентными функциями.

Системы линейных уравнений

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

Факторизация

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

Булевы уравнения

Также в SymPy реализована возможность решения булевых уравнений, что по сути означает проверку булевого выражения на истинность. Для этого используется функция satisfiable() .

Данный результат говорит нам о том, что выражение (x & y) будет истинным тогда и только тогда, когда x и y истинны. Если выражение не может быть истинным ни при каких значениях переменных, то функция вернет результат False .

Видео:ПОЛНЫЙ РАЗБОР 5 ЗАДАНИЯ ОГЭ ПО ИНФОРМАТИКЕ 2023Скачать

ПОЛНЫЙ РАЗБОР 5 ЗАДАНИЯ ОГЭ ПО ИНФОРМАТИКЕ 2023

Линейная алгебра

Матрицы

Матрицы в SymPy создаются как экземпляры класса Matrix :

В отличие от NumPy , мы можем использовать в матрицах символьные переменные:

И производить с ними разные манипуляции:

Дифференциальные уравнения

При помощи библиотеки SymPy можно решать некоторые обыкновенные дифференциальные уравнения. Для этого используется функция dsolve() . Для начала нам надо задать неопределенную функцию. Это можно сделать, передав параметр cls=Function в функцию symbols() .

Теперь f и g заданы как неопределенные функции. мы можем в этом убедиться, просто вызвав f(x) .

Теперь решим следующее дифференциальное уравнение:

Чтобы улучшить решаемость и помочь этой функции в поиске решения, можно передавать в нее определенные ключевые аргументы. Например, если мы видим, что это уравнение с разделяемыми переменными, то мы можем передать в функцию аргумент hint=’separable’ .

Бесплатные кодинг марафоны с ревью кода

Наш телеграм канал проводит бесплатные марафоны по написанию кода на Python с ревью кода от преподавателя

🎥 Видео

Решение простых задач на python | Решить квадратное уравнениеСкачать

Решение простых задач на python |  Решить квадратное уравнение

Решение задач на Python #1Скачать

Решение задач на Python #1

Матричный метод решения систем уравненийСкачать

Матричный метод решения систем уравнений
Поделиться или сохранить к себе: