Programma sommatoria con ciclio

di il
1 risposte

Programma sommatoria con ciclio

Un approssimazione di $pi$ di “grado $n$” può essere calcolata tramite la somma
$ pi_i=sum_(j=0)^i (-1)^j*4/(2j+1) $
1. Sviluppare un programma che prenda un numero intero, $n$, e calcoli l’approssimazione di “grado $n$”.
2. Sviluppare una seconda versione che prenda un double, $epsilon$, e calcoli un approssimazione di $pi$ di “grado
$n$” tale che $|pi_i - pi_(i-1)|<epsilon$

il primo punto è cosi è funziona:



#include <iostream>
#include <cmath>
using namespace std;


int main() {

double pi=0;

int j=0,x;
cout<<"dammi il grado dell approssimazione";
cin>>x;

while (j<=x){
	
	pi=pi+((pow(-1,j)*4)/((2*j)+1));
	j++;
}

cout<<pi;

return 0;
}
ho dei problemi con il secondo punto:

ho provato con cicli annidati per calcolare le somme e metterle in relazione con la richiesta di $| |<epsilon$
diff=4-3/4 è il primo termine della differenza di sommatorie, ho dei problemi con l'indice i in quando non saprei come dargli una fine, visto che la fine è il relazione con la soddisfazione della $| |<epsilon$

#include <iostream>
#include <cmath>
using namespace std;

int main() {

double pi=0,pi1=0,e,diff=4-3/4;
int i,j=0;

cin>>e;

while (diff<e) {

while (j<=i){   pi=pi+((pow(-1,j)*4)/((2*j)+1));      j++;     }

while (j<=i){  pi1=pi1+((pow(-1,j-1)*4)/((2*(j-1))+1));  j++;  }

diff=pi-pi1;

}

cout<<diff;

return 0;

}

1 Risposte

  • Re: Programma sommatoria con ciclio

    Sono di fretta e non ho guardato il codice, ma se ti devi fermare quando $|pi_i - pi_(i-1)|<epsilon$ allora puoi controllarlo con una condizione interna al ciclo e uscire tramite
    break;
Devi accedere o registrarti per scrivere nel forum
1 risposte