Trasformazioni delle Funzioni: Guida Completa a Traslazioni, Dilatazioni, Compressioni ed Errori Tipici (con Esempi e Laboratorio Python)

Cerca nel sito

Altri risultati..

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors

Cerca nelle Categorie

Trasformazioni delle Funzioni - Guida Completa a Traslazioni, Dilatazioni, Compressioni

Nel nostro articolo precedente abbiamo imparato a calcolare l’espressione originaria di una funzione [math]f(x)[/math] conoscendo il suo valore per un argomento modificato, come [math]f(x+5)[/math].


Abbiamo usato l’algebra e il “cambio di variabile” per risolvere l’equazione.

Ma cosa succede visivamente? Se disegnassimo queste funzioni su un piano cartesiano, che aspetto avrebbero?

Qui entra in gioco uno degli argomenti più affascinanti (e controintuitivi) dell’analisi matematica: le trasformazioni geometriche.

Capire come un “+5” o un “-3” modificano la forma di una curva ti permette di disegnare grafici complessi in pochi secondi, partendo da funzioni elementari.

Bonus Lab:

Per evitare di farti consumare quintali di carta millesimata, in fondo a questo articolo troverai un simulatore interattivo in Python pronto da eseguire gratuitamente su Google Colab. Potrai muovere i cursori in tempo reale e vedere come si deforma il grafico sotto i tuoi occhi!

Il grande paradosso visivo: destra o sinistra?

L’errore più comune quando si inizia a tracciare i grafici riguarda le traslazioni orizzontali.

Se la funzione base è [math]f(x)[/math] e noi vogliamo disegnare [math]f(x+5)[/math], l’istinto ci suggerisce di prendere il grafico e spostarlo verso destra (verso i numeri positivi).

Eppure, succede l’esatto contrario: il grafico si sposta verso sinistra.

Perché?

Pensa all’argomento come a un orologio interno alla funzione.

Se aggiungi 5 ([math]x+5[/math]), stai mandando l’orologio avanti. La funzione raggiunge i suoi valori “in anticipo” rispetto alla [math]x[/math] normale, e quindi il suo grafico appare spostato indietro sull’asse orizzontale.

Ecco un piccolo schema teorico da tenere a mente:

  • [math]f(x+c)[/math] con [math]c > 0 \implies[/math] Spostamento a sinistra di [math]c[/math] unità.
  • [math]f(x-c)[/math] con [math]c > 0 \implies[/math] Spostamento a destra di [math]c[/math] unità.
  • [math]f(x) + k \implies[/math] Spostamento in alto (le modifiche fuori dalla [math]f[/math] sono intuitive!).
  • [math]f(x) – k \implies[/math] Spostamento in basso.

La Tabella Master delle Trasformazioni

Per evitare ogni confusione, ecco lo schema definitivo da stampare nella mente.

Consideriamo [math]c[/math], [math]k[/math], [math]a[/math], [math]b[/math] come numeri positivi ([math]>0[/math]):

Scrittura Algebrica Tipo di Trasformazione Effetto sul Grafico Comportamento Mentale
[math]f(x – c)[/math] Traslazione Orizzontale Sposta a destra di [math]c[/math] unità Controintuitivo: Il meno va a destra
[math]f(x + c)[/math] Traslazione Orizzontale Sposta a sinistra di [math]c[/math] unità Controintuitivo: Il più va a sinistra
[math]f(x) + k[/math] Traslazione Verticale Sposta in alto di [math]k[/math] unità Intuitivo: Segue il segno grafico
[math]f(x) – k[/math] Traslazione Verticale Sposta in basso di [math]k[/math] unità Intuitivo: Segue il segno grafico
[math]a \cdot f(x)[/math] (con [math]a > 1[/math]) Dilatazione Verticale Stira il grafico verso l’alto Intuitivo: Moltiplica le altezze
[math]a \cdot f(x)[/math] (con [math]0 < a < 1[/math]) Compressione Verticale Schiaccia il grafico verso l’asse [math]x[/math] Intuitivo: Riduce le altezze
[math]f(b \cdot x)[/math] (con [math]b > 1[/math]) Compressione Orizzontale Schiaccia il grafico verso l’asse [math]y[/math] Controintuitivo: Più è grande [math]b[/math], più stringe
[math]f(b \cdot x)[/math] (con [math]0 < b < 1[/math]) Dilatazione Orizzontale Allunga il grafico in orizzontale Controintuitivo: Frazionare la [math]x[/math] “allarga” l’onda
[math]-f(x)[/math] Riflessione Verticale Ribalta la curva sottosopra Specchio rispetto all’asse [math]x[/math]
[math]f(-x)[/math] Riflessione Orizzontale Ribalta la curva destra/sinistra Specchio rispetto all’asse [math]y[/math]

