Español
Experimente

ArcusSinus(x) o. arcsin(x) o. asin(x) en el Eigenbau

 

p.specht

Der ArcusSinus, él kommt u.a. en Ellipsenformeln antes, liefert zwischen el Argumentwerten -1 y 1 el Umkehrung el Sinusfunktion, freilich sólo en el ersten Wellenzug bezogen. Wenn wir ihm sagen, wieviel % uno vollen Umdrehung gelaufen es, teil él uns dazu el Bogenlänge en el Einheitskreis en Radiantmetern [rad] con (lat. arcus heißt sí 'Bogen').

Un Erfindung des Herrn Taylor erlaubt lo, así bastante jede mehrfach ableitbare Función en un "unendliche" Reihe para desarrollar, el Computer relativ rasch berechnen puede. No siempre erreicht uno esta el geforderte Genauigkeit, porque: Irgendwo muss el Reihe en el Realität sí abbrechen. Auch hay verschiedene Reihen, el unterschiedlich bien geeignet son. Einen Test el Standard-Reihenentwicklung en el Punkt 0 herum sieht uno nachstehend, beschleunigbar wäre el Ganze auch todavía deutlich...
Título de la ventana "Test uno Eigenbau-ArcusSinus(x)-Funktion"
Font 2:randomize:set("decimals",17)
Cls rnd(8^8)
imprimir "  arcsin(x) con x=[-1.0..+1.0]: liefert el Bogenlänge [rad] des 1.Sinus-Wellenzugs"
imprimir "  math.inc-Nachbau:      Eigenbau-TaylorArcSin(x)       Abs.Fehler:                       "

WhileLoop -1000,1000

    imprimir &Loop,asin(&Loop/1000),
    imprimir tlrasin(&Loop/1000),format$("%e",tlrasin(&Loop/1000)-asin(&Loop/1000))

    if %csrlin>24:waitInput 10000:cls rnd(8^8):endif

    Wend

    WaitInput
    End

    proc ASIN : parámetros x!' = Nachbau el entsprechenden math.inc-Función

        var res!=0:var él$=""
        var xx!=x!*x!
        var wur!=1-xx!

        if wur!>=0

            wur!=sqrt(wur!)

            if wur!<>0

                res!=arctan(x!/wur!)

            más

                res!=val("10^-30")
                él$="Div0 en asin()"

            endif

        más

            res!=val("-1*10^-30")
            él$="Nonreal root en asin()"

        endif

        imprimir él$,
        volver res!

    ENDPROC

    proc ACOS :parámetros x!

        volver pi()/2-ASIN(x!)

    ENDPROC

    Proc TlrASin : parámetros x!' Eigenbau-arcussinus(x) por Taylorreihe

        ' Der wahre ArcusSinus es definiert para Argumente -1 ,,, +1.
        ' Testergebnisse para el Nachbau;
        ' Auf 5 Stellen exakt sólo +/- 0.833 en el Nulldurchgang
        ' Auf 3 Stellen exakt sólo innerhalb +/- 0.933
        var tmp!=0:var x2!=x!*x!:var x3!=x2!*x!:var x5!=x3!*x2!:var x7!=x5!*x2!
        var x9!=x7!*x2!:var x11!=x9!*x2!:var x13!=x11!*x2!:var x15!=x13!*x2!
        var x17!=x15!*x2!:var x19!=x17!*x2!:var x21!=x19!*x2!:var x23!=x21!*x2!
        var x25!=x23!*x2!:var x27!=x25!*x2!:var x29!=x27!*x2!:var x31!=x29!*x2!
        var x33!=x31!*x2!:var x35!=x33!*x2!:var x37!=x35!*x2!:var x39!=x37!*x2!
        tmp!=tmp!+x!
        tmp!=tmp!+x3!/3 * 1/2
        tmp!=tmp!+x5!/5 * 1/2*3/4
        tmp!=tmp!+x7!/7 * 1/2*3/4*5/6
        tmp!=tmp!+x9!/9 * 1/2*3/4*5/6*7/8
        tmp!=tmp!+x11!/11 * 1/2*3/4*5/6*7/8*9/10
        tmp!=tmp!+x13!/13 * 1/2*3/4*5/6*7/8*9/10*11/12
        tmp!=tmp!+x15!/15 * 1/2*3/4*5/6*7/8*9/10*11/12*13/14
        tmp!=tmp!+x17!/17 * 1/2*3/4*5/6*7/8*9/10*11/12*13/14*15/16
        tmp!=tmp!+x19!/19 * 1/2*3/4*5/6*7/8*9/10*11/12*13/14*15/16*17/18
        tmp!=tmp!+x21!/21 * 1/2*3/4*5/6*7/8*9/10*11/12*13/14*15/16*17/18*19/20
        tmp!=tmp!+x23!/23 * 1/2*3/4*5/6*7/8*9/10*11/12*13/14*15/16*17/18*19/20*21/22
        tmp!=tmp!+x25!/25 * 1/2*3/4*5/6*7/8*9/10*11/12*13/14*15/16*17/18*19/20*21/22*23/24
        tmp!=tmp!+x27!/27 * 1/2*3/4*5/6*7/8*9/10*11/12*13/14*15/16*17/18*19/20*21/22*23/24*25/26
        tmp!=tmp!+x29!/29 * 1/2*3/4*5/6*7/8*9/10*11/12*13/14*15/16*17/18*19/20*21/22*23/24*25/26*27/28
        tmp!=tmp!+x31!/31 * 1/2*3/4*5/6*7/8*9/10*11/12*13/14*15/16*17/18*19/20*21/22*23/24*25/26*27/28*29/30
        tmp!=tmp!+x33!/33 * 1/2*3/4*5/6*7/8*9/10*11/12*13/14*15/16*17/18*19/20*21/22*23/24*25/26*27/28*29/30*31/32
        tmp!=tmp!+x35!/35 * 1/2*3/4*5/6*7/8*9/10*11/12*13/14*15/16*17/18*19/20*21/22*23/24*25/26*27/28*29/30*31/32*33/34
        tmp!=tmp!+x37!/37 * 1/2*3/4*5/6*7/8*9/10*11/12*13/14*15/16*17/18*19/20*21/22*23/24*25/26*27/28*29/30*31/32*33/34*35/36
        tmp!=tmp!+x39!/39 * 1/2*3/4*5/6*7/8*9/10*11/12*13/14*15/16*17/18*19/20*21/22*23/24*25/26*27/28*29/30*31/32*33/34*35/36*37/38
        volver tmp!

    ENDPROC

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




