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.
Зачем это нужно на практике:
| Ситуация | Калькулятор / math | SymPy |
|---|---|---|
| «Сколько будет 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 и y | symbols | x, y = symbols("x y") |
| Записать «2x + 3 = 11» | Eq | Eq(2*x + 3, 11) |
| Решить одно уравнение | solve | solve(Eq(x**2 - 5*x + 6, 0), x) |
| Решить систему | solve + список | solve([Eq(...), Eq(...)], x, y) |
| Производная | diff | diff(x**3 - 4*x, x) |
| Вторая производная | diff с 2 | diff(f, x, 2) |
| Частная ∂/∂x | diff по x | diff(f, x) — y «константа» |
| Упростить sin²+cos² | simplify | simplify(sin(x)**2 + cos(x)**2) |
| Подставить x = 5 | subs | expr.subs(x, 5) |
| Предел | limit | limit(sin(x)/x, x, 0) |
| Формула для LaTeX | latex | latex(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}}
Разбор:
latex(df)— готовая строка; в Overleaf:$...$или\begin{equation}...\end{equation}.- Подробнее про документ — LaTeX — формулы для отчётов.
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² | Экстремумы |
| Формула в LaTeX | LaTeX |
В тетради — полное решение от руки с обоснованием. SymPy — проверка и черновик, если преподаватель разрешает калькулятор/компьютер. Для отчёта: формула из latex(...) → LaTeX; график f(x) → Matplotlib.
Wolfram Alpha в браузере делает то же символьно — удобно на телефоне. SymPy выгоден, когда ответ нужно встроить в Python-скрипт (лабораторная, автопроверка ДЗ, 100 задач в цикле). Калькулятор Casio — только числа; SymPy — формулы и точные дроби.
См. также
- Matplotlib — графики (примеры) — нарисовать f(x) после SymPy
- LaTeX — формулы для отчётов — оформить формулы в PDF
- NumPy — массивы и матрицы (примеры) — численные расчёты и массивы
- Анализ данных — NumPy, SciPy — теория стека
- Примеры фигур Turtle — другая популярная галерея Python для учёбы
- Pandas — типовые операции — таблицы с результатами измерений
- Python — работа с файлами — сохранить вывод в файл
См. также
Другие статьи этого же раздела в боковом меню (как на странице "О разделе"). Практическая карта типовых IT-задач: термины, пошаговое внедрение, проверка качества и типичные ошибки. Простой консольный чат на C# — учебное приложение с сокетами: TCP между клиентом и сервером, многопоточность и обмен сообщениями в консоли. Примеры вёрстки на HTML и CSS с разбором: центрирование, Flexbox, Grid, формы, шапка, подвал и адаптив для учебы и портфолио. Перед началом работы обязательно изучите главу Turtle . Галерея 3D-фигур на Panda3D — карточки, куб, пирамида, сфера, сетки и составные сцены; код для локального запуска. Готовые docker-compose.yml с разбором каждой строки — nginx, PostgreSQL, Redis, WordPress, MongoDB. Примеры для школьников и студентов: postgres example, поднять базу локально, app + db. Примеры nginx.conf для статики, reverse proxy, React/Vue SPA, PHP, SSL и балансировки — построчный разбор директив, проверка curl и типичные ошибки для лабораторных и VPS. dockerfile example — 10 готовых Dockerfile с построчным разбором: node, python, golang, react nginx, spring boot, php, dotnet. Для студентов, лабораторных и docker build с нуля. PromQL example — готовые запросы Prometheus и Grafana с построчным разбором: up, rate, node_exporter cpu, memory, disk, http_requests_total, histogram_quantile p99, алерты. Для студентов, лабораторных и devops docker compose. Готовые манифесты Kubernetes с разбором каждой строки — Pod, Deployment, Service, ConfigMap, Secret, Ingress. Примеры для Minikube, kind и kubectl apply. Примеры графиков Matplotlib на Python для школьников и студентов — sin, cos, парабола, столбцы, scatter, гистограмма, подграфики; код с подробным разбором. Примеры pandas на Python для школьников и студентов — DataFrame, фильтрация, groupby, очистка, merge, сводные таблицы и экспорт; код с подробным разбором каждой строки.Готовые решения
Простой консольный чат на CSharp
HTML + CSS — готовые макеты
Примеры фигур Turtle на Python
Примеры фигур Panda3D на Python
Docker Compose — готовые стеки
Nginx — конфиги под задачу
Dockerfile — 10 типовых образов
Prometheus + Grafana — запросы
Kubernetes YAML — минимальные манифесты
Matplotlib — графики
Pandas — типовые операции