sabato 12 agosto 2023

Integrale in Python

Integrale in Python senza l'uso di math.

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)

Nessun commento:

Posta un commento