Перейти к основному содержимому

SymPy — уравнения и производные

Готовые скрипты SymPy с разбором каждой строки: скопировали код → подставили свои числа из задачи → получили ответ. Подойдёт, если вы гуглите «sympy решить уравнение», «python найти производную», «sympy квадратное уравнение пример», «sympy производная sin» или «как проверить домашку по матану».


Символьная математика на Python

SymPy — библиотека Python для математики в буквах. Обычный калькулятор и модуль math считают только с числами: sqrt(9)3.0. SymPy работает с формулами: находит корни x² − 5x + 6 = 0, берёт производную sin(x), упрощает (x+1)² до x² + 2x + 1.

Зачем это нужно на практике:

СитуацияКалькулятор / mathSymPy
«Сколько будет 2 + 2?»ДостаточноИзбыточно
«Решить 2x + 3 = 11»Можно в умеУдобно проверить
«Корни x² − 7x + 12 = 0»Только численноТочный ответ [3, 4]
«Производная x³ − 4x»Не умеет3x² − 4
«Проверить, правильно ли я решил ДЗ»Долго пересчитыватьОдна строка кода

SymPy используют школьники (алгебра, начала анализа), студенты (матан, физика, лабораторные) и инженеры, когда нужен точный символьный ответ, а не приближение.

С чего начать

График функции после расчёта — Matplotlib — примеры, теория — Matplotlib — графики. Красивые формулы в PDF — LaTeX, языки разметки. Численные массивы — NumPy, обзор — NumPy, SciPy и pandas, Python для анализа данных. Символьная vs численная математика — Численные методы. Здесь — решить уравнение и взять производную в Python с разбором, как в популярной галерее Turtle.

Частые запросы в Google — куда смотреть

Ищут в интернете (RU / EN)Раздел ниже
sympy решить уравнение / solve equationЛинейное уравнение
sympy квадратное уравнение / quadraticКвадратное уравнение
sympy дискримinant / корни через дискримinantДискримinant
sympy система уравнений / system of equationsСистема уравнений
sympy производная / derivative exampleПроизводная многочлена
sympy производная sin cosПроизводная sin и cos
python найти производную функцииОбязательный шаблон
sympy вторая производнаяВторая производная
sympy частная производнаяЧастная производная
sympy упростить выражение / simplifyУпрощение
sympy подставить значение / subsПодстановка числа
sympy предел / limit sin x / xПредел
sympy интеграл / integrateИнтеграл
sympy latex формулаLaTeX для отчёта
sympy экстремум / исследование функцииТочки экстремума

Как запустить пример за 2 минуты

Шаг 1. Установите SymPy (один раз):

pip install sympy

Разбор:

  • pip — программа, которая скачивает библиотеки Python; на Windows откройте «cmd» или PowerShell, на macOS — «Терминал».
  • install sympy — скачать и подключить SymPy; интернет нужен только в момент установки.
  • Если pip не найден — Python установлен без галочки «Add to PATH»; переустановите Python с python.org или используйте Google Colab (SymPy там уже есть).

Шаг 2. Скопируйте любой блок кода ниже в файл uravnenie.py.

Шаг 3. Запустите:

python uravnenie.py

Разбор:

  • python — интерпретатор; на некоторых системах команда python3.
  • Имя файла должно совпадать с тем, что вы сохранили.
  • Результат появится в чёрном окне терминала — это нормально, графическое окно SymPy не открывает.

Шаг 4 (необязательно). В Google Colab или Jupyter формулы красивее — добавьте в первую ячейку:

from sympy import init_printing
init_printing(use_unicode=True)

Разбор:

  • init_printing() — включает «типографский» вывод: дроби, степени и корни выглядят как в учебнике, а не как x**2.
  • use_unicode=True — символы вроде π, √, ∈; на старых консолях Windows иногда «квадратики» — тогда оставьте False или смотрите вывод в Colab.
  • В обычном .py-файле на Windows можно обойтись без этого — достаточно print().
Кому подойдёт эта страница

