Scilab #2 Metodo di Bisezione per determinare gli zeri di una funzione

Obiettivo: Determinare gli zeri di una funzione utilizzando il metodo di bisezione e sfruttando il software di calcolo numerico Scilab.

Il metodo di bisezione:

Il metodo di bisezione è un metodo numerico iterativo che serve per trovare una radice (zero) di una funzione continua su un intervallo [a, b], a condizione che la funzione cambi segno su quell’intervallo:

f(a)*f(b) < 0

Questo significa che la funzione passa da negativa a positiva (o viceversa), quindi c’è almeno uno zero in mezzo (per il teorema degli zeri di Bolzano).

Il funzionamento del metodo di bisezione:

  • Si sceglie un intervallo iniziale [a, b] tale che f(a)*f(b)<0
  • Si calcola il punto medio c=(a+b):2
  • Si valuta f(c):
  • Se f(c)=0 si è trovata la soluzione esatta.
  • Se f(a)*f(c)<0, la radice è tra a e c: si aggiorna il valore di b = c
  • Se f(b)*f(c)<0, la radice è tra b e c: si aggiorna il valore di a = c
  • Si ripete il procedimento fino a che l’intervallo è sufficientemente piccolo, cioè:∣b−a∣<tolleranza desiderata.
Esempio del metodo di bisezione

Codice:

Un esempio del metodo di bisezione viene effettuato utilizzando il seguente codice Scilab il quale ha l’obiettivo di determinare gli zeri della funzione:

y = cos(x) – x



Esercizi:

Graficare le seguenti funzioni utilizzando il software di calcolo numerico Scilab:

  • y = x^3 nell’intervallo [-1, 1]
  • y = x^3-x-2 nell’intervallo [1, 2]
  • y = sin(x) – x/2 nell’intervallo [1, 2]



Scilab #1 Analisi di Funzioni Matematiche Elementari

Obiettivo: Analizzare alcune semplici funzioni elementari utilizzando il software di calcolo numerico Scilab.

Principi di calcolo numerico

Quando a scuola si studiano funzioni come sin(x), cos(x), 3x, etc… si pensa alle funzione come ad un oggetto continuo.
Nel immaginario comune, esistono un’infinità di valori tra due numeri, mentalmente è possibile “zoomare” in modo arbitrario la funzione, e questa avrà sempre un valore.
E’ importante considerare che un software di calcolo numerico come Scilab non può fare questo.
Nel dettaglio, Scilab, invece di “conoscere” tutta la curva, fa una cosa molto più semplice e concreta:

  • Crea un vettore di punti del dominio (es. da 0 a 2π , con passo 0.1)
  • Valuta la funzione solo per quei punti
  • Memorizza in un vettore i punti del codominio
  • Collega i punti con seguenti sul grafico.



Nel codice presentemente riportato il software di calcolo numeri ha:

  • Ha preso circa 63 valori di x (da 0 a 2π)
  • Per ognuno ha calcolato sin⁡(x)
  • Ha ottenuto una lista di coppie (x, y)
  • Ha disegnato il grafico unendo i punti con delle linee

Un secondo metodo utile per graficare le funzioni, sicuramente meno intuitivo, è quello di utilizzare un ciclo for per elaborare un punto alla volta. Dal punto di vista pratico questo approccio è sicuramente molto meno intuitivo d’altro canto è sicuramente utile per rendere visibile cosa fa Scilab internamente, cioè valutare la funzione punto per punto.



Esercizi:

Graficare le seguenti funzioni utilizzando il software di calcolo numerico Scilab:

  • y = x^2
  • y = 10cos(x)
  • y = sin(10*x)
  • y = x^2+4*x+6