πŸ”Ž Как Π½Π°ΠΉΡ‚ΠΈ пСрСсСчСниС Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ² Π² Python: ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

Π’ Python Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ пСрСсСчСниС Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ² с использованиСм Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Matplotlib. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°:


import matplotlib.pyplot as plt

# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… для Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ²
x = [1, 2, 3, 4, 5]
y1 = [2, 4, 6, 8, 10]
y2 = [5, 3, 7, 2, 9]

# ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ²
plt.plot(x, y1, label='Π“Ρ€Π°Ρ„ΠΈΠΊ 1')
plt.plot(x, y2, label='Π“Ρ€Π°Ρ„ΠΈΠΊ 2')

# ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π»Π΅Π³Π΅Π½Π΄Ρ‹ ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°
plt.legend()
plt.title('ΠŸΠ΅Ρ€Π΅ΡΠ΅Ρ‡Π΅Π½ΠΈΠ΅ Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ²')

# НахоТдСниС пСрСсСчСния Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ²
intersection = set(x[y1.index(value)] for value in y2 if value in y1)

# Π’Ρ‹Π²ΠΎΠ΄ пСрСсСчСния
print("ΠŸΠ΅Ρ€Π΅ΡΠ΅Ρ‡Π΅Π½ΠΈΠ΅ Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ² Π½Π° x =", intersection)

# Визуализация пСрСсСчСния
plt.scatter(list(intersection), [y1[x.index(value)] for value in intersection], color='red')

# ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π³Ρ€Π°Ρ„ΠΈΠΊΠ°
plt.show()
    

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ создаСт Π΄Π²Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΈ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΈΡ… пСрСсСчСниС. Выводится мноТСство Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ x, Π³Π΄Π΅ Π΄Π²Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ значСния y. Π’Π°ΠΊΠΆΠ΅ отобраТаСтся графичСскоС прСдставлСниС пСрСсСчСния Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ красного Ρ†Π²Π΅Ρ‚Π°.

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Как Π½Π°ΠΉΡ‚ΠΈ пСрСсСчСниС Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ² Π² Python

ΠŸΠ΅Ρ€Π΅ΡΠ΅Ρ‡Π΅Π½ΠΈΠ΅ Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ² - это ваТная Π·Π°Π΄Π°Ρ‡Π° ΠΏΡ€ΠΈ Π°Π½Π°Π»ΠΈΠ·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π’ Python сущСствуСт нСсколько способов Π½Π°ΠΉΡ‚ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ пСрСсСчСния Π΄Π²ΡƒΡ… Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ². Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½ΠΈΡ….

1. ИспользованиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Matplotlib

Matplotlib - это ΠΎΠ΄Π½Π° ΠΈΠ· самых популярных Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ для Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² Python. Она прСдоставляСт Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ инструмСнты для рисования Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ² ΠΈ нахоТдСния ΠΈΡ… пСрСсСчСний.

Для Π½Π°Ρ‡Π°Π»Π°, установитС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Matplotlib с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

pip install matplotlib

Π”Π°Π»Π΅Π΅, ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ:

import matplotlib.pyplot as plt
import numpy as np

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ массивы с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ для Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ²:

x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

Π—Π°Ρ‚Π΅ΠΌ построим Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ plot():

plt.plot(x, y1, label='sin(x)')
plt.plot(x, y2, label='cos(x)')

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°ΠΉΠ΄Π΅ΠΌ Ρ‚ΠΎΡ‡ΠΊΠΈ пСрСсСчСния Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ². Для этого Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ numpy.intersect1d():

intersection = np.intersect1d(x[y1 > y2], x[y2 > y1])
print("Π’ΠΎΡ‡ΠΊΠΈ пСрСсСчСния:", intersection)

И, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΠΌ Ρ‚ΠΎΡ‡ΠΊΠΈ пСрСсСчСния Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ plot() ΠΈ символов 'ro' (красныС ΠΊΡ€ΡƒΠ³ΠΈ):

plt.plot(intersection, np.sin(intersection), 'ro')
plt.plot(intersection, np.cos(intersection), 'ro')
plt.legend()
plt.show()

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ для Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ² ΠΈ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ функциями для получСния Π±ΠΎΠ»Π΅Π΅ слоТных пСрСсСчСний.

2. ИспользованиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ SymPy

SymPy - это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… вычислСний Π² Python, которая ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для нахоТдСния аналитичСского Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ систСм ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ ΠΈ, соотвСтствСнно, Ρ‚ΠΎΡ‡Π΅ΠΊ пСрСсСчСния Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ².

УстановитС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ SymPy:

pip install sympy

Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ:

from sympy import symbols, Eq, solve

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅:

x, y = symbols('x y')

Π—Π°Π΄Π°ΠΉΡ‚Π΅ уравнСния, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π³Ρ€Π°Ρ„ΠΈΠΊΠ°ΠΌ:

equation1 = Eq(y, np.sin(x))
equation2 = Eq(y, np.cos(x))

Π Π΅ΡˆΠΈΡ‚Π΅ систСму ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ solve():

solution = solve((equation1, equation2), (x, y))
print("Π’ΠΎΡ‡ΠΊΠΈ пСрСсСчСния:", solution)

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ содСрТат аналитичСскиС значСния ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ Ρ‚ΠΎΡ‡Π΅ΠΊ пСрСсСчСния.

3. ИспользованиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ SciPy

SciPy - это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для Π½Π°ΡƒΡ‡Π½Ρ‹Ρ… ΠΈ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½Ρ‹Ρ… вычислСний Π² Python. Она Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ нахоТдСния пСрСсСчСний Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ².

УстановитС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ SciPy:

pip install scipy

Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ:

from scipy.optimize import fsolve

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π³Ρ€Π°Ρ„ΠΈΠΊΠ°ΠΌ:

def equation1(x):
    return np.sin(x) - 0.5

def equation2(x):
    return np.cos(x) - 0.5

НайдитС Ρ‚ΠΎΡ‡ΠΊΠΈ пСрСсСчСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ fsolve():

intersection = fsolve(lambda x: np.array([equation1(x), equation2(x)]), [1, 2, 3])
print("Π’ΠΎΡ‡ΠΊΠΈ пСрСсСчСния:", intersection)

Ѐункция fsolve() позволяСт Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ числСнныС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ систСм ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ.

Π’Ρ‹Π²ΠΎΠ΄

НахоТдСниС пСрСсСчСния Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ² Π² Python ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΎ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ способами, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ использованиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Matplotlib, SymPy ΠΈ SciPy. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· этих способов ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ свои ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ возмоТности для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π³Ρ€Π°Ρ„ΠΈΠΊΠ°ΠΌΠΈ ΠΈ нахоТдСния Ρ‚ΠΎΡ‡Π΅ΠΊ пСрСсСчСния.

Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ подходящий способ Π² зависимости ΠΎΡ‚ Π²Π°ΡˆΠΈΡ… ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… потрСбностСй ΠΈ уровня ΠΎΠΏΡ‹Ρ‚Π° Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. НС Π±ΠΎΠΉΡ‚Π΅ΡΡŒ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ ΠΈ настройками, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΆΠ΅Π»Π°Π΅ΠΌΡ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

4.3 ΠŸΠ΅Ρ€Π΅ΡΠ΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚Ρ€Π΅Π·ΠΊΠΎΠ². "ПоколСниС Python": курс для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…. ΠšΡƒΡ€Ρ Stepik

ΠžΡΠ½ΠΎΠ²Ρ‹ Matplotlib. Визуализация Π΄Π°Π½Π½Ρ‹Ρ…. Π“Ρ€Π°Ρ„ΠΈΠΊΠΈ ΠΈ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ Π² Python

ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ² Π½Π° python (ΠΏΠΈΡ‚ΠΎΠ½)

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

Как Π½Π°ΠΉΡ‚ΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π΅ число Π² Python? 🧐

⭐️ Как Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π±ΠΎΡ‚Π° для Дискорда Π½Π° Python для ΠΌΡƒΠ·Ρ‹ΠΊΠΈ? Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹!

πŸ”Ž Π“Π΄Π΅ Π²Ρ‹ΡƒΡ‡ΠΈΡ‚ΡŒ Python? Π’ΠΎΠΏ мСста для изучСния Python Π² России

πŸ”Ž Как Π½Π°ΠΉΡ‚ΠΈ пСрСсСчСниС Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ² Π² Python: ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

πŸ”§ Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ OS Python: идСальноС руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

πŸ”₯Как Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сразу нСсколько строк Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅βœοΈ

πŸ” Как ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ строку Π² Π½ΠΈΠΆΠ½ΠΈΠΉ рСгистр с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python? 🐍