Школьникам (8–11 класс) — линейное и квадратное уравнение, система из двух неизвестных, производная многочлена.
Студентам — частные производные, пределы, интегралы, проверка ручного решения, LaTeX для отчёта.
Тем, кто учит Python — готовый шаблон: меняете коэффициенты в одной строке и сдаёте ответ.


Базовые термины

ТерминПростыми словамиАналог в школе
Symbol / symbolsБуква x, y, t — «неизвестная», не число«Пусть x — корень…»
Eq(левая, правая)Запись уравнения a = bСтрока в тетради с «=»
solveНайти все x (или x и y), при которых уравнение верно«Решим уравнение…»
diffПроизводная по xШтрих: f′(x)
integrateИнтеграл (первообразная)∫ f(x) dx
simplifyСократить, привести к простому виду«Приведём подобные…»
expandРаскрыть скобки(x+1)² → x²+2x+1
factorРазложить на множителиx²−9 → (x−3)(x+3)
subsПодставить число вместо буквы«При x = 2 получим…»
Rational(1, 3)Точная дробь ⅓ без ошибок floatОбыкновенная дробь

Какую функцию выбрать

Задача из учебникаФункция SymPyОдна строка
Объявить x и ysymbolsx, y = symbols("x y")
Записать «2x + 3 = 11»EqEq(2*x + 3, 11)
Решить одно уравнениеsolvesolve(Eq(x**2 - 5*x + 6, 0), x)
Решить системуsolve + списокsolve([Eq(...), Eq(...)], x, y)
Производнаяdiffdiff(x**3 - 4*x, x)
Вторая производнаяdiff с 2diff(f, x, 2)
Частная ∂/∂xdiff по xdiff(f, x) — y «константа»
Упростить sin²+cos²simplifysimplify(sin(x)**2 + cos(x)**2)
Подставить x = 5subsexpr.subs(x, 5)
Пределlimitlimit(sin(x)/x, x, 0)
Формула для LaTeXlatexlatex(diff(sin(x), x))

Обязательные элементы

Любой скрипт с SymPy — как рецепт: импорт → буквы → формула → действие → print. Запомните этот каркас — дальше меняете только середину.

from sympy import symbols, Eq, solve, diff

# 1. Объявляем букву (неизвестную)
x = symbols("x")

# 2. Записываем выражение или уравнение
expr = x**2 + 2*x + 1 # многочлен
equation = Eq(expr, 0) # уравнение «expr = 0»

# 3. Считаем то, что нужно в задаче
roots = solve(equation, x)
proizvodnaya = diff(expr, x)

# 4. Показываем результат (в .py без print экран пустой)
print("Уравнение:", equation)
print("Корни:", roots)
print("Производная:", proizvodnaya)

Что выведет программа (примерно так, вид может чуть отличаться):

Уравнение: Eq(x**2 + 2*x + 1, 0)
Корни: [-1]
Производная: 2*x + 2

Разбор по строкам:

СтрокаЧто делаетЗачем
from sympy import symbols, Eq, solve, diffПодключает только нужные функцииКороче писать solve, а не sympy.solve
x = symbols("x")Создаёт символ xБез этого x — просто имя переменной Python, формулы не получится
expr = x**2 + 2*x + 1Многочлен в буквах** — степень; 2*x — умножение (знак * обязателен)
Eq(expr, 0)Уравнение «многочлен = 0»В SymPy «=» в уравнении — через Eq, не через ==
solve(equation, x)Ищет все x, где уравнение верноВозвращает список корней; здесь один корень −1
diff(expr, x)Производная по xПравило: (x²)′ = 2x, (2x)′ = 2, (1)′ = 0 → 2*x + 2
print(...)Текст в терминалВ Jupyter последнюю строку можно без print — в .py нужен всегда

Что поменять под своё задание: замените expr на свой многочлен; если уравнение «= 5», пишите Eq(левая_часть, 5).

Типичные ошибки (и что видите на экране)
  • x = 5 до symbols("x") — x уже число, diff(x**2) даст 0.
  • x**2 + 2x + 1 без * перед x — SyntaxError: Python не понимает «2x».
  • solve(x + 2 == 5, x) — иногда работает, но правильный стиль: solve(Eq(x + 2, 5), x).
  • from math import sin + символ x — sin(x) не дифференцируется; берите from sympy import sin.
  • Ждёте одно число, а solve вернул список [3, 4] — берите roots[0] или перебирайте циклом.