⚠️ La Regola d’Oro

Guarda dove agisce la modifica. Se la modifica è dentro l’argomento (tocca direttamente la [math]x[/math]), l’effetto è sull’asse orizzontale ed è sempre l’opposto di ciò che ti aspetteresti. Se la modifica è fuori dalla funzione (tocca l’intero blocco), l’effetto è sull’asse verticale ed è esattamente ciò che vedi.

Vediamo 4 esercizi svolti nel dettaglio per padroneggiare questa tecnica.

Esercizio 1: La trappola classica (Traslazione Orizzontale)

Tracciare il grafico della funzione [math]y = (x-3)^2[/math].

Soluzione:

Individua la funzione base: La struttura principale è un quadrato, quindi la nostra funzione generatrice è la parabola elementare [math]y = x^2[/math], che ha il vertice nell’origine [math](0,0)[/math].

Analizza la trasformazione: Il [math]-3[/math] si trova dentro l’argomento della potenza (agisce direttamente sulla [math]x[/math] prima che venga elevata al quadrato). Siamo nel caso [math]f(x-c)[/math].

Ti potrebbe interessare anche:  Python: I cicli: il ciclo for

Applica lo spostamento: Poiché c’è un meno, l’orologio della funzione è in ritardo. Il grafico si sposta in avanti, verso destra, di 3 unità.

Risultato: La parabola è identica a quella di partenza, ma il suo vertice si trova ora nel punto [math](3,0)[/math].

💡 Richiamo Teorico: Perché il vertice è in [math]x=3[/math]? Per trovare il punto più basso della parabola (dove la [math]y[/math] vale zero), dobbiamo chiederci: quale numero sottratto a 3 dà zero? La risposta è 3. Ecco perché l’azzeramento della funzione avviene “più a destra”.

Esercizio 2: Dentro e Fuori (Traslazione Obliqua)

Tracciare il grafico di [math]y = \sqrt{x+2} – 1[/math].

Soluzione:

Funzione base: La radice quadrata [math]y = \sqrt{x}[/math]. Il suo grafico è una curva che parte dall’origine [math](0,0)[/math] e cresce lentamente nel primo quadrante.

Trasformazione orizzontale (dentro la radice): Abbiamo [math]x+2[/math]. Questo è un anticipo, quindi trasliamo il grafico verso sinistra di 2 unità. Ora il punto di partenza è [math](-2,0)[/math].

Trasformazione verticale (fuori dalla radice): Il [math]-1[/math] è applicato dopo che la radice è stata calcolata. Agisce direttamente sulle [math]y[/math]. Dobbiamo abbassare tutto il grafico di 1 unità.

Risultato: La curva della radice ha mantenuto la sua forma, ma il suo “punto di innesco” è scivolato nel punto [math](-2,-1)[/math].

💡 Richiamo Teorico: Ricorda sempre la gerarchia delle trasformazioni. Tutto ciò che accade prima della funzione base (dentro parentesi, sotto radice, all’esponente) modifica l’asse [math]x[/math] in modo controintuitivo. Tutto ciò che accade dopo modifica l’asse [math]y[/math] in modo logico e diretto.

Esercizio 3: L’effetto “Fast Forward” (Compressione Orizzontale)

Tracciare il grafico di [math]y = \sin(2x)[/math].

Soluzione:

Funzione base: La sinusoide [math]y = \sin(x)[/math], che compie un’onda completa in un periodo di [math]2\pi[/math].

Analisi del coefficiente: Qui non stiamo sommando, ma moltiplicando l’argomento per 2. Siamo nel caso [math]f(kx)[/math].

L’effetto visivo: Moltiplicare la [math]x[/math] per 2 significa che la funzione “corre il doppio più veloce”. Raggiungerà i suoi massimi e minimi nella metà del tempo. Geometricamente, subisce una compressione orizzontale di un fattore 2 verso l’asse [math]y[/math].

