numerische integration

www.guggi.at.tt
Verfügbare Informationen zu "numerische integration"

  • Qualität des Beitrags: 0 Sterne
  • Beteiligte Poster: houwdy - Anonymous
  • Forum: www.guggi.at.tt
  • Forenbeschreibung: Forum vorwiegend zur schnellen Lösung elektronischer Probleme
  • aus dem Unterforum: PROGRAMMIERSPRACHEN
  • Antworten: 4
  • Forum gestartet am: Mittwoch 08.03.2006
  • Sprache: deutsch
  • Link zum Originaltopic: numerische integration
  • Letzte Antwort: vor 15 Jahren, 4 Monaten, 6 Tagen, 11 Stunden, 41 Minuten
  • Alle Beiträge und Antworten zu "numerische integration"

    Re: numerische integration

    houwdy - 22.11.2007, 00:25

    numerische integration
    I hob mi heit dazua gsetzt und hob amol a pissl a Rohprogramm gschribn mit welchm man diverse Funktionen numerisch integriern konn
    Vanice unser olta Kernelleser und -programmierer wert ma donn sogn wos er onders mochn tat.


    // Includedateien einbinden

    #include <stdio>
    #include <math>

    // Funktionsprototypen
    double basic_function(double);
    double size_of_space(double, double, double);
    long double approximation(double, double, double, double);
    bool check_entries(double, double, double);


    // Mainfunktion
    void main(void)
    {
    // Variablendeklartaion
    double d_lower_edge, d_upper_edge, d_space, d_range;
    long double ld_area =0;

    // Einlesen des Startpunktes
    printf ("Bitte geben sie den Startpunkt an: \t\t");
    scanf("%lf", &d_lower_edge);

    // Einlesen des Endpunktes
    printf ("Bitte geben sie den Endpunkt an: \t\t");
    scanf("%lf", &d_upper_edge);

    // Einlesen der Integrationsauflösung
    printf ("Bitte geben die Auflösung an (z.B.: 1000): \t");
    scanf("%lf", &d_space);

    // Eingegebene Werte auf Gültigkeit prüfen
    if(check_entries(d_lower_edge, d_upper_edge, d_space) ==1)
    {

    // Berechung des Auflösungsraserabstandes
    d_range = size_of_space(d_lower_edge, d_upper_edge, d_space);

    // Aufrufen der Funktion Approximation welche integriert
    ld_area = approximation(d_lower_edge, d_upper_edge, d_space, d_range);

    printf ("%lf",ld_area);

    }
    }

    // Prüfen der Eingabewerte
    bool check_entries(double d_lower_edge, double d_upper_edge, double d_space)
    {
    if( d_lower_edge <d_upper_edge> 9 )
    return 1;

    else
    printf("\n\n !!! Bitte ueberpruefen sie ihre Eingaben !!! \n \n");
    return 0;
    }



    // Die Basisfunktion retourniert den Wert y wenn x übergeben wird.
    double basic_function(double d_x)
    {
    double d_y= d_x * d_x; // hier kannst du deine Funktion eintragen
    return d_y; // y wird zurückgegeben
    }

    // Berechnet den Abstand der Interpolationsräume zwischen den eingegebenen Punkten
    double size_of_space(double d_lower_edge, double d_upper_edge, double d_space)
    {
    double d_range = (d_upper_edge - d_lower_edge) / d_space;
    return d_range;
    }

    // Die eigentliche Integrationsfunktion welche numerisch integriert
    long double approximation(double d_lower_edge, double d_higher_edge, double d_space, double d_range)
    {

    // Variablendefinition
    int i;
    double d_dynamic_y_startpositon, d_amplitude, d_dynamic_y_endpositon, d_dynamic_area, d_y_start, d_y_end;
    long double ld_area =0;

    d_y_start = d_lower_edge; // Startwert festlegen

    // die Schleife tastet die Kurve ab
    for (i=0; i < d_space; i++)
    {

    //setzt den temporären Endwert um eine Teilungseinheit auf x weiter.
    d_y_end = d_y_start + d_range;

    // rechnet den temporären y Endwert aus
    d_dynamic_y_endpositon = basic_function(d_y_end);

    // rechnet den temporären y Startwert aus
    d_dynamic_y_startpositon = basic_function(d_y_start);

    // rechnet y Endpos - y Startpos / 2 und summierd dies zur Startposition, mittelt dadurch die Amplitude
    d_amplitude = d_dynamic_y_startpositon + ((d_dynamic_y_endpositon - d_dynamic_y_startpositon) / 2);

    // Ergebniss als Betrag setzen
    if ( d_amplitude < 0)
    d_amplitude = d_amplitude *(-1);

    // multipliziert die mittlere Amplitude mit der Teilungseinheit der x Achse

    d_dynamic_area = d_amplitude * d_range;

    // summiert die einzellnen Teilflächen
    ld_area = ld_area + d_dynamic_area;

    d_y_start = d_y_end;

    }

    return ld_area; // retourniert die Fläche
    }



    Re: numerische integration

    Anonymous - 22.11.2007, 21:45


    Sehr gut mein junger Padwan!

    Zum ersten Mal hab ich nichts zu ergänzen :bravo:

    Außer diese Zeile: if( d_lower_edge <d_upper_edge> 9 ) ???

    Und nun zu deiner Meisterprüfung:
    Programmier das als Klasse aus, die folgende öffentliche Methoden hat

    setExactitude(dResolution)
    setFunction - akzeptiert grundlegende Funktionen wie kx, kx^n, 1/kx^n, k^x, usw.
    getArea(dLowerBound, dUpperBound)

    Die Eingaben sollen sicher sein und die Methoden sollen ohne Instanzierung der Klasse ansprechbar sein (static)

    MfG
    Vanice



    Re: numerische integration

    houwdy - 23.11.2007, 00:02


    Anonymous hat folgendes geschrieben:
    Außer diese Zeile: if( d_lower_edge <d_upper_edge> 9 ) ???



    des sollt hasn
    if( d_lower_edge <d_upper_edge> 9 )

    komischerweise hasts des a in meinem programm....
    scheinbar hob i do beim Kopieren irgendwie gepfuscht....
    keine ahnung :n22: mit der Syntax lossat sich des jo gornet compilieren



    Re: numerische integration

    houwdy - 23.11.2007, 14:00


    zum nachprüfen

    http://www.mathematik.ch/anwendungenmath/numint/



    Mit folgendem Code, können Sie den Beitrag ganz bequem auf ihrer Homepage verlinken



    Weitere Beiträge aus dem Forum www.guggi.at.tt

    java 16.05.2006 - gepostet von gerzii am Dienstag 16.05.2006
    Lösungen SENG - Test 5.4.06 - gepostet von Vanice am Donnerstag 06.04.2006
    was is passiert? - gepostet von Anonymous am Mittwoch 22.11.2006
    der geilste sound der Welt - gepostet von houwdy am Mittwoch 28.06.2006
    arrays mit php - gepostet von houwdy am Freitag 27.04.2007
    Witze - gepostet von houwdy am Dienstag 27.02.2007
    nur so ein gedanke - gepostet von *tesoro* am Sonntag 08.10.2006



    Ähnliche Beiträge wie "numerische integration"

    Youtube Integration in Wordpress Blog? - Jibber (Dienstag 09.10.2007)
    Integration beginnt bei Information - Anonymous (Freitag 11.08.2006)
    "Integration" der IGSM Ruder-AG Gruppe - Harald (Mittwoch 02.03.2005)
    Die Zeit zum Thema Integration von Muslimen!!!!! - Farouk (Dienstag 10.01.2006)
    Integration Klappe die 2. - Maria (Montag 16.07.2007)
    Integration, Migration, Zu- und Abwanderung - dejost (Samstag 13.05.2006)
    Integration: „Sprache als Schlüssel zur Integration“ - office (Dienstag 31.10.2006)
    Integration eines Sprachchat-Tools - salanee (Mittwoch 13.06.2007)
    So viel zur Integration von Balkan-Ausländern... (+Türken) - Hugi (Freitag 01.09.2006)
    Religionsfreiheit und Integration - Anonymous (Montag 19.06.2006)