Стартовые примеры

Семь задач, которые чаще всего ищут: линейное, квадратное, система, производная, sin/cos, упрощение, подстановка.


Линейное уравнение

Зачем: в тетради «переносим 3 вправо, делим на 2». В Python — проверить ответ или решить, если коэффициенты неудобные.

Задача из учебника: решить 2x + 3 = 11.

from sympy import symbols, Eq, solve

x = symbols("x")

# Уравнение: левая часть, правая часть
equation = Eq(2*x + 3, 11)

# solve(что_равно_нулю_или_Eq, по_какой_букве)
solution = solve(equation, x)

print("Уравнение:", equation)
print("Список корней:", solution)
print("x =", solution[0])
print("Проверка (подставили x):", equation.subs(x, solution[0]))

Что выведет:

Уравнение: Eq(2*x + 3, 11)
Список корней: [4]
x = 4
Проверка (подставили x): True

Разбор по строкам:

СтрокаСмысл
Eq(2*x + 3, 11)«2x + 3 = 11»; 2*x — обязательно звёздочка между числом и буквой
solve(equation, x)SymPy «переносит» и «делит» символьно; ответ список [4]
solution[0]Первый элемент списка — единственный корень линейного уравнения
equation.subs(x, solution[0])Подставляем x = 4 в уравнение; должно быть True — значит, не ошиблись

Что поменять: Eq(5*x - 7, 18) — ваши коэффициенты; solve и solution[0] те же.


Квадратное уравнение

Зачем: дискримinant, формула корней, разложение на множители — SymPy делает всё сразу.

Задача: x² − 5x + 6 = 0 (ожидаемые корни 2 и 3).

from sympy import symbols, Eq, solve, expand, factor

x = symbols("x")

# ax² + bx + c — знаки минус пишем явно
expr = x**2 - 5*x + 6
equation = Eq(expr, 0)

roots = solve(equation, x)

print("Многочлен:", expr)
print("Разложение на множители:", factor(expr))
print("Корни:", roots)

# Проверка каждого корня
for r in roots:
print(f" При x = {r} значение многочлена = {expr.subs(x, r)}")

Что выведет:

Многочлен: x**2 - 5*x + 6
Разложение на множители: (x - 2)*(x - 3)
Корни: [2, 3]
При x = 2 значение многочлена = 0
При x = 3 значение многочлена = 0

Разбор по строкам:

СтрокаСмысл
x**2 - 5*x + 6Стандартный вид ax²+bx+c; для x² − 7x + 12 меняете числа
factor(expr)(x−2)(x−3) — видно корни глазами; полезно для объяснения учителю
solveТот же ответ [2, 3]; порядок корней может быть [3, 2] — это нормально
for r in rootsЦикл проверяет каждый корень; в списке два — перебираем оба

Что поменять: ваши a, b, c в строке expr = ....


Дискримinant (для отчёта и самопроверки)

Зачем: в школе просят «найти D и корни» — SymPy считает D, а solve даёт корни.

Задача: для x² − 4x + 3 = 0 показать D и x₁, x₂.

from sympy import symbols, Eq, solve, discriminant, sqrt

x = symbols("x")

a, b, c = 1, -4, 3
expr = a*x**2 + b*x + c

D = discriminant(expr, x)
roots = solve(Eq(expr, 0), x)

print("Уравнение:", Eq(expr, 0))
print("D =", D)
print("√D =", sqrt(D))
print("Корни:", roots)

Что выведет:

Уравнение: Eq(x**2 - 4*x + 3, 0)
D = 4
√D = 2
Корни: [1, 3]

Разбор:

  • discriminant(expr, x) — формула D = b² − 4ac символьно; для этих коэффициентов D = 4.
  • sqrt(D) — корень из D; SymPy оставляет 2, а не 1.999… как float.
  • Коэффициенты a, b, c вынесены в переменные — удобно менять одной строкой.

