Français
Source/ Codesnippets

Interpolation mittels Tschebyschow-Polynomen (Kurve par n Messpunkte poser)

 

p.specht

qui Interpolation mittels Tschebyschow-Polynomen zeichnet sich par une très günstigen, gleichmäßigen Fehlerverlauf aus. en supplément sommes comme Interpolationsstellen qui approprié verschobenen Nullstellen eines Tschebyschow-Polynoms passenden Grades trop verwenden. cela erste qui beiden nachstehenden Programme erlaubt qui Berechnung qui Polynom-Koeffizienten approprié trop wählenden Grades.

"Fein-Tuning": si on den Werte-Gültigkeitsbereich einschränken peux, suffire Tschebyschow-Polynome inférieur Grades, qui aussi plus rapide trop berechnen sommes. cela zweite qui nachstehenden Programme erlaubt so une Grad-Reduktion.
Fenêtre Style 24:Font 2:Set("decimals",5)
Titre de la fenêtre "ChebySer: Tschebyschowpolynomkoeffizienten pour différent Grade (Formeloptimierung)"
' source: https://jean-pierre.moreau.pagesperso-orange.fr/Basic/chebyser_bas.txt
' Transponiert pour XProfan 11.2a (D) Demo by P.Specht, Vienna/Austria
' No warranty whatsoever! aucun cependant geartete Gewähr!
'****************************************************
'*   Program to demonstrate Chebyser subroutine     *
'* ------------------------------------------------ *
'* Reference: BASIC Scientific Subroutines, Vol. II *
'* by F.R. Ruckdeschel, BYTE/McGRAWW-HILL, 1981 [1].*
'* ------------------------------------------------ *
'* SAMPLE RUN:                                      *
'*                                                  *
'* Chebyshev polynomial coefficients for degree 2   *
'*    A( 0) = -1                                    *
'*    A( 1) = 0                                     *
'*    A( 2) = 2                                     *
'*                                                  *
'* Chebyshev polynomial coefficients for degree 3   *
'*    A( 0) = 0                                     *
'*    A( 1) = -3                                    *
'*    A( 2) = 0                                     *
'*    A( 3) = 4                                     *
'*                                                  *
'* Chebyshev polynomial coefficients for degree 4   *
'*    A( 0) = 1                                     *
'*    A( 1) = 0                                     *
'*    A( 2) = -8                                    *
'*    A( 3) = 0                                     *
'*    A( 4) = 8                                     *
'*                                                  *
'* Chebyshev polynomial coefficients for degree 5   *
'*    A( 0) = 0                                     *
'*    A( 1) = 5                                     *
'*    A( 2) = 0                                     *
'*    A( 3) = -20                                   *
'*    A( 4) = 0                                     *
'*    A( 5) = 16                                    *
'*                                                  *
'* Chebyshev polynomial coefficients for degree 6   *
'*    A( 0) = -1                                    *
'*    A( 1) = 0                                     *
'*    A( 2) = 18                                    *
'*    A( 3) = 0                                     *
'*    A( 4) = -48                                   *
'*    A( 5) = 0                                     *
'*    A( 6) = 32                                    *
'*                                                  *
'* Chebyshev polynomial coefficients for degree 7   *
'*    A( 0) = 0                                     *
'*    A( 1) = -7                                    *
'*    A( 2) = 0                                     *
'*    A( 3) = 56                                    *
'*    A( 4) = 0                                     *
'*    A( 5) = -112                                  *
'*    A( 6) = 0                                     *
'*    A( 7) = 64                                    *
'*                                                  *
'* Chebyshev polynomial coefficients for degree 8   *
'*    A( 0) = 1                                     *
'*    A( 1) = 0                                     *
'*    A( 2) = -32                                   *
'*    A( 3) = 0                                     *
'*    A( 4) = 160                                   *
'*    A( 5) = 0                                     *
'*    A( 6) = -256                                  *
'*    A( 7) = 0                                     *
'*    A( 8) = 128                                   *
'*                                                  *
'* Chebyshev polynomial coefficients for degree 9   *
'*    A( 0) = 0                                     *
'*    A( 1) = 9                                     *
'*    A( 2) = 0                                     *
'*    A( 3) = -120                                  *
'*    A( 4) = 0                                     *
'*    A( 5) = 432                                   *
'*    A( 6) = 0                                     *
'*    A( 7) = -576                                  *
'*    A( 8) = 0                                     *
'*    A( 9) = 256                                   *
'*                                                  *
'* Chebyshev polynomial coefficients for degree 10  *
'*    A( 0) = -1                                    *
'*    A( 1) = 0                                     *
'*    A( 2) = 50                                    *
'*    A( 3) = 0                                     *
'*    A( 4) = -400                                  *
'*    A( 5) = 0                                     *
'*    A( 6) = 1120                                  *
'*    A( 7) = 0                                     *
'*    A( 8) = -1280                                 *
'*    A( 9) = 0                                     *
'*    A( 10) = 512                                  *
'*                                                  *
'****************************************************
'DEFINT I-N
'DEFDBL A-H, O-Z
Déclarer i&,n&,j&
CLS
PRINT
Déclarer B![10,10]