p.specht

Lo va aber auch anders:

ArcSin iterativ ermitteln
==================
Dass uno se una Iteration uno Quadratwurzel-Formel el Umkehrfunktion des SINUS fast cualquier annähern kann, se en el folgenden Programa demonstriert. Lo son sí z.B. Situationen, wo al una Microprozessor beibringen möchte.
Título de la ventana "ArcSin por Iteration"
'From Pascal (by J.P.Moreau) to XProfan-11 by P.Pájaro carpintero/Vienna
'********************************************************
'*       Program to demonstrate arcsine Iteration       *
'* ---------------------------------------------------- *
'*   Reference: BASIC Scientific Subroutines, Vol. II   *
'*   by F.R. Ruckdeschel, BYTE/McGRAWW-HILL, 1981 [1].  *
'* ---------------------------------------------------- *
'* SAMPLE RUN:                                          *
'*   X       ARCSIN(X)       STEPS        ERROR         *
'*  -----------------------------------------------     *
'*  0.00     0.0000000         0       0.0000000000     *
'*  0.05     0.0500209         7      -0.0000000013     *
'*  0.10     0.1001674         8      -0.0000000025     *
'*  0.15     0.1505683         9      -0.0000000021     *
'*  0.20     0.2013579        10      -0.0000000013     *
'*  0.25     0.2526803        10      -0.0000000025     *
'*  0.30     0.3046927        11      -0.0000000011     *
'*  0.35     0.3575711        11      -0.0000000017     *
'*  0.40     0.4115168        11      -0.0000000025     *
'*  0.45     0.4667653        12      -0.0000000009     *
'*  0.50     0.5235988        12      -0.0000000012     *
'*  0.55     0.5823642        12      -0.0000000016     *
'*  0.60     0.6435011        12      -0.0000000021     *
'*  0.65     0.7075844        13      -0.0000000007     *
'*  0.70     0.7753975        13      -0.0000000008     *
'*  0.75     0.8480621        13      -0.0000000010     *
'*  0.80     0.9272952        13      -0.0000000012     *
'*  0.85     1.0159853        13      -0.0000000014     *
'*  0.90     1.1197695        14      -0.0000000004     *
'*  0.95     1.2532359        14      -0.0000000004     *
'*  1.00     1.5707963         0       0.0000000000     *
'********************************************************
Ventana de Estilo 24:Cls:font 2:set("decimals",8)
Declarar e!,x!,i&,m&,y!,pi!,u0!,u1!,u2!
imprimir "\n X      ArcSinIter(X)       STEPS     ERROR"
imprimir "-------------------------------------------------------------------"
e!=val("1e-15")
x!=0

whileloop 1,21:i&=&Loop

    y!=ArcSinIter(x!)
    imprimir " ";format$("#0.00",x!),tab(9);format$("%g",y!),\
    tab(29);m&,tab(34);format$("%g",sin(y!)-x!)
    x!=x!+0.05

Endwhile

imprimir
beep:Waitinput
End

Proc ArcSinIter :parámetros x!

    '************************************************
    '*       Arcsin(x) recursion subroutine         *
    '* Entrada is x (-1<x<1), output is y=arcsin(x),  *
    '* convergence criteria is e.                   *
    '* -------------------------------------------- *
    '* Reference: Computational Analysis by Henrici *
    '************************************************
    m&=0
    pi!=Pi()
    caso e!<0:volver y!'Guard against failure
    caso x!<>0:y!=Check_range(x!)
    volver y!

ENDPROC

Proc Check_range :parámetros x!

    caso abs(x!)>=1:goto "G1300"
    u0!=x!*sqrt(1-x!*x!)
    u1!=x!

    Repeat

        u2!=u1!*sqrt(2*u1!/(u1!+u0!))
        y!=u2!
        m&=m&+1
        caso abs(u2!-u1!)<e!:BREAK
        u0!=u1!:u1!=u2!

    Until 0

    G1300:
    caso abs(x!-1)<val("1e-10"):y!=pi!/2
    volver y!

ENDPROC

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

1.501 Views

Untitledvor 0 min.
Ernst21.07.2021
Uwe ''Pascal'' Niemeier13.06.2021
Thomas Zielinski07.06.2021
Michael W.07.06.2021
Más...

Themeninformationen

Dieses Thema ha 1 subscriber:

p.specht (2x)


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