Español
Fuente/ Codesnippets

Nichtlineare Gleichungen blitzartig lösen: Der Brent-Algorithmus

 

p.specht

Für una Función 3. Grades benötigt el Verfahren después de R. Brent [1973] sólo 8 Durchgänge, en en 16-stellige Genauigkeit a kommen. Aunque son Voraussetzungen a erfüllen: El Anfangswerte debería diferente Vorzeichen haben. Dazu muss uno ya algo Idea haben, como el Funktionsgraph ungefähr aussieht. Como el nachfolgende Programa hier sólo una Fehlermeldung abgibt, se also no (como Profi-Programas) selber en el Búsqueda después de geeigneten Werten begibt, es lo sólo una vez sólo una Prinzipstudie. Immerhin funktioniert el Principio aber muy bien!
Título de la ventana "Prinzipstudie: Nichtlineare Gleichung numerisch Lösen después de Brent [1973]"
Ventana de Estilo 24:CLS:font 2
declarar c0!,c1!,c2!,c3!,c4!,c5!,x!,a!,b!,c!,d!,e!,tol!,fa!,fb!,fc!
declarar iter&,maxiter&,eps!,m!,r!,s!,t!,p!,q!,xs!
'Funktionstyp el a lösenden Gleichung (Hier:Polynom max. 5.Grades)

proc f :parámetros x!

    volver c0!+x!*c1!+x!*x!*c2!+x!*x!*x!*c3!+x!*x!*x!*x!*c4!+x!*x!*x!*x!*x!*c5!

ENDPROC

'Funktionsparameter: Testfunktion es hier vom Grad 3 = Kubische Parabel
c0!=-5
c1!=8.17
c2!=-1.894
c3!=.114
c4!=0
c5!=0
'Gewünschte Genauigkeit (max. 15 signifikannte Stellen):
eps!=val("1e-16")
maxiter&=1000
t!=0'kleine additive Konstante (nnur en muy schwierigen Características)
'Suchbereich 1:
imprimir "\n Test-Sollwerte: ",6.208317, 9.67556
a!=6
b!=7
BRENT :Waitinput 1000
a!=7
b!=10
BRENT :beep:Waitinput
FIN

Proc BRENT

    Declarar x!, c!,d!,e!,tol!,fa!,fb!,fc!
    Declarar iter&,m!,r!,s!,p!,q!,xs!
    imprimir "\n\n In el Grenzen ";format$("%g",a!),"bis",format$("%g",b!);" fueron gefunden:"
    fa!=f(a!)
    fb!=f(b!)

    if (fa!*fb!)>0

        imprimir "\n ERROR: f(a) y f(b) debería diferente Vorzeichen haben"
        beep:waitinput:end

    endif

    c!=a!:fc!=fa!' Zu Beginn es c = a
    d!=b!-a!
    e!=d!
    iter&=0

    mientras que iter&<maxiter&

        iter&=iter&+1

        if (fb!*fc!)>0

            c!=a!:fc!=fa!:d!=b!-a!:e!=d!

        endif

        if abs(fc!)<abs(fb!)

            a!=b!:b!=c!:c!=a!
            fa!=fb!: fb!=fc!: fc!=fa!

        endif

        tol!=2*eps!*abs(b!)+t!'Toleranz
        m!=(c!-b!)/2

        if (abs(m!)>tol!) AND (abs(fb!)>0)' Verfahren muss todavía durchgeführt voluntad

            if (abs(e!)<tol!) O (abs(fa!)<=abs(fb!))

                d!=m!:e!=m!

            más

                s!=fb!/fa!

                if a!=c!

                    p!=2*m!*s!
                    q!=1-s!

                más

                    q!=fa!/fc!
                    r!=fb!/fc!
                    p!=s!*(2*m!*q!*(q!-r!)-(b!-a!)*(r!-1))
                    q!=(q!-1)*(r!-1)*(s!-1)

                endif

                if p!>0

                    q!=-q!

                más

                    p!=-p!

                endif

                s!=e!
                e!=d!

                if ( (2*p!)<(3*m!*q!-abs(tol!*q!)) ) AND (p!<abs(s!*q!/2))

                    d!=p!/q!

                más

                    d!=m!
                    e!=m!

                endif

            endif

            a!=b!
            fa!=fb!

            if abs(d!)>tol!

                b!=b!+d!

            más

                if m!>0

                    b!=b!+tol!

                más

                    b!=b!-tol!

                endif

            endif

        más

            romper

        endif

        fb!=f(b!)

    endwhile

    xs!=b!
    imprimir "\n Nullwurzel: ";format$("%g",xs!)," con "
    imprimir "\n Restfehler: ";format$("%g",fb!)," gefunden en ";iter&;" Durchgängen."

ENDPROC

 
XProfan 11
Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'...
27.05.2021  
 



Zum Quelltext


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

1.405 Views

Untitledvor 0 min.
Erhard Wirth14.06.2024
p.specht21.11.2021
R.Schneider20.11.2021
Uwe Lang20.11.2021
Más...

Themeninformationen

Dieses Thema ha 1 subscriber:

p.specht (1x)


Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie