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 »
|