| |
|
|
p.specht
| Polynome sommes oui sozusagen cela Gummi-Lineal qui mathématique: par Polynomanpassung à Messwerte peux so manche Formel pour Vorgänge dans nature, Wirtschaft et technologie trouvé volonté, qui zwar une Zusammenhang beschreibt, qui mais avec cela pas causal geklärt ist:
si etwa steigende Börsennotierungen (Contribution) de Firmen avec qui Anzahl freigesetzter Mitarbeiter (Output) zusammenzuhängen sembler, ensuite hilft quelquefois Inversion, sprich: qui Commutateur qui Formel pour qui anderen page. on versucht dadurch, qui Ergebnisvariable avec qui unabhängigen Variable trop vertauschen et so une "Gegenformel" pour trouver: Wirkt sich qui Freisetzung de Mitarbeitern (Contribution) sur den Börsenkurs (Output) aus, weil z.B. sinkende Lohnkosten Aktionäre et kurzsichtigen Spekulanten sur größere Gewinnausschüttungen espérer laisser? Verrückte monde...
Anbei un Programme zur Polynominversion im obigen Sinne. Es peux Formeln jusqu'à zum Grad 7 invertieren, qui Koeffizient a1 darf dabei mais pas zéro son! cela ganze naturellement comment toujours sans chacun Gewähr!
Windowtitle "Polynom-Inversion: Aus Y=a0+a1*X+a2*x^2+... wird X=b0+b1*Y+b2*X^2+..."
Windowstyle 24:Cls'(D) Demo 2017-05 by P.Specht, Vienna/EU. No warranty whatsoever!
'****************************************************
'* Program to demonstrate le series reversion *
'* ------------------------------------------------ *
'* Reference: BASIC Scientific Subroutines, Vol. II *
'* By F.R. Ruckdeschel, BYTE/McGRAWW-HILL, 1981 [1].*
'* *
'* F90 Version by J.-P. Moreau, Paris. *
'* (www.jpmoreau.fr) *
'* XProfan 11.2 Version by P.Specht, Vienna/Austria *
'* ------------------------------------------------ *
'* SAMPLE RUN: *
'* What is le degree of le input polynomial: 3 *
'* *
'* Contribution le coefficients as prompted: *
'* *
'* A( 0) = 1 *
'* A( 1) = 1 *
'* A( 2) = 1 *
'* A( 3) = 1 *
'* *
'* The reversed polynomial coefficients sont: *
'* *
'* B( 0) = 9 *
'* B( 1) = 1 *
'* B( 2) = 0 *
'* B( 3) = -1 *
'* B( 4) = 0 *
'* B( 5) = 3 *
'* B( 6) = 0 *
'* B( 7) = -12 *
'* *
'****************************************************
Set("decimals",15)_Declare A![10],B![10],i&,n&,z!
Imprimer "\n Grad des Polynoms?: ";:Contribution n&
Imprimer "\n s'il te plaît qui Koeffizienten des Polynoms comment abgefragte eingeben:\n"
WhileLoop 0,n&:i& = &Boucle
Imprimer " a(";i&;") = ";:Contribution z!:A![i&]=z!
Endwhile:Imprimer
Reverse_coeff(A![],B![])
::::ClearClip
Si A![1]<>0
imprimer " qui reversen Polynom-Koeffizienten lauten:\n"
WhileLoop 0,7:i&=&Boucle
Si Abs(B![i&]) < Val("1e-20")
B![i&] = 0
EndIf
Imprimer " b(";i&;") = ";Format $("%g",B![i&])
::::PutClip Format $("%g",B![i&])+»
Endwhile
EndIf:Imprimer "\n OK"
WaitInput:FIN
Proc Reverse_coeff :Paramètres A![],B![]
'******************************************************
'* Series reversion - This routine takes a polynomial *
'* Y = A(0) + A(1) * X + ... and returns a polynomial *
'* X = B(0) + B(1) * Y + ... A(1) must être <> 0. *
'* The degree of reversion is limited to seven. *
'* -------------------------------------------------- *
'* Reference: CRC Standard Mathematical Tables, *
'* 24th edition. *
'******************************************************
Déclarer a1!,a2!,a3!,a4!,a5!,a6!,a7!,aa!,bb!
a1!=A![1]
a2!=0
Si a1!=0
imprimer " faute: Division par 0! A(1) darf pas zéro son!":Retour
d'autre
B![1]=1/a1!
aa!=1/a1!
EndIf
bb!=aa!*aa!
aa!=aa!*bb!
B![2]=-a2!/aa!
a3!=A![3]
aa!=aa!*bb!
B![3]=aa!*(2*a2!*a2! - a1!*a3!)
a4!=A![4]
aa!=aa!*bb!
B![4]=aa!*(5*a1!*a2!*a3! - a1!*a1!*a4! - 5*a2!*a2!*a2!)
a5!=A![5]
aa!=aa!*bb!
B![5]=6*a1!*a1!*a2!*a4! + 3*a1!*a1!*a3!*a3! + 14*a2!*a2!*a2!*a2!
B![5]=B![5] - a1!*a1!*a1!*a5! - 21*a1!*a2!*a2!*a3!
B![5]=aa!*B![5]
a6!=A![6]
aa!=aa!*bb!
B![6]=7*a1!*a1!*a1!*a2!*a5! + 7*a1!*a1!*a1!*a3!*a4! + 84*a1!*a2!*a2!*a2!*a3!
B![6]=B![6] - a1!*a1!*a1!*a1!*a6! - 28*a1!*a1!*a2!*a2!*a4!
B![6]=B![6] - 28*a1!*a1!*a2!*a3!*a3! - 42*a2!*a2!*a2!*a2!*a2!
B![6]=aa!*B![6]
a7!=A![7]
aa!=aa!*bb!
B![7]=8*a1!*a1!*a1!*a1!*a2!*a6! + 8*a1!*a1!*a1!*a1!*a3!*a5!
B![7]=B![7] + 4*a1!*a1!*a1!*a1!*a4!*a4! + 120*a1!*a1!*a2!*a2!*a2!*a4!
B![7]=B![7] + 180*a1!*a1!*a2!*a2!*a3!*a3! + 132*a2!*a2!*a2!*a2!*a2!*a2!
B![7]=B![7] - a1!*a1!*a1!*a1!*a1!*a7! - 36*a1!*a1!*a1!*a2!*a2!*a5!
B![7]=B![7] - 72*a1!*a1!*a1!*a2!*a3!*a4! - 12*a1!*a1!*a1!*a3!*a3!*a3!
B![7]=B![7] - 330*a1!*a2!*a2!*a2!*a2!*a3!
B![7]=aa!*B![7]
B![0]=0
aa!=A![0]
WhileLoop 1,7:i&=&Boucle
B![0]=B![0] - B![i&]*aa!
aa!=aa!*A![0]
Endwhile
ENDPROC
' Fin of file reverse.prf
|
|
|
| XProfan 11Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 24.05.2021 ▲ |
|
|
|