Risultato: Invece di completare un’onda in [math]2\pi[/math], la funzione completerà un’onda intera in [math]\pi[/math]. Le creste saranno più ravvicinate, come una molla schiacciata.

💡 Richiamo Teorico: Così come le traslazioni orizzontali sono inverse rispetto al segno (il + sposta a sinistra), anche le dilatazioni orizzontali sono inverse. Moltiplicare per un numero maggiore di 1 restringe il grafico. Dividere per un numero (es. [math]x/2[/math]) dilata il grafico, stirandolo.

Esercizio 4: Il Boss Finale (Trasformazioni Combinate)

Tracciare il grafico di [math]y = \ln(3x – 6)[/math].

Soluzione:

Questo è l’errore più insidioso nei test universitari. A prima vista, sembra una compressione di fattore 3 e uno spostamento a destra di 6. Falso.

Quando hai sia un coefficiente moltiplicativo che una somma nell’argomento, devi sempre raccogliere il coefficiente per leggere il vero spostamento.

Riscrittura strategica (Fondamentale!): Raccogliamo il 3 in evidenza.

[math]\displaystyle y = \ln(3(x – 2))[/math]

Funzione base: Il logaritmo naturale [math]y = \ln(x)[/math], che interseca l’asse [math]x[/math] nel punto [math](1,0)[/math] e ha un asintoto verticale in [math]x=0[/math].

Compressione orizzontale: Il coefficiente 3 comprime il grafico. Il punto di intersezione originale [math](1,0)[/math] si sposta in [math](1/3, 0)[/math].

Traslazione orizzontale: L’argomento ora è [math](x-2)[/math]. Dobbiamo spostare l’intero grafico compresso verso destra di 2 unità. Il nuovo asintoto verticale non sarà più l’asse [math]y[/math], ma la retta [math]x=2[/math].

Risultato: Il grafico è un logaritmo compresso contro il suo asintoto, e l’intera figura è traslata a destra di 2 unità.

💡 Richiamo Teorico:

Il raccoglimento a fattor comune è lo scudo definitivo contro gli errori. La forma corretta per leggere le trasformazioni orizzontali è [math]f(k(x-c))[/math]. Se lasci la forma [math]f(kx-c)[/math], il valore [math]c[/math] non rappresenta la vera traslazione, ma una falsa pista!

Per fissare davvero questi concetti, non c’è niente di meglio che vedere queste trasformazioni in azione.

⚠️ I 3 Errori Tipici nei Test (e come evitarli)

Quando ci si ritrova davanti al grafico di una funzione trasformata durante un compito in classe o un test di ammissione, la fretta può giocare brutti scherzi.

Ti potrebbe interessare anche:  Python: filtrare i dati (parte II)

Ecco i tre scivoloni più frequenti che costano caro in termini di punteggio, spiegati dettagliatamente per non cascarci mai più.

1. Confondere il segno interno (Il miraggio della destra/sinistra)

L’errore: Vedere l’espressione [math]f(x + 4)[/math] e traslare il grafico verso destra di 4 unità, pensando che il segno “+” corrisponda automaticamente alla direzione dei numeri positivi sull’asse [math]x[/math].

La realtà: Tutto ciò che accade dentro l’argomento della funzione si comporta in modo opposto all’intuito algebrico. Aggiungere 4 significa “anticipare” i tempi della funzione, quindi il grafico si sposta a sinistra. Viceversa, [math]f(x – 4)[/math] si sposta a destra.

Come salvarsi: Ricorda la domanda chiave: “Quale valore di [math]x[/math] annulla questo termine?” Per azzerare l’argomento di [math]f(x+4)[/math] ti serve [math]x = -4[/math] (che si trova a sinistra). Per azzerare [math]f(x-4)[/math] ti serve [math]x = 4[/math] (che si trova a destra).

2. Dimenticare il factoring (Il coefficiente parassita)

L’errore: Davanti a una funzione come [math]f(2x – 6)[/math], dedurre che il grafico subisce una compressione di fattore 2 e una traslazione a destra di 6 unità.

