/************************************************************************/ /* Ein Programm zur Berechnung der Bessel-Koeffizienten Jn /* Dateiname : Bessel.cpp /* Autoren : T. Burr, J. Ahrensfeld /* Datum : 28.10.1999 /* letzte Änderung : 28.01.2000 /* Version : 1.0 /************************************************************************/ #include "stdio.h" #include "math.h" #include "stdlib.h" #define MAX_SUM 25 #define VERSION "1.0" /************************************************************************/ /* Funktionsdeklarationen */ /************************************************************************/ // Fakultätsberechnung double fak (int N) { int index; double erg=1; for (index = 1; index <= N; index++) erg = erg * index; return erg; } // Bessel() // Berechnung von Jn von mfm double bessel(int n, double mfm) { int m; double Jn=0; for (m=0; m < MAX_SUM; m++) { Jn = Jn + (pow(-1.0,m)/(fak(m)*fak(m+n))*pow(mfm/2.0,(2*m+n))); } return Jn; } /************************************************************************/ /* Das Hauptprogramm /************************************************************************/ void main() { int N, Nmax; double erg; float mfm; printf("\n\t Besselfunktion Version %s",VERSION); printf("\n\t ~~~~~~~~~~~~~~~~~~~~~~~~~~\n"); printf("\n\tCopyright by J. Ahrensfeld & T. Burr\n\n"); // --------------------------------------------------------------------------------- // Benutzereingaben printf("\nBerechnungen fuer J = 0..."); if(scanf("%d",&Nmax)==0) exit (-1); printf("Bitte Modulationsindex eingeben : "); if(scanf("%f",&mfm)==0) exit(-1); printf("\n"); // --------------------------------------------------------------------------------- // Berechnung for (N=0; N <= Nmax; N++) { erg = bessel(N,(double)mfm); printf("J(%d) = %10.8f\n",N,erg); } printf("FERTIG.\n"); } /************************************************************************/