| |
|
|
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 11Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 11.05.2021 ▲ |
|
|
|