Funktionen qui es pas gibt, z.B. weil une Formel en supplément pas bekannt ist: Liegen konkrete Meßergebnisse avant, peux on pour cet quelquefois par Parabelanpassung, Fourieranalyse ou bien Reihenentwicklung une Funktionsformel trouver - doch quelquefois plan aussi pas! ensuite hilft seulement plus PROBIEREN et Parametern so longtemps herum EXPERIMENTIEREN, jusqu'à quelque chose halbwegs brauchbares herauskommt. Bzgl. Laufzeit ist une Zusammensetzung qui neuen Funktion aus Standardfunktionen, qui dans qui Programmiersprache déjà vorhanden sommes, naturellement vorteilhaft.
Sollte aussi qui manuelle Erzeugung échouer, hilft nurmehr Abschnittsweise (lineare ou bien nichtlineare) Interpolation entre den gewonnenen Messpunkten - etwa par Spline-Anpassung. ensuite wird es allerdings SEHR aufwendig...
Titre de la fenêtre "ExpMan: une Funktionskurve aus jusque 5 Glockenkurven manuel erzeugen"
'(CL) CopyLeft 2016-05 by P.Specht, Vienna/Austria - sans chacun Gewähr! No warranty whatsoever!
Fenêtre Style 24:Fenêtre 0,0-%maxx,%maxy
declare xh&,yh&,x!,y!,first&,n&,fnr&,anzf&,lastx!,lasty!,w$,co&
declare f1pos!,f1streu!,f1amp!,f2pos!,f2streu!,f2amp!,f3pos!
declare f3streu!,f3amp!,f4pos!,f4streu!,f4amp!,f5pos!,f5streu!,f5amp!
xh&=width(%hwnd)\2:yh&=height(%hwnd)*7/8:font 2
proc f :parameters x!,MU!,sigma!
return exp(-1*sqr(x!-MU!)/sigma!)
endproc
Default:
anzf&=5
inc anzf&'là plus Summenkurve
f1pos!=-2:f1streu!=1:f1amp!=1
f2pos!=-1:f2streu!=1:f2amp!=1
f3pos!= 0:f3streu!=1:f3amp!=1
f4pos!= 1:f4streu!=1:f4amp!=1
f5pos!= 2:f5streu!=1:f5amp!=1
beep
SCHLEIFE:
fnr&=anzf&+1
REPEAT
dec fnr&'funktionsnummer
first&=1
whileloop -xh&,xh&,10
x!=&Boucle/100
SELECT fnr&
caseof 1 : y!=f(x!,f1pos!,f1streu!)*f1amp!:co&=rgb(255,0,0)
caseof 2 : y!=f(x!,f2pos!,f2streu!)*f2amp!:co&=rgb(0,200,0)
caseof 3 : y!=f(x!,f3pos!,f3streu!)*f3amp!:co&=rgb(0,0,255)
caseof 4 : y!=f(x!,f4pos!,f4streu!)*f4amp!:co&=rgb(200,0,255)
caseof 5 : y!=f(x!,f5pos!,f5streu!)*f5amp!:co&=rgb(100,100,0)
caseof 6 : co&=0
y! = f(x!,f1pos!,f1streu!)*f1amp!+f(x!,f2pos!,f2streu!)*f2amp!+ \
f(x!,f3pos!,f3streu!)*f3amp!+f(x!,f4pos!,f4streu!)*f4amp!+f(x!,f5pos!,f5streu!)*f5amp!
ENDSELECT
si first&
first&=0
d'autre
usepen 0,2+4*(fnr&=anzf&),co&
line xh&+lastx!*100,(yh&-lasty!*200) - xh&+x!*100,yh&-y!*200
endif
lastx!=x!:lasty!=y!
endwhile
UNTIL fnr&=0
usepen 0,1,0:line 0,yh& - 2*xh&,yh&
locate 1,1
imprimer "\n "
color 12,15
imprimer " 1 F1-Position: ";format$("%g",f1pos!);" "
imprimer " 2 F1-Streuung: ";format$("%g",f1streu!);" "
imprimer " 3 F1-Amplitude ";format$("%g",f1amp!);" "
imprimer " "
color 2,15
imprimer " 4 F2-Position: ";format$("%g",f2pos!);" "
imprimer " 5 F2-Streuung: ";format$("%g",f2streu!);" "
imprimer " 6 F2-Amplitude:";format$("%g",f2amp!);" "
imprimer " "
color 9,15
imprimer " 7 F3-Position: ";format$("%g",f3pos!);" "
imprimer " 8 F3-Streuung: ";format$("%g",f3streu!);" "
imprimer " 9 F3-Amplitude ";format$("%g",f3amp!);" "
imprimer " "
color 3,15
imprimer " 7 F4-Position: ";format$("%g",f4pos!);" "
imprimer " 8 F4-Streuung: ";format$("%g",f4streu!);" "
imprimer " 9 F4-Amplitude ";format$("%g",f4amp!);" "
imprimer " "
color 6,15
imprimer " 7 F5-Position: ";format$("%g",f5pos!);" "
imprimer " 8 F5-Streuung: ";format$("%g",f5streu!);" "
imprimer " 9 F5-Amplitude ";format$("%g",f5amp!);" "
color 0,15
imprimer "\n Neustart? [j/-] ";
locate 3,17:input w$:si w$<>»:f1pos!=val(w$):goto "weitr":endif
locate 4,17:input w$:si w$<>»:f1streu!=val(w$):cas f1Streu!=0:f1Streu!=1:goto "weitr":endif
locate 5,17:input w$:si w$<>»:f1amp!=val(w$):goto "weitr":endif
locate 7,17:input w$:si w$<>»:f2pos!=val(w$):goto "weitr":endif
locate 8,17:input w$:si w$<>»:f2streu!=val(w$):cas f2Streu!=0:f2Streu!=1:goto "weitr":endif
locate 9,17:input w$:si w$<>»:f2amp!=val(w$):goto "weitr":endif
locate 11,17:input w$:si w$<>»:f3pos!=val(w$):goto "weitr":endif
locate 12,17:input w$:si w$<>»:f3streu!=val(w$):cas f3Streu!=0:f3Streu!=1:goto "weitr":endif
locate 13,17:input w$:si w$<>»:f3amp!=val(w$):goto "weitr":endif
locate 15,17:input w$:si w$<>»:f4pos!=val(w$):goto "weitr":endif
locate 16,17:input w$:si w$<>»:f4streu!=val(w$):cas f4Streu!=0:f4Streu!=1:goto "weitr":endif
locate 17,17:input w$:si w$<>»:f4amp!=val(w$):goto "weitr":endif
locate 19,17:input w$:si w$<>»:f5pos!=val(w$):goto "weitr":endif
locate 20,17:input w$:si w$<>»:f5streu!=val(w$):cas f5Streu!=0:f5Streu!=1:goto "weitr":endif
locate 21,17:input w$:si w$<>»:f5amp!=val(w$):goto "weitr":endif
locate 23,17:input w$:si w$="j":cls:goto "Default":endif
weitr:
cls
goto "SCHLEIFE"
|