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: trapezio.c
	Commenti: Programma per il calcolo integrale 
	di una funzione assegnata */

#include <stdio.h>
#include <math.h>
#include <stdlib.h> 
// Il MIN ed il MAX va valutato da funzione a funzione

#define MIN -10000
#define MAX 10000

float funz(double val);

int main() {
	double inf, sup;
	double 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	
	
	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");
	risultato+=0.5*(funz(inf)+funz(sup));
	// Ora procediamo con la prima memorizzazione ...
	passo=(sup-inf)/interv;
	for(i=1; i<interv; i++) risultato+=funz(inf+i*passo);
	risultato*=passo;
	printf("Il Risultato dell'integrale (Trapezio) 
		risulta Essere: %lf\n\n", risultato);
	exit(0);
}
	float funz(double val) {
	return sin(val);
	}



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