Система двух уравнений с двумя неизвестными

Зачем: задачи «у двух чисел сумма 10, разность 2 — найти числа»; метод подстановки/сложения SymPy делает сам.

Задача: x + y = 10, x − y = 2.

from sympy import symbols, Eq, solve

x, y = symbols("x y")

system = [
Eq(x + y, 10),
Eq(x - y, 2),
]

result = solve(system, x, y)

print("Система:")
for i, eq in enumerate(system, 1):
print(f" ({i}) {eq}")
print("Ответ (словарь):", result)
print("x =", result[x], ", y =", result[y])
print("Проверка (1):", system[0].subs(result))
print("Проверка (2):", system[1].subs(result))

Что выведет:

Система:
(1) Eq(x + y, 10)
(2) Eq(x - y, 2)
Ответ (словарь): {x: 6, y: 4}
x = 6 , y = 4
Проверка (1): True
Проверка (2): True

Разбор по строкам:

СтрокаСмысл
x, y = symbols("x y")Две неизвестные; пробел в строке "x y" — разделитель
system = [Eq(...), Eq(...)]Список уравнений; порядок строк не важен
solve(system, x, y)Ответ — словарь {x: 6, y: 4}, не два списка
result[x]Достаём x по ключу; надёжнее, чем result[0]
.subs(result)Подставляет оба x и y сразу во всё уравнение

Что поменять: правые части 10 и 2 на числа из вашей задачи.


Производная многочлена

Зачем: домашка «найти f′(x)» для f(x) = x⁴ − 3x² + 5x − 7; SymPy — эталон для сверки.

Правило из учебника: (xⁿ)′ = n·xⁿ⁻¹.

from sympy import symbols, diff

x = symbols("x")

f = x**4 - 3*x**2 + 5*x - 7
df = diff(f, x)

print("f(x) =", f)
print("f'(x) =", df)
print("f'(1) =", df.subs(x, 1))

Что выведет:

f(x) = x**4 - 3*x**2 + 5*x - 7
f'(x) = 4*x**3 - 6*x + 5
f'(1) = 3

Разбор по строкам:

СтрокаСмысл
f = x**4 - 3*x**2 + ...Запись функции; каждый член — отдельное слагаемое
diff(f, x)«Производная f по x»; второй аргумент обязателен
4*x**3 - 6*x + 5(x⁴)′=4x³, (−3x²)′=−6x, (5x)′=5, (−7)′=0
df.subs(x, 1)Значение производной в точке x = 1; для отчёта «найти f′(1)»

Что поменять: коэффициенты в f = ...; для f′(2) подставьте df.subs(x, 2).


Производная sin x и cos x

Зачем: таблица производных (sin)′ = cos, (cos)′ = −sin; плюс правило произведения для sin x · cos x.

from sympy import symbols, diff, sin, cos, simplify

x = symbols("x")

print("(sin x)' =", diff(sin(x), x))
print("(cos x)' =", diff(cos(x), x))

prod = sin(x) * cos(x)
d_prod = diff(prod, x)
print("(sin x * cos x)' =", d_prod)
print("Упрощённо:", simplify(d_prod))

Что выведет:

(sin x)' = cos(x)
(cos x)' = -sin(x)
(sin x * cos x)' = -sin(x)**2 + cos(x)**2
Упрощённо: cos(2*x)

Разбор:

  • from sympy import sin, cosне math.sin: модуль math не знает символ x.
  • (sin x · cos x)′ — правило произведения; simplify сворачивает в cos(2x) через формулу двойного угла.
  • Минус у (cos x)′ — частая ошибка в ДЗ; сверяйте знак.

Вторая производная и точка перегиба

Зачем: «найти f''(x)», «где f''(x) = 0» — черновик к исследованию функции.

from sympy import symbols, diff, solve, Eq

x = symbols("x")

f = x**3 - 6*x**2 + 9*x
f1 = diff(f, x)
f2 = diff(f, x, 2)

print("f(x) =", f)
print("f'(x) =", f1)
print("f''(x) =", f2)
print("f''(x) = 0 при x =", solve(Eq(f2, 0), x))

