Español
Fuente/ Codesnippets

Gradientenabstieg: Newton-Raphson en 2 Dimensionen

 

p.specht

Das Newton-Raphson-Verfahren funktioniert auch con Características en 2 Dimensionen, sprich: z =Z(x,y). Leider es el Verfahren insofern más anspruchsvoll, como el sog. partiellen Ableitungen el bekannten Función (después de x y después de y) ebenfalls bekannt ser debería. En no allzu komplizierten Formeln debería el aber ir. Liegen allerdings sólo Pagar / Datensätze, z.B. con Messwerten encima 2 Dimensionen antes, entonces empfehlen se otro, rein numerische Verfahren, z.B. Nelder-Mead udgl.

Referencia: El hier einprogrammierten Características fueron gewählt, a Auswirkungen el heiklen Wahl des Startpunktes el Ergebnis darzustellen.
Título de la ventana "Gradientenabstieg (Newtonverfahren en 2 Dimensionen)"
AppendMenuBar 100,"Geg.: Z(x,y)=(x+sin(y))*exp(-sqr(x)*-sqr(y)) Ges.: Ort des lokalen Minimus"
Ventana 0,0-%maxx,%maxy-40:font 2
declarar z!,x!,y!,xh&,yh&,f!,g!,s!
xh&=width(%hwnd)\2:yh&=height(%hwnd)\2
g!=1.5:s!=0.1:f!=220

proc Z :parámetros x!,y!

    volver (x!+sin(y!))*exp(-sqr(x!)-sqr(y!))

ENDPROC

proc dZdx :parámetros x!,y!

    volver exp(-sqr(y!)-sqr(x!))*(1-2*x!*(x!+sin(y!)))

ENDPROC

proc dZdy :parámetros x!,y!

    volver exp(-sqr(y!)-sqr(x!))*(cos(y!)-2*y!*(x!+sin(y!)))

ENDPROC

' ------ Z-Feld darstellen ----
cls
x!=-g!:Repeat
y!=-g!:Mientras que y!<=g!
z!=Z(x!,y!)
usepen 0,7+7*z!,rgb(0,0,400*z!)
line xh&+x!*f!+z!*7,(yh&-y!*f!-z!*11) - xh&+x!*f!,yh&-y!*f!
y!=y!+s!:endwhile
x!=x!+s!:until x!>=g!
'-------------------------------------------------------
' Gradientenabstieg
'-------------------------------------------------------
declarar gstep!,xx!,yy!,xxo!,yyo!,dx!,dy!,dz!,eps!,n&,xxx!,yyy!
gstep!=0.15

whileloop   50,-50,-5:yyy!=&Loop/50

    whileloop -50,50,5 :xxx!=&Loop/30

        xx!=xxx!
        yy!=yyy!'Startpunkt
        n&=0

        REPEAT

            dx!=dZdx(xx!,yy!)
            dy!=dZdy(xx!,yy!)
            xxo!=xx!:yyo!=yy!
            xx!=xx!-dx!*gstep!
            yy!=yy!-dy!*gstep!
            usepen 0,4,rgb(255,0,0)
            line xh&+xx!*f!,(yh&-yy!*f!)-xh&+xx!*f!,yh&-yy!*f!
            locate 2,2:imprimir xx!,yy!,Z(xx!,yy!),n&;"   "
            inc n&

        UNTIL ((xx!=xxo!) and (yy!=yyo!)) or (n&>=250)

    WEND

WEND

beep
waitinput
End
 
XProfan 11
Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'...
28.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.303 Views

Untitledvor 0 min.
p.specht21.11.2021
R.Schneider20.11.2021
Uwe Lang20.11.2021
Manfred Barei19.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