| |
|
|
p.specht
| Polynome son tan sozusagen el Gummi-Lineal el Mathematik: Durch Polynomanpassung a Messwerte kann así manche Formel para Vorgänge en Natur, Wirtschaft y Technik gefunden voluntad, el zwar una Zusammenhang beschreibt, el aber así no kausal geklärt es:
Wenn etwa steigende Börsennotierungen (Entrada) de Firmen con el Anzahl freigesetzter Mitarbeiter (Output) zusammenzuhängen scheinen, entonces hilft manchmal Inversion, sprich: El Interruptor el Formel después de el otro Página. Man intenta dadurch, el Ergebnisvariable con el unabhängigen Variable a vertauschen y así una "Gegenformel" para encontrar: Wirkt el Freisetzung de Mitarbeitern (Entrada) en el Börsenkurs (Output) de, porque z.B. sinkende Lohnkosten Aktionäre y kurzsichtigen Spekulanten en größere Gewinnausschüttungen hoffen dejar? Verrückte Welt...
Anbei una Programa a Polynominversion en el obigen Sinne. Lo kann Formeln a para Grad 7 invertieren, el Koeffizient a1 darf esta pero no Null ser! Das todo natürlich como siempre sin jede Gewähr!
Windowtitle "Polynom-Inversion: Aus Y=a0+a1*X+a2*x^2+... se X=b0+b1*Y+b2*X^2+..."
Windowstyle 24:Cls'(D) Demo 2017-05 by P.Pájaro carpintero, Vienna/EU. No warranty whatsoever!
'****************************************************
'* Program to demonstrate the series reversion *
'* ------------------------------------------------ *
'* Reference: BASIC Scientific Subroutines, Vol. II *
'* By F.R. Ruckdeschel, BYTE/McGRAWW-HILL, 1981 [1].*
'* *
'* F90 Versión by J.-P. Moreau, Paris. *
'* (www.jpmoreau.fr) *
'* XProfan 11.2 Versión by P.Pájaro carpintero, Vienna/Austria *
'* ------------------------------------------------ *
'* SAMPLE RUN: *
'* What is the degree of the input polynomial: 3 *
'* *
'* Entrada the coefficients as prompted: *
'* *
'* A( 0) = 1 *
'* A( 1) = 1 *
'* A( 2) = 1 *
'* A( 3) = 1 *
'* *
'* The reversed polynomial coefficients are: *
'* *
'* B( 0) = 9 *
'* B( 1) = 1 *
'* B( 2) = 0 *
'* B( 3) = -1 *
'* B( 4) = 0 *
'* B( 5) = 3 *
'* B( 6) = 0 *
'* B( 7) = -12 *
'* *
'****************************************************
Conjunto("decimals",15)_Declare A![10],B![10],i&,n&,z!
Imprimir "\n Grad des Polynoms?: ";:Entrada n&
Imprimir "\n Bitte el Koeffizienten des Polynoms como abgefragte eingeben:\n"
WhileLoop 0,n&:i& = &Loop
Imprimir " a(";i&;") = ";:Entrada z!:A![i&]=z!
EndWhile:Imprimir
Reverse_coeff(A![],B![])
::::ClearClip
If A![1]<>0
imprimir " El reversen Polynom-Koeffizienten lauten:\n"
WhileLoop 0,7:i&=&Loop
If Abs(B![i&]) < Val("1e-20")
B![i&] = 0
EndIf
Imprimir " b(";i&;") = ";Formato$("%g",B![i&])
::::PutClip Formato$("%g",B![i&])+","
EndWhile
EndIf:Imprimir "\n OK"
WaitInput:FIN
Proc Reverse_coeff :Parámetros 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 be <> 0. *
'* The degree of reversion is limited to seven. *
'* -------------------------------------------------- *
'* Reference: CRC Standard Mathematical Tables, *
'* 24th edition. *
'******************************************************
Declarar a1!,a2!,a3!,a4!,a5!,a6!,a7!,aa!,bb!
a1!=A![1]
a2!=0
If a1!=0
imprimir " Fehler: Division por 0! A(1) darf no Null ser!":Volver
más
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&=&Loop
B![0]=B![0] - B![i&]*aa!
aa!=aa!*A![0]
EndWhile
ENDPROC
' End 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 ▲ |
|
|
|