La realtà: La traslazione orizzontale non è mai quella “visibile” se la [math]x[/math] è accompagnata da un coefficiente moltiplicativo. Il coefficiente altera la lettura dello spostamento.

Come salvarsi: Prima di decretare di quante unità si sposta il grafico, devi obbligatoriamente raccogliere a fattor comune il coefficiente della [math]x[/math] dentro l’argomento.

Trasformiamo [math]f(2x – 6)[/math] in [math]f(2(x – 3))[/math].

Ora la lettura è corretta: la funzione è compressa di un fattore 2, ma lo spostamento reale a destra è di 3 unità, non di 6!

3. Invertire compressione e dilatazione orizzontale

L’errore: Pensare che moltiplicare la [math]x[/math] per un numero grande “allarghi” il grafico e che dividerla lo “restringa”. Ad esempio, disegnare [math]f(3x)[/math] tre volte più larga della funzione base.

La realtà: Anche in questo caso, l’argomento interno lavora al contrario. Moltiplicare per 3 accelera la funzione, costringendola a compiere le sue evoluzioni in un terzo dello spazio: il grafico si comprime verso l’asse [math]y[/math].

Come salvarsi: Associa l’operazione al concetto di velocità:

  • Coefficiente maggiore di 1 (es. [math]f(2x)[/math]) [math]\rightarrow[/math] La funzione va al doppio della velocità [math]\rightarrow[/math] Il grafico si stringe (compressione).
  • Coefficiente compreso tra 0 e 1 (es. [math]f(x/2)[/math]) [math]\rightarrow[/math] La funzione va a metà della velocità [math]\rightarrow[/math] Il grafico si dilata (stretching).

Passare dalla teoria algebrica alla visualizzazione geometrica

Passare dalla teoria algebrica alla visualizzazione geometrica è il momento in cui la matematica “prende vita”. Questo script Python è progettato specificamente per l’ambiente Google Colab e si propone come un laboratorio interattivo per esplorare le trasformazioni geometriche delle funzioni.

Sfruttando l’ecosistema ipywidgets per l’interfaccia utente e matplotlib per il motore grafico, il codice elimina la necessità di tracciare decine di grafici statici su carta. Permette invece di manipolare i parametri in tempo reale, offrendo un feedback visivo istantaneo.

L’Obiettivo Didattico

L’obiettivo principale dello script è far comprendere l’effetto dei quattro parametri fondamentali della trasformazione generale:

[math]\displaystyle y = a \cdot f(b(x – c)) + d[/math]

