Esempi: Lezione 6
Contents
Esempi: Lezione 6¶

6.0 Esempio di ricerca di zeri¶
/*
c++ -o main_04 main_04.cpp
*/
#include <cstdlib>
#include <iostream>
#include <cmath>
double func (double x)
{
return cos (x) ;
}
double bisezione (
double g (double),
double xMin,
double xMax,
double precision = 0.0001
)
{
double xAve = xMin ;
while ((xMax - xMin) > precision)
{
xAve = 0.5 * (xMax + xMin) ;
if (g (xAve) * g (xMin) > 0.) xMin = xAve ;
else xMax = xAve ;
}
return xAve ;
}
int main (int argc, char ** argv)
{
std::cout << "Zero della funzione = " << bisezione (func, 0., 4.) << std::endl ;
return 0 ;
}

6.1 Esempio di bisezione ricorsiva¶
/*
c++ -o main_05 main_05.cpp
*/
#include <cstdlib>
#include <iostream>
#include <cmath>
double func (double x)
{
return cos (x) ;
}
double bisezione_ricorsiva (
double g (double),
double xMin,
double xMax,
double precision = 0.0001
)
{
double xAve = 0.5 * (xMax + xMin) ;
if ((xMax - xMin) < precision) return xAve ;
if (g (xAve) * g (xMin) > 0.) return bisezione_ricorsiva (g, xAve, xMax, precision) ;
else return bisezione_ricorsiva (g, xMin, xAve, precision) ;
}
int main (int argc, char ** argv)
{
std::cout << "Zero della funzione = " << bisezione_ricorsiva (func, 0., 4.) << std::endl ;
return 0 ;
}

6.2 Esempio di disegno di un punto ed una funzione¶
/*
c++ -o main_02 `root-config --glibs --cflags` main_02.cpp
*/
#include "TF1.h"
#include "TMarker.h"
#include "TCanvas.h"
int main (int argc, char ** argv)
{
// https://root.cern.ch/root/html600/TF1.html
TF1 fa1 ("fa1", "sin(x)/x", 0, 10) ;
TCanvas c1 ;
fa1.Draw () ;
// https://root.cern.ch/root/html528/TMarker.html
TMarker punto (5., 0.5, 20) ;
punto.Draw () ;
c1.Print ("main_02.png", "png") ;
}
