|
In matematica pare che
Newton fosse autodidatta; le sue conoscenze progredirono grazie allo studio
degli scritti di John Wallis, di Cartesio e della scuola olandese. Newton
dette contributi in tutti i campi della matematica allora conosciuti.
Fu particolarmente famoso per aver fornito le soluzioni ai problemi di
geometria analitica del tempo. e per l'introduzione del "metodo delle
flussioni" e il "metodo inverso delle flussioni", ovvero
il calcolo differenziale e integrale, utilizzando il termine "flussione"
poiché immaginò che una quantità "fluisse"
da una grandezza a un’altra. Le flussioni venivano espresse algebricamente,
come i differenziali, ma Newton utilizzò ampiamente (in modo particolare
nei Principia) analoghe dimostrazioni geometriche, che considerava più
chiare e rigorose.
Gli studi newtoniani di matematica rimasero ignoti fino
al 1704, quando egli pubblicò, in appendice a Opticks, due opuscoli
che presentavano le sue scoperte; ciò provocò un’accesa
controversia con Leibniz circa la priorità dell’invenzione
del calcolo infinitesimale. I contrasti, che proseguirono anche dopo la
sua morte, coinvolsero anche le posizioni dei due pensatori in materia
di fisica e metafisica. Le lezioni universitarie di matematica che Newton
tenne dal 1673 al 1683 furono pubblicate nel 1707. |
|
|
Il metodo di Newton per calcolare "Radice"
di a
xn+1 = 1/2(xn+a/xn) converge a ? a
//Radix1.cpp
#include<iostream.h>
int main()
{ float a,x,xx;
int j=0, passi;
cout<<" Numero: ";
cin>>a;
cout<<"Passi: ";
cin>> passi;
x=(1+a)/2;
do {
xx=x;
cout<<"passo "<<j+1<<" radice di "<<a<<"="<<xx
<< '\n';
x=(xx+a/xx)/2;
j++;
}while(j<passi);
return 0;
}
|
|
|
Se f(x)=0
è l'equazione avente una sola radice nell'intervallo [a, b] e se
la derivata prima la derivata seconda non si annullano mai (quindi per
l'ipotesi di continuità hanno sempre lo stesso segno), si può
ottenere una successione che converge alla soluzione utilizzando il metodo
delle tangenti.
Poiché f"(x) è di segno costante, in uno dei due estremi
la funzione avrà lo stesso segno di f", sia a tale estremo.
si assume, come primo valore approssimante la radice lo stesso estremo
a:
x1=a
L'equazione della tangente nel punto (x1, f(x1)) è y= f(x1)+(x-
x1) f'(x1).
essa interseca l'asse x in un punto compreso tra x1 e la soluzione, prenderemo
questo punto come nuova approssimazione della soluzione. Da:
y=0
y= f(x1)+(x- x1) f'(x1)
si ottiene
x2=x1-f(x1)/f'(x1)
Procedendo allo stesso modo a partire da x2 si ottiene
x3=x2-f(x2)/f'(x2)
Le ipotesi fatte sulla f" garantiscono che la concavità non
cambia e quindi che la successione delle tangenti intersecano l'asse x
in punti dalla stessa parte rispetto la soluzione
#include<math.h>
#include<iostream.h>
float f(float x);
float f1(float x);
float f2(float x);
void ingresso( float &a, float &b);
int main()
{ float a, b, fa, fb,d,eps=0.0001;
int c=0, passi;
do { cout<<"estremi dell'intervallo "; cin>>a>>b;
} while(f(a)*f(b)>0);
ingresso(a,b);
d=f(a)/f1(a);
cout<<"numero di iterazioni ";cin>>passi;
while((c<=passi)&&(fabs(d)>=eps)) {c++; a=a-d; d=f(a)/f1(a);
}
if(c<=passi) cout<<"la radice Š "<<a<<"
passi="<<c;
else cout<<"impossibile raggiungere la precisione richiesta";
return 0;
}
float f(float x)
{ float y;
y=exp(x)-4*x;
return(y);
}
float f1(float x)
{ float y1;
y1=exp(x)-4;
return(y1);
}
float f2(float x)
{float y2;
y2=exp(x);
return(y2);
}
void ingresso( float &a, float &b)
{ float ap;
if(f(a)*f2(a)<0) { ap=a; a=b; b=ap;}
}
|
|