In particolare, lo script mira a:

  • Isolare l’effetto di ogni variabile: Permettere al lettore di muovere un solo slider alla volta per capire cosa facciano esattamente [math]a[/math], [math]b[/math], [math]c[/math] e [math]d[/math>.
  • Sfatare i nodi controintuitivi: Mostrare visivamente perché un segno “meno” dentro l’argomento sposti il grafico verso destra e perché un moltiplicatore maggiore di 1 lo comprima anziché dilatarlo.
  • Gestire i domini critici: Dimostrare come le trasformazioni influenzino non solo la posizione, ma anche il dominio di funzioni reali (come la radice quadrata), nascondendo automaticamente le zone in cui la funzione non è definita.

Il Codice

Ecco il codice completo per il laboratorio interattivo.

Puoi eseguirlo direttamente su Google Colab.


# Trasformazioni Geometriche - Laboratorio Interattivo
# Esegui questo script in Google Colab

import numpy as np
import matplotlib.pyplot as plt
from ipywidgets import interact, FloatSlider, Dropdown
import ipywidgets as widgets

# Funzione base selezionabile dall'utente
def funzione_base(x, scelta):
    if scelta == "Quadratica (x^2)":
        return x**2
    elif scelta == "Radice Quadrata (sqrt(x))":
        # Maschera i valori negativi per evitare errori
        return np.sqrt(np.maximum(x, 0))
    elif scelta == "Seno (sin(x))":
        return np.sin(x)
    elif scelta == "Esponenziale (e^x)":
        return np.exp(x)
    else:
        return x**2  # default

# Funzione trasformata: y = a * f(b(x - c)) + d
def funzione_trasformata(x, a, b, c, d, scelta):
    # Calcolo dell'argomento interno: b*(x - c)
    arg_interno = b * (x - c)
    # Calcolo della funzione base sull'argomento trasformato
    f_base = funzione_base(arg_interno, scelta)
    # Applicazione della dilatazione verticale e traslazione verticale
    y = a * f_base + d
    # Maschera per gestire domini non reali (es. radice di negativo)
    if scelta == "Radice Quadrata (sqrt(x))":
        # Laddove l'argomento è negativo, mette NaN per non visualizzare
        y = np.where(arg_interno >= 0, y, np.nan)
    return y

# Funzione per tracciare il grafico
def plot_trascinamenti(a, b, c, d, scelta):
    # Generazione del dominio x
    x = np.linspace(-10, 10, 1000)

    # Calcolo della funzione base (riferimento) e di quella trasformata
    y_base = funzione_base(x, scelta)
    y_trans = funzione_trasformata(x, a, b, c, d, scelta)

    # Creazione della figura
    plt.figure(figsize=(12, 6))

    # Grafico della funzione base
    plt.plot(x, y_base, label='Funzione Base', color='gray', linestyle='--', linewidth=1.5)

    # Grafico della funzione trasformata
    plt.plot(x, y_trans, label='Funzione Trasformata', color='blue', linewidth=2.5)

    # Aggiunta della griglia e degli assi
    plt.axhline(0, color='black', linewidth=0.8)
    plt.axvline(0, color='black', linewidth=0.8)
    plt.grid(True, linestyle=':', alpha=0.6)

    # Titolo e legenda
    plt.title(f'Trasformazione: y = {a:.1f} * f({b:.1f}(x - {c:.1f})) + {d:.1f}')
    plt.xlabel('x')
    plt.ylabel('y')
    plt.legend()
    plt.xlim(-10, 10)

    # Gestione automatica del limite y per evitare schiacciamenti
    y_min, y_max = np.nanmin(y_trans), np.nanmax(y_trans)
    if not np.isnan(y_min) and not np.isnan(y_max):
        margine = (y_max - y_min) * 0.2 if y_max > y_min else 2
        plt.ylim(y_min - margine, y_max + margine)

    plt.show()

# Creazione dell'interfaccia interattiva
interact(plot_trascinamenti,
    a=FloatSlider(value=1.0, min=-3.0, max=3.0, step=0.1, description='a (Verticale)'),
    b=FloatSlider(value=1.0, min=-3.0, max=3.0, step=0.1, description='b (Orizzontale)'),
    c=FloatSlider(value=0.0, min=-5.0, max=5.0, step=0.1, description='c (Trasl. H)'),
    d=FloatSlider(value=0.0, min=-5.0, max=5.0, step=0.1, description='d (Trasl. V)'),
    scelta=Dropdown(options=['Quadratica (x^2)', 'Radice Quadrata (sqrt(x))', 'Seno (sin(x))', 'Esponenziale (e^x)'],
                    value='Quadratica (x^2)',
                    description='Funzione Base:')
)

print("\n✅ Laboratorio interattivo avviato con successo!")
print("🎯 Muovi gli slider per esplorare l'effetto di ogni parametro sulla curva.")
    

Ti potrebbe interessare anche:  Test di autovalutazione sugli Integrali: Esercizi Svolti e Spiegati (Livello Base, Parti, Razionali, Impropri)

Come utilizzare il laboratorio

Una volta eseguito lo script, appariranno degli slider interattivi e un menu a tendina. Ecco come interpretare i parametri:

  • a (Verticale): Modifica l’altezza della curva. Valori negativi ribaltano il grafico.
  • b (Orizzontale): Comprime (|b| > 1) o dilata (|b| < 1) il grafico. Valori negativi riflettono l’immagine.
  • c (Traslazione Orizzontale): Sposta il grafico a destra (c > 0) o a sinistra (c < 0).
  • d (Traslazione Verticale): Sposta il grafico verso l’alto (d > 0) o il basso (d < 0).
  • Funzione Base: Scegli tra le quattro funzioni per vedere come le trasformazioni agiscono su forme diverse.

💡 Suggerimento:

Inizia tenendo [math]a=1[/math], [math]b=1[/math], [math]c=0[/math], [math]d=0[/math] e muovi un parametro alla volta per isolarne l’effetto. La linea tratteggiata grigia rappresenta la funzione base, mentre la linea blu è la curva trasformata.


(4)

PubblicitàPubblicità