Что выведет:

f(x) = x**3 - 6*x**2 + 9*x
f'(x) = 3*x**2 - 12*x + 9
f''(x) = 6*x - 12
f''(x) = 0 при x = [2]

Разбор:

  • diff(f, x, 2) — вторая производная; то же, что два раза diff(f, x).
  • solve(Eq(f2, 0), x) — где f'' обнуляется; x = 2 — кандидат в точку перегиба (нужна ещё смена знака f'').
  • Полный график — Matplotlib; SymPy даёт формулы, график — «картинка для отчёта».

Частная производная (2–3 курс, несколько переменных)

Зачем: f(x, y) = x²y + sin y — «найти ∂f/∂x и ∂f/∂y»; одна буква «замирает», как константа.

from sympy import symbols, diff, sin

x, y = symbols("x y")

f = x**2 * y + sin(y)

df_dx = diff(f, x)
df_dy = diff(f, y)

print("f(x,y) =", f)
print("∂f/∂x =", df_dx, " (y как константа)")
print("∂f/∂y =", df_dy, " (x как константа)")

Что выведет:

f(x,y) = x**2*y + sin(y)
∂f/∂x = 2*x*y (y как константа)
∂f/∂y = x**2 + cos(y) (x как константа)

Разбор:

  • diff(f, x) — y не меняется → множитель y остаётся при (x²)′ = 2x.
  • diff(f, y) — x² как число → производная y равна x²; (sin y)′ = cos y.
  • Смешанная ∂²f/∂x∂y: diff(f, x, y).

Упрощение — раскрыть скобки, sin²+cos², разложить

Зачем: «приведите к виду…», «докажите тождество» — SymPy сокращает рутину.

from sympy import symbols, expand, factor, simplify, sin, cos

x = symbols("x")

expr1 = (x + 3)**2
expr2 = sin(x)**2 + cos(x)**2
expr3 = x**2 - 9

print("Раскрыть (x+3)² :", expand(expr1))
print("sin²x + cos²x :", simplify(expr2))
print("Разложить x² - 9 :", factor(expr3))

Что выведет:

Раскрыть (x+3)² : x**2 + 6*x + 9
sin²x + cos²x : 1
Разложить x² - 9 : (x - 3)*(x + 3)

Разбор:

ФункцияКогда использовать
expandНужны слагаемые без скобок
factorНужны множители (корни видны)
simplify«Сделайте проще» — SymPy сам выбирает шаги

Подстановка числа — найти f(2) и f′(2)

Зачем: формула уже есть, нужно число для таблицы или ответа «в точке x₀».

from sympy import symbols, diff, Rational

x = symbols("x")

f = x**3 - 2*x
df = diff(f, x)

x0 = 2
print("f(2) =", f.subs(x, x0))
print("f'(2) =", df.subs(x, x0))

half = Rational(1, 2)
print("f(1/2) =", f.subs(x, half))

Что выведет:

f(2) = 4
f'(2) = 10
f(1/2) = -7/8

Разбор:

  • .subs(x, x0) — «везде вместо x поставь x0»; работает и для df.
  • Rational(1, 2) — точная дробь ½; результат −7/8, а не −0.8750000001.
  • Несколько букв: expr.subs({x: 1, y: 2}).

Предел — замечательный lim sin x / x

Зачем: первый курс, «доказать, что предел равен 1» — SymPy знает таблицу.

from sympy import symbols, limit, sin, oo

x = symbols("x")

L1 = limit(sin(x)/x, x, 0)
L2 = limit(1/x, x, oo)

print("lim sin(x)/x при x→0 =", L1)
print("lim 1/x при x→+∞ =", L2)

Что выведет:

lim sin(x)/x при x→0 = 1
lim 1/x при x→+∞ = 0

Разбор:

  • limit(выражение, x, точка) — x стремится к точке; 0 — обычное число.
  • oo — бесконечность SymPy (две буквы o); импорт from sympy import oo.
  • Для предела слева/справа: limit(..., x, 0, dir='+').

Неопределённый интеграл

Зачем: «найти первообразную» — обратная операция к производной; константу C в школе дописывают от руки.

from sympy import symbols, integrate, diff

x = symbols("x")

f = x**3 - 3*x
F = integrate(f, x)

print("f(x) =", f)
print("∫f dx =", F, "+ C")
print("Проверка: (F)' =", diff(F, x))

Что выведет:

f(x) = x**3 - 3*x
∫f dx = x**4/4 - 3*x**2/2 + C
Проверка: (F)' = x**3 - 3*x

Разбор:

  • integrate(f, x) — первообразная; SymPy не пишет + C — добавьте в отчёт сами.
  • diff(F, x) снова даёт f — лучшая самопроверка.
  • Определённый интеграл от 0 до 1: integrate(f, (x, 0, 1)).

Примеры по темам

1. Уравнения посложнее

1.1. Уравнение с дробью

Задача: (x + 1)/(x − 2) = 3.

from sympy import symbols, Eq, solve

x = symbols("x")

eq = Eq((x + 1)/(x - 2), 3)
solutions = solve(eq, x)

print("Уравнение:", eq)
print("Корни:", solutions)
for s in solutions:
print(f" x = {s}: левая часть = {(x + 1)/(x - 2).subs(x, s)}")

Что выведет:

Уравнение: Eq((x + 1)/(x - 2), 3)
Корни: [7/2]
x = 7/2: левая часть = 3

Разбор:

  • SymPy умножает обе части на (x − 2) символьно.
  • ОДЗ: x ≠ 2; если корень обнуляет знаменатель — отбросить вручную.
  • Дробный ответ 7/2 — это 3.5; для отчёта можно float(7/2).

1.2. Уравнение с параметром a

Задача: ax + 2 = 8 → выразить x через a.

from sympy import symbols, Eq, solve

x, a = symbols("x a")

eq = Eq(a*x + 2, 8)
sol = solve(eq, x)

print("x =", sol[0])
print("При a = 2:", sol[0].subs(a, 2))

Что выведет:

x = 6/a
При a = 2: 3

Разбор:

  • Ответ 6/a — общая формула; при a = 0 уравнение 2 = 8нет решений; SymPy это отдельно не расписывает.
  • Для курсовой с параметром перебирайте a = 0 вручную.

2. Исследование функции

2.1. Экстремумы — где f′(x) = 0

Задача: f(x) = x³ − 3x² + 2 — найти критические точки и знак f''.

from sympy import symbols, diff, solve, Eq

x = symbols("x")

f = x**3 - 3*x**2 + 2
f1 = diff(f, x)
f2 = diff(f, x, 2)

critical = solve(Eq(f1, 0), x)

print("f'(x) =", f1)
print("f'(x) = 0 при x =", critical)
print()
for c in critical:
val_f2 = f2.subs(x, c)
kind = "минимум?" if val_f2 > 0 else ("максимум?" if val_f2 < 0 else "нужен доп. тест")
print(f" x = {c}, f'' = {val_f2}{kind}")

Что выведет:

f'(x) = 3*x**2 - 6*x
f'(x) = 0 при x = [0, 2]

x = 0, f'' = -6 → максимум?
x = 2, f'' = 6 → минимум?

Разбор:

  • critical — точки, где касательная горизонтальна.
  • f'' > 0 → «чаша вверх» → минимум; f'' < 0 → максимум (для гладких f).
  • График для наглядности — построить f(x) в Matplotlib.

2.2. Сложная функция — sin(x² + 1)

Зачем: цепное правило (сложная функция) — частая ошибка в ДЗ.

from sympy import symbols, diff, sin

x = symbols("x")

f = sin(x**2 + 1)
df = diff(f, x)

print("f(x) =", f)
print("f'(x) =", df)

Что выведет:

f(x) = sin(x**2 + 1)
f'(x) = 2*x*cos(x**2 + 1)

Разбор:

  • Внешняя sin → cos; внутренняя (x²+1) → 2x; перемножаем: 2x·cos(x²+1).
  • Сверьте с ручным решением — если совпало, цепочка правильная.

