Français
Source/ Codesnippets

Surface sous Funktionskurve per SIMPSON-INTEGRATION ermitteln

 

p.specht

un Klassiker: qui numerische intégration par Aufteilung einer Funktion y(x) dans N juste grand Streifen, Einpassung einer Parabel dans jeweils trois Funktionspunkte y(x) et Summierung qui mathématique eh bien relativ simple berechenbaren Flächen sous den gefundenen Parabelstücken entre den vorgegebenen Grenzen X-unten et X-dessus. Je pour Funktion liefert déjà une partage dans seulement 8 Streifen bereits droite brauchbare Ergebnisse! dans nachstehender Version ist eh bien une Fehlerabfangmöglichkeit im Funktions-Proc incorporé.
'---------------------------------------------------------------------------------------
'          BESTIMMTES INTEGRAL Pour DER SIMPSON-REGEL (3-Punkte-Parabel)
'---------------------------------------------------------------------------------------
' dans leichter Anlehnung à: J.garçon/W.Sokol: Technische Gleichungssysteme
' XProfan 11.2a 2014-05 by P. Specht, vienne
' aucun cependant geartete Gewähr!
'---------------------------------------------------------------------------------------
' qui numerisch trop integrierende Funktion comme FnY avec paramètre x! ici eingeben:  -----

proc FnY :parameters x!

    declare fny!
    ' Zum faute-intercepter Magic-Wert -99999999999999 (- 14*'9') zurückgeben!
    ' cas x!=0:return -99999999999999
    '       FnY! = 1/x! '... verträgt z.B. aucun zéro im Nenner!
    ' ORIGINALE TESTFUNKTION:
    FnY! = 4/(1+sqr(x!))' Originale Testfunktion, ...
    '       muss chez intégration entre 0 et 1: Pi() ergeben!
    return FnY!

endproc

'---------------------------------------------------------------------------------------
Main:
 $IFDEF Interpreter
Titre de la fenêtre "Bestimmtes Integral pour qui Simpson-règle (3-Punkte-Parabel)    I N T E R P R E T E R "
 $ENDIF
 $IFDEF Compiler
Titre de la fenêtre "Bestimmtes Integral pour qui Simpson-règle (3-Punkte-Parabel)    C O M P I L I E R T !"
 $ENDIF
style de fenêtre 24:randomize:CLS rgb(200+rnd(56),200+rnd(56),200+rnd(56)):font 2:set("decimals",18)
declare v$,xu!,xo!,xd!,dd&,e&,fk&,x!,n&,sum!,f!
Imprimer "\n 0. trop integrierende Funktion comme Proc FnY :parameters x! einprogrammieren!\n"
Imprimer "    Erledigt ? [ J, j, Y, y ='oui']: ";:input v$:v$=left$(lower$($ Trim(v$)),1)

ifnot (v$="j") or (v$="y")

    beep:Imprimer mkstr$("\n",12);tab(20);"   B I T T E   E R L E D I G E N !   ":waitinput :end

endif

LOOP:
imprimer "\n 1. Untergrenze des certain Integrals: Xu = ";:input v$:xu!=val(v$)

si FNY(xu!)=-99999999999999:sound 2000,200

    Imprimer "\n PROBLEM MIT FUNKTION AN STELLE X = ";x!;"\n":goto "Frage"

endif

imprimer "\n 2. Obergrenze  des certain Integrals: XO = ";:input v$:xo!=val(v$)

si FNY(xO!)=-99999999999999:sound 2000,200

    Imprimer "\n PROBLEM MIT FUNKTION AN STELLE X = ";x!;"\n":goto "Frage"

endif

imprimer "\n 3. Nombre de Streifen (justement numéro, z.B. 8): ";:input v$:n&=val(v$)
n&=abs(n&):cas n&<2:n&=2:cas n&>1000000:n&=1000000:cas n& mod 2: n&=n&+1
' Verarbeitung (Simpson-intégration)
xd!=(xo!-xu!)/n&:x!=xu!:sum!=fny(x!):e&=-1

whileloop n&-1:e&=-1*e&:fk&=3+e&

    x!=xu!+&Boucle*xd!:f!=fny(x!):CASE f!=-99999999999999:BREAK
    sum!=sum!+fk&*f!

endwhile

IF f!=-99999999999999:sound 2000,200

    Imprimer "\n PROBLEM MIT FUNKTION AN STELLE X = ";x!;"\n":goto "Frage"

ENDIF

x!=xo!:sum!=sum!+fny(x!):sum!=xd!*sum!/3
imprimer "\n\n cela 'Bestimmte Integral' qui Funktion FNY(x) "
imprimer " (qui Surface sous qui Kurve) entre Xu = ";
imprimer format$("%g",xu!);" et XO = ";format$("%g",xo!);»
imprimer " zusammengesetzt aus ";int(n&);" Streifen, beträgt pour Simpson:"
imprimer "\n";tab(55);format$("%g",Sum!);"\n"
'
' --- Ergänzung pour reine Testzwecke, seulement sinnvoll avec qui originalen FnY-Funktion:

si nearly(sum!,pi(),3)

    imprimer "                               ordinateur-Pi()          ";pi()
    imprimer " qui absolute faute à ordinateur-Pi() beträgt  ";abs(sum!-pi())
    imprimer " qui relative faute à ordinateur-Pi() beträgt  ";
    imprimer abs(100*(sum!-pi())/pi());" % "

endif

' --------------------------------------------------------------------------------------
'
Frage:
Imprimer "\n      Nochmal ? [ J, j, Y, y ='oui']: ";:input v$
v$=left$(lower$($ Trim(v$)),1):casenot (v$="j") or (v$="y"):FIN
CLS rgb(200+rnd(56),200+rnd(56),200+rnd(56)):goto "LOOP"
PROGEND
 
XProfan 11
Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'...
11.05.2021  
 



Zum Quelltext


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

640 Views

Untitledvor 0 min.
Ernst21.07.2021
Uwe ''Pascal'' Niemeier13.06.2021
R.Schneider28.05.2021
Michael W.28.05.2021
plus...

Themeninformationen

cet Thema hat 1 participant:

p.specht (1x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie