Ciao Carlo,
Qualche breve considerazione e annotazioni.
La prima considerazione da fare è la versione di LO e l'ambiente in cui
la stai eseguendo.
1) modulo math... incomprensibile incompatibilità con equation editor e
(sopratutto) math type
Puoi spiegare meglio?
2) modulo calc...
dunque risulta che per incrementi successivi di 1/10 l'intero di 6,0 è 5 (!)
Io ho appena provato con LO 7.5.1 su Linux e non riscontro affatto
questo comportamento.
o quest’altra:
dunque pure qui risulta che per incrementi successivi di 15° il coseno di
90 non è zero (!)
Il fatto che problemi identici siano presenti su tutti i fogli di calcolo,
excel o gnumeric, non sembra giustificativo...
Ed invece lo è, perché qui non stiamo parlando di numeri interi ma di
numeri in virgola mobile.
Ti riporto un estratto da un thread in cui nel 2020 veniva discusso
proprio questo comportamento:
========================================
Functions like COS() or SIN() are computed with a polynomial
approximation called “limited development”. You have first a quotient
PI()/2 which is itself approximate. You then cumulate two
approximations. If you’re versed in mathematics, you can evaluate the
final error resulting from inexact argument, method error (truncated
polynomial development) and computation itself (every operation is
inexact and mapped to the “nearest” representable value).
Never trust floating-point computation, it will never give an exact
result. If the algorithm is long enough (which is not the case for COS()
and SIN()), the result may be really far away from what math tells.
In your case 10-16 is fairly close to zero. The main point is how this
magnitude compares to other quantities it may be added to. If their
orders of magnitude are “sufficiently” different, the tiny “false zero”
does not matter. What is important is the usage you put to this “false
zero”.
LO by itself cannot “correct” the small quantity to zero because it
can’t assert that the argument is strictly equal to pi/2 because
equality has no meaning with floating-point.
========================================
Infatti il problema che riscontri si può facilmente "arginare"
aggiungendo un arrotondamento come il seguente
=ARROTONDA(COS(RADIANTI(angolo)); 10)
Sarebbe inoltre gradito un ulteriore ampliamento del "parco" delle funzioni
speciali.
Sono presenti fattoriale, fattoriale doppio, funzione gamma.
Non dovrebbe essere difficile implementare l'integralesponenziale del primo
ordine (* eqs. 5.1.53 fino alla 5.1.56), la gamma incompleta inferiore (*
eq. 6.5.4) e i polinomi ultrasferici di Gegenbauer (* eq. 22.3.4), dove
l'asterisco si riferisce al testo "Abramowiz & Stegun - Handbook of
Mathematical Functions".
Anche solo quale promemoria per futuri sviluppi, vogliate cortesemente
tener conto di questa mia.
Tutto molto interessante, ma questa è una lista di utilizzatori di LO,
non di sviluppo.
Dovrei segnalare queste tue richieste nelle apposite liste o nei gruppi
Telegram di sviluppo.
--
Gabriele Bertolucci
[passa come me ad un'email sicura: https://pr.tn/ref/BT54ED5PY590]
--
Come cancellarsi: E-mail users+unsubscribe@it.libreoffice.org
Problemi? https://it.libreoffice.org/supporto/mailing-lists/come-cancellarsi/
Linee guida per postare + altro: https://wiki.documentfoundation.org/Local_Mailing_Lists/it
Archivio della lista: https://listarchives.libreoffice.org/it/users/
Privacy Policy: https://www.documentfoundation.org/privacy
Context
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.