Français
Experimente

Sinus-Ersatz par Padé-Approximation

 

p.specht

(... et qui den Sinus hat, hat avec cela aussi Cosinus et Tangens!)
considérable: Im Bereich 0-90° bleibt cela Ding sous 0,047 % faute. Voraussetzung ist allerdings une genaue Computerarithmetik - et qui qui hat, qui hat normalement aussi déjà une Sinusfunktion incorporé. Immerhin mathématique intéressant. Anmerkung: dans qui FPU des PC volonté trigonometrische Funktonen également par Approximation ermittelt, alledings mittels CORDIC Algorithmus. qui ist arrêt encore genauer, mets mais "gehobene" rechentechnische Kenntnisse voraus...
Titre de la fenêtre "Sinus-Ersatz par Padé-Approximation"
' source: https://www.dattalo.com/technical/theory/theory.html
' dans Xprofan 11.2 mise en œuvre de P. Specht 2012-05; Jedwede Gewähr ausgeschlossen!
' Möglicherweise Rechte Dritter, daher seulement trop Demonstrationszwecken!
Font 2:randomize:cls rnd(8^8)
set("decimals",10)
'{ Konstanten pour qui eigene sinus()-Funktion
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
declare w!,af!,rf!
var txt$="Grad    Sin()    Sinus-Approx  Absol.Err   Relativfehler\n"
imprimer txt$

WhileLoop 0,360,1

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

    si %csrlin>26

        waitinput
        cls rnd(8^8)
        imprimer txt$

    endif

Endwhile

imprimer "OK."
Waitinput
'}
Fin

proc sinus : parameters x!

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

endproc

proc cosinus :parameters x!

    return sinus(x!)+pih!

endproc

proc tangens : parameters x!

    return 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


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

426 Views

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