2.3. Физика — путь и скорость (производная по времени)

Задача: s(t) = 5t² + 2t — найти v(t) = s′(t) и v при t = 3.

from sympy import symbols, diff

t = symbols("t")

s = 5*t**2 + 2*t
v = diff(s, t)

print("s(t) =", s, " (метры)")
print("v(t) = s'(t) =", v, " (м/с)")
print("v(3) =", v.subs(t, 3), " м/с")

Что выведет:

s(t) = 5*t**2 + 2*t (метры)
v(t) = s'(t) = 10*t + 2 (м/с)
v(3) = 32 м/с

Разбор:

  • Буква t — время; symbols("t") так же, как x.
  • (5t²)′ = 10t, (2t)′ = 2 — равномерное ускорение в модели.

3. Красивый вывод и LaTeX

Зачем: вставить формулу в Word/Overleaf без ручного набора дробей.

from sympy import symbols, diff, sin, latex

x = symbols("x")
f = sin(x)/x
df = diff(f, x)

print("Производная (обычный print):")
print(df)
print()
print("LaTeX для отчёта:")
print(latex(df))

Что выведет (LaTeX-строка):

LaTeX для отчёта:
\frac{x \cos{\left(x \right)} - \sin{\left(x \right)}}{x^{2}}

Разбор:


4. Переиспользуемые шаблоны

4.1. Решить уравнение и проверить корни

from sympy import symbols, Eq, solve

def solve_and_print(equation, variable):
"""equation — Eq(...); variable — символ, например x."""
roots = solve(equation, variable)
print("Уравнение:", equation)
print("Корни:", roots)
for r in roots:
left = equation.lhs.subs(variable, r)
right = equation.rhs.subs(variable, r)
print(f" x = {r}: {left} = {right} ?", left == right)

x = symbols("x")
solve_and_print(Eq(x**2 - 9, 0), x)

Разбор:

  • equation.lhs / .rhs — левая и правая части уравнения.
  • Цикл для каждого корня — у квадратного их два, проверять оба.
  • Вынесите в функцию — для контрольной меняете только Eq(...).

4.2. Производная n-го порядка

from sympy import symbols, diff, sin

def nth_derivative(expr, variable, n=1):
return diff(expr, variable, n)

x = symbols("x")
print("4-я производная sin(x) =", nth_derivative(sin(x), x, 4))

Что выведет: sin(x) — цикл sin → cos → −sin → −cos → sin.


4.3. Шаблон «своя задача за 30 секунд»

Скопируйте, заполните три строки с # ←:

from sympy import symbols, Eq, solve, diff

x = symbols("x")

# ← Ваше уравнение, например 3*x - 1 = 8
equation = Eq(3*x - 1, 8)

# ← Или ваш многочлен для производной
f = x**3 - x

print("Корни:", solve(equation, x))
print("f'(x) =", diff(f, x))

Частые задания из школы и вуза

ЗаданиеРаздел
Решить 2x + 5 = 13Линейное
x² − 7x + 12 = 0Квадратное
Найти D и корниДискримinant
x + y = 5, x − y = 1Система
Производная x³ − 4xМногочлен
(sin x · cos x)′sin и cos
f''(x), точка перегибаВторая производная
∂f/∂x для x²yЧастная
lim sin x / xПредел
∫ (x³ − 3x) dxИнтеграл
Экстремум x³ − 3x²Экстремумы
Формула в LaTeXLaTeX
Как сдавать работу

В тетради — полное решение от руки с обоснованием. SymPy — проверка и черновик, если преподаватель разрешает калькулятор/компьютер. Для отчёта: формула из latex(...)LaTeX; график f(x) → Matplotlib.

SymPy и Wolfram Alpha / калькулятор

Wolfram Alpha в браузере делает то же символьно — удобно на телефоне. SymPy выгоден, когда ответ нужно встроить в Python-скрипт (лабораторная, автопроверка ДЗ, 100 задач в цикле). Калькулятор Casio — только числа; SymPy — формулы и точные дроби.


См. также


См. также

Другие статьи этого же раздела в боковом меню (как на странице "О разделе").