Ci sono 10 tipi di persone: chi capisce il sistema binario e chi no!! :)
PROGRAMMAZIONE

Programmazione C: Integrazione numerica

/*	
	Autore: Mandrà Salvatore, Brotto Diego
	(www.criptonite.org)
	Data: mar 22/03/05
	Nome del File: simpson.c
	Commenti: Programma per il calcolo integrale 
	di una funzione assegnata
	*/

#include < stdio.h>
#include < stdlib.h>
#include < math.h>

// Il MIN ed il MAX va valutato 
// da funzione a funzione (ovviamente ...)

#define MIN -10000
#define MAX 10000

float funz(double val);

int main() {
	double inf, sup, risultato=0;
	int interv;
	int i;
	double passo;
	printf("Programma per il calcolo integrale\n\n");
	printf("Inserire gli estremi di Integrazione separati da
		 uno spazio\n");
	scanf("%lf%*c%lf", &inf, & sup );
	printf("\nInserire il Numero di 
		Intervalli di Partenza\n");
	scanf("%d", &interv);
	// Riaggiustiamo un po' i valori per evitare fesserie
	// Nel caso del calcolo mediante la parabola è necessario
	// che il numero di intervalli sia dispari
	interv=((interv % 2)==0) ? interv+1 : interv;
	inf=(inf < MIN) ? MIN : inf;
	sup=(sup > MAX) ? MAX : sup;
	// P.S.: Qui uso la variabile passo solo 
	// come variabile di scambio

	if(inf>sup) { sup = passo; sup = inf; inf = passo; }

	// Qui comincia il vero e proprio software
	printf("\nSto Calcolando i valori 
			della funzione ...\n\n");
	// Innanzitutto memorizziamo il valore della funzione 
	// agli estremi
	risultato+=(funz(inf)+funz(sup));
	passo=(sup-inf)/interv;
	for(i=1; i < interv; i++)
		risultato+=2*(1 + (i % 2))*funz(inf+i*passo);
	risultato*=passo/3;

	printf("Il Risultato dell'integrale (Parabola) 
		risulta Essere: %lf\n\n", risultato);

	exit(0);
}

float funz(double val) {
	return sin(val);
}



» Torna »
(Ultima modifica: January 17 2008 10:01:39)
NOPROFIT