Español
Experimente

Sinus-Ersatz por Padé-Approximation

 

p.specht

(... y wer el Sinus ha, ha así auch Cosinus y Tangens!)
Beachtlich: Im Zona 0-90° restos Ding bajo 0,047 % Fehler. Voraussetzung es allerdings una genaue Computerarithmetik - y wer el ha, el ha normalerweise auch ya una Sinusfunktion instalado. Immerhin matemáticamente interessant. Anmerkung: In el FPU des PC voluntad trigonometrische Funktonen ebenfalls por Approximation ermittelt, alledings mittels CORDIC Algorithmus. Der es sólo todavía genauer, setzt aber "gehobene" rechentechnische Kenntnisse voraus...
Título de la ventana "Sinus-Ersatz por Padé-Approximation"
' Quelle: https://www.dattalo.com/technical/theory/theory.html
' In Xprofan 11.2 umgesetzt de P. Pájaro carpintero 2012-05; Jedwede Gewähr ausgeschlossen!
' Möglicherweise Rechte Dritter, por lo tanto sólo a Demonstrationszwecken!
Font 2:randomize:cls rnd(8^8)
set("decimals",10)
'{ Konstanten para el propio sinus()-Función
var pi!=3.14159265358979323846264338327950288419716939937510
var pi2!=2*pi!
var pih!=pi!/2
var r2g!=pi!/180
var n1!=-325523/2283996
var n2!=34911/7613320
var n3!=479249/(1.1511339840*10^10)
var d1!=18381/761332
var d2!=1261/4567992
var d3!=2623/(1.644477120*10^9)
'}
'{ Hauptschleife
declarar w!,af!,rf!
var txt$="Grad    Sin()    Sinus-Approx  Absol.Err   Relativfehler\n"
imprimir txt$

WhileLoop 0,360,1

    w!=r2g!*&Loop
    af!=sinus(w!)-sin(w!)
    rf!=100*af!/(sin(w!)+10^-36)
    caso &Loop<100:imprimir " ";
    caso &Loop<10 :imprimir " ";
    imprimir &Loop,sin(w!),sinus(w!),af!,rf!;" [%]"

    if %csrlin>26

        waitinput
        cls rnd(8^8)
        imprimir txt$

    endif

EndWhile

imprimir "OK."
Waitinput
'}
End

proc sinus : parámetros x!

    declarar num!,el!,x2!,x4!,x6!,sinus!,vz!
    ' 0-90° Rel.Err < 0,047%
    ' Zyklischen Wertebereich herstellen
    x!=x!-pi2!*int(x!/pi2!)
    vz!=1:if x!>=pi!:x!=x!-pi!-1.24*10^-16:vz!= -1:endif
    caso x!>=pih!:x!=pi!-x!
    ' Padé-Approximation
    x2!=x!*x!:x4!=x2!*x2!:x6!=x4!*x2!
    num! = 1 + n1!*x2! + n2!*x4! + n3!*x6!
    el! = 1 + d1!*x2! + d2!*x6! + d3!*x6!
    sinus! = vz! * x! * num! / el!
    volver sinus!

ENDPROC

proc cosinus :parámetros x!

    volver sinus(x!)+pih!

ENDPROC

proc tangens : parámetros x!

    volver sinus(x!)/sinus!(x!-pih!)

ENDPROC

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



Zum Experiment


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

424 Views

Untitledvor 0 min.
Ernst21.07.2021
Uwe ''Pascal'' Niemeier13.06.2021
R.Schneider28.05.2021
Michael W.28.05.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