import matplotlib.pyplot as plt
import numpy as np
import math
def sen(x):
n=10
rad = x * (3.14159 / 180) # Converti l'angolo in radianti
seno = 0
for i in range(n):
termine = ((-1) ** i) * (rad ** (2 * i + 1)) / math.factorial(2 * i + 1)
seno += termine
return seno
def f(x):
return sen(x)
def integral(a, b, n):
# a e b sono gli estremi di integrazione
# n è il numero di rettangoli utilizzati per l'approssimazione
delta_x = (b - a) / n
result = 0
for i in range(n):
x = a + i * delta_x
result += f(x) * delta_x
return result
def plot_function_and_integral(a, b, n, r):
x = np.linspace(a, b, n)
y = f(x)
fig, ax = plt.subplots()
ax.plot(x, y, label='f(x)')
ax.fill_between(x, y, 0, alpha=0.3, label='Integrale')
ax.legend()
ax.grid(True)
plt.title(f'Integrale {r}')
plt.show()
# Esempio di utilizzo
a = 0
b = 400
n = 1000
r = integral(a, b, n)
plot_function_and_integral(a, b, n,r)