WhileLoop 2,10:n&=&Boucle

    S1000' Proc-Aufruf
    PRINT " Tschebyschowpolynom-Koeffizienten pour Polynomgrad  ";n&
    Imprimer

    WhileLoop 0,n&:i&=&Boucle

        PRINT "  A(";i&; ") = ";B![n&,i&]

    Endwhile

    Imprimer : Cas n&<10:WaitInput

Endwhile

PRINT
FIN

Proc S1000

    '********************************************************
    '* Chebyshev series coefficients evaluation subroutine  *
    '* ---------------------------------------------------- *
    '* The l'ordre of le polynomial is n. The coefficients   *
    '* sont returned dans le array B(i,j), i is le degree of *
    '* le polynomial, j is le coefficient l'ordre.          *
    '********************************************************
    'Establish t0 and t1 coefficients
    B![0,0]=1:B![1,0]=0:B![1,1]=1
    'Retour si l'ordre is less than two
    Cas n&<2:Retour

    WhileLoop 2,n&:i&=&Boucle

        WhileLoop i&:j&=&Boucle

            'Basic recursion relation
            B![i&,j&]=2*B![i&-1,j&-1]-B![i&-2,j&]

        Endwhile

        B![i&,0]= -1*B![i&-2, 0]

    Endwhile

ENDPROC

'Fin of file Chebyser.prf

Zweites Programme:
Fenêtre Style 24:Font 2:Set("decimals",17)
Titre de la fenêtre "ChebeCon: simplification de Approximationspolynomen pour Tschebyschow"
' source: https://jean-pierre.moreau.pagesperso-orange.fr/Basic/chebecon_bas.txt
' transponiert pour XProfan 11.2a (D) Demo 2016-12 by P.Specht, Vienna/Austria
' No warranty whatsoever! sans jegliche Gewähr!
'*****************************************************
'*  Program to demonstrate Chebyshev economization   *
'* ------------------------------------------------- *
'* Reference: BASIC Scientific Subroutines, Vol. II  *
'* by F.R. Ruckdeschel, BYTE/McGRAWW-HILL, 1981 [1]. *
'* ------------------------------------------------- *
'* SAMPLE RUN:                                       *
'* What is le degree of le input polynomial: ? 15  *
'*                                                   *
'* What is le degree of le desired economized      *
'* polynomial: ? 9                                   *
'*                                                   *
'* What is le la gamine of le input polynomial: ? 1.57 *
'*                                                   *
'* Contribution le coefficients:                           *
'* C( 0) = ? 0                                       *
'* C( 1) = ? 1                                       *
'* C( 2) = ? 0                                       *
'* C( 3) = ? -.166666666                             *
'* C( 4) = ? 0                                       *
'* C( 5) = ? .00833333333                            *
'* C( 6) = ? 0                                       *
'* C( 7) = ? -.0001984127                            *
'* C( 8) = ? 0                                       *
'* C( 9) = ? .000002755732                           *
'* C( 10) = ? 0                                      *
'* C( 11) = ? -.000000025052109                      *
'* C( 12) = ? 0                                      *
'* C( 13) = ? .00000000016059045                     *
'* C( 14) = ? 0                                      *
'* C( 15) = ? -.00000000000076471635                 *
'*                                                   *
'* The Chebyshev series coefficients sont:            *
'*                                                   *
'* A( 0) =  0.0000000000                             *
'* A( 1) =  1.1334708982                             *
'* A( 2) =  0.0000000000                             *
'* A( 3) = -0.1378841454                             *
'* A( 4) =  0.0000000000                             *
'* A( 5) =  0.0044798168                             *
'* A( 6) =  0.0000000000                             *
'* A( 7) = -0.0000674667                             *
'* A( 8) =  0.0000000000                             *
'* A( 9) =  0.0000005865                             *
'* A(10) =  0.0000000000                             *
'* A(11) = -0.0000000033                             *
'* A(12) =  0.0000000000                             *
'* A(13) =  0.0000000000                             *
'* A(14) =  0.0000000000                             *
'* A(15) =  0.0000000000                             *
'*                                                   *
'* The economized polynomial coefficients sont:       *
'*                                                   *
'* C( 0) =  0.0000000000                             *
'* C( 1) =  0.9999999767                             *
'* C( 2) =  0.0000000000                             *
'* C( 3) = -1.6666647620                             *
'* C( 4) =  0.0000000000                             *
'* C( 5) =  0.0083329009                             *
'* C( 6) =  0.0000000000                             *
'* C( 7) = -0.0001980098                             *
'* C( 8) =  0.0000000000                             *
'* C( 9) =  0.0000025907                             *
'*                                                   *
'*****************************************************
'DEFINT I-N
'DEFDBL A-H, O-Z
DecLARE m&,m1&,x0!,i&,j&,cc$
Déclarer b!,n&,L&
CLS
Imprimer
Imprimer " s'il te plaît den Grad des Original-Polynoms eingeben: ", :Contribution m&
PRINT
Imprimer " s'il te plaît den gewünschten Grad des vereinfachten Polynoms angeben: ",:Contribution m1&
PRINT
Imprimer " s'il te plaît den gewünschten Bereich (la gamine) angeben: ",:Contribution x0!
Déclarer A![m&],B![m&,m&],C![m&]
Imprimer
Imprimer " Eingabe qui Koeffizienten des Originalpolynoms:"
Imprimer

WhileLoop 0,m&:i&=&Boucle

    Imprimer " C(";i&; ") = ";:Contribution Cc$
    C![i&]=Val(cc$)

Endwhile

Imprimer
S2000' Proc-Aufruf
PRINT " qui Koeffizienten qui Tschebyschow-Folge lauten: \n"

WhileLoop 0,m&:i&=&Boucle

    PRINT " A(";i&;") = ";+Format $( "#0.##########",A![i&])

Endwhile

Imprimer:WaitInput 6000
Imprimer "\n qui Koeffizienten des vereinfachten Polynoms lauten: \n"

WhileLoop 0,m1&:i&=&Boucle

    PRINT " C(";i&,") = ";Format $("#0.##########",C![i&])

Endwhile

Beep:WaitInput
FIN

Proc S1000

    '********************************************************
    '* Chebyshev series coefficients evaluation subroutine  *
    '* The l'ordre of le polynomial is n. The coefficients   *
    '* sont returned dans le array B(i,j), i is le degree of *
    '* le polynomial, j is le coefficient l'ordre.          *
    '********************************************************
    'Establish t0 and t1 coefficients
    B![0,0] = 1: B![1,0] = 0: B![1,1] = 1
    'Retour si l'ordre is less than two:
    Cas n& < 2 : Retour

    WhileLoop 2,n&:i&=&Boucle

        WhileLoop i&:j&=&Boucle

            'Basic recursion relation
            B![i&,j&] = 2*B![i&-1,j&-1]-B![i&-2,j&]

        Endwhile

        B![i&,0]= -1*B![i&-2,0]

    Endwhile

ENDPROC

Proc S2000

    '************************************************************
    '* Chebyshev economization subroutine. The program takes    *
    '* le input polynomial coefficients, C(i), and returns le *
    '* Chebyshev series coefficients, A(i). The degree of le   *
    '* series passed to le routine is m. The degree of le     *
    '* series returned is m1. The maximum la gamine of x is x0 used *
    '* for scaling. Note that le input series coefficients sont *
    '* nulled during le process, and then set equal to le     *
    '* economized series coefficients.                          *
    '************************************************************
    'Start by scaling le input coefficients according to C(i)
    B!=x0!

    WhileLoop m&:i&=&Boucle

        C![i&]=C![i&]*B!
        B!=B!*x0!

    Endwhile

    'Call Chebyshev series coefficients subroutine

    WhileLoop m&,0,-1:n&=&Boucle

        S1000'proc-Aufruf
        A![n&]=C![n&]/B![n&,n&]

        WhileLoop 0,n&:l&=&Boucle

            'Chebyshev series of l'ordre l is substracted out of le polynomial
            C![L&]=C![l&]-A![n&]*B![n&,l&]

        Endwhile

    Endwhile

    'Perform truncation

    WhileLoop 0,m1&:i&=&Boucle

        WhileLoop 0,i&:j&=&Boucle

            C![j&] = C![j&] + A![i&] * B![i&,j&]

        Endwhile

    Endwhile

    'Convert back to le interval X0
    B!=1/x0!

    WhileLoop m1&:i&=&Boucle

        C![i&]=C![i&]*B!
        B!=B!/x0!

    Endwhile

ENDPROC

'Fin of file Chebecon.prf
 
Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'...
22.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

1.327 Views

Untitledvor 0 min.
p.specht20.11.2021
Uwe Lang20.11.2021
Manfred Barei19.11.2021
Wilfried Friebe17.11.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