bigalex Inserito: 22 luglio 2004 Segnala Share Inserito: 22 luglio 2004 Sono nella necessità di dover calcolare la radice quadrata di un numero che esprime la dimensione di un cateto di un triangolo rettangolo .Poichè il plc di cui dispongo non ha questa funzione integrata chiedevo se era possibile arrivare alla radice quadrata di un numero in modo indiretto .Per chiarezza il plc dispone delle seguenti istruzioni matematiche :ADDIZIONESOTTRAZIONE MOLTIPLICAZIONEDIVISIONE SENOCOSENO TANGENTEIl mio problema a monte è di dover calcolare la dimensione di un cateto di un triangolo rettangolo avendo noti il valore dell'ipotenusa e dell'altro cateto e quindi non avendo disponibili i valori degli angoli non retti .Grazie a tutti .bigalex Link al commento Condividi su altri siti More sharing options...
pcontini Inserita: 22 luglio 2004 Segnala Share Inserita: 22 luglio 2004 Con le funzioni trigonometriche (seno, coseno, tangente) si dovrebbe riuscire, fammi pensare una attimo... Link al commento Condividi su altri siti More sharing options...
ClA Inserita: 22 luglio 2004 Segnala Share Inserita: 22 luglio 2004 I casi sono due:- o utilizzi un algoritmo approssimato per calcolare questa radice (es. sviluppo in serie arrestato...)- oppure ci dici che dato hai di questo triangolo Link al commento Condividi su altri siti More sharing options...
bigalex Inserita: 22 luglio 2004 Autore Segnala Share Inserita: 22 luglio 2004 (modificato) Ho gia fornito i dati : Triangolo rettangolo di cui sono noti la lunghezza dell'ipotenusa e di un cateto , quindi applicando il teorema di Pitagora calcolo la lunghezza dell'altro cateto il problema è che nel PLC non ho la funzione di radice quadrata che mi estrae il valore di risultato del teorema di Pitagora . Sono stato sufficientemente chiaro ?bigalex Modificato: 22 luglio 2004 da bigalex Link al commento Condividi su altri siti More sharing options...
dago_ Inserita: 22 luglio 2004 Segnala Share Inserita: 22 luglio 2004 Link Link al commento Condividi su altri siti More sharing options...
ClA Inserita: 22 luglio 2004 Segnala Share Inserita: 22 luglio 2004 Lo stavo cercando anche io! ma sono stato preceduto.Per utilizzare la trigonometria, mancando gli angoli, sarebbe necessario utilizzare le funzioni trigonometriche inverse.... quindi saremmo da capo. Link al commento Condividi su altri siti More sharing options...
bigalex Inserita: 22 luglio 2004 Autore Segnala Share Inserita: 22 luglio 2004 Grazie a tutti .bigalex Link al commento Condividi su altri siti More sharing options...
Lucky67 Inserita: 22 luglio 2004 Segnala Share Inserita: 22 luglio 2004 Che newton smanettasse già coi plc?? comunque bello il link e bella la soluzione...grazie Link al commento Condividi su altri siti More sharing options...
bigalex Inserita: 22 luglio 2004 Autore Segnala Share Inserita: 22 luglio 2004 Ne ho trovati altri di siti che in modo più o meno scientifico spiegano il metodo di calcolo .Nello specifico ho applicato il "Metodo di Erone" (che è praticamente quello evidenziato nel link di Dago) e magia delle magie calcola la radice quadrata che è un piacere . Ho provato con diversi cicli di iterazione per il calcolo e devo dire che effettivamente già dopo 5 iterazioni il calcolo è sufficientemente preciso (verificato con calcolatrice scientifica) . Questo problema mi ha dato ancora più consapevolezza che la matematica è una materia affascinante, difficile (almeno per me lo è), ma quanto mai necessaria .Quindi mi rammarico di non averla studiata a sufficienza .bigalex Link al commento Condividi su altri siti More sharing options...
ClA Inserita: 23 luglio 2004 Segnala Share Inserita: 23 luglio 2004 non e mai troppo tardi... Link al commento Condividi su altri siti More sharing options...
Federico Milan Inserita: 23 luglio 2004 Segnala Share Inserita: 23 luglio 2004 Ho provato con diversi cicli di iterazione per il calcolo e devo dire che effettivamente già dopo 5 iterazioni il calcolo è sufficientemente preciso (verificato con calcolatrice scientifica) .Ciao, probabilmente potresti anche evitare di imporre iterazioni fisse, ma valutando il grado di precisione voluta, infatti i metodi iterativi consentono di scegliere il grado di precisione voluta ... facendoti a volte risparmiare cicli computazionali ...ciao Link al commento Condividi su altri siti More sharing options...
Stefano Sormanni Inserita: 23 luglio 2004 Segnala Share Inserita: 23 luglio 2004 (modificato) una metodologia un po' più rozza potrebbe essere:cos(alpha)= CATETO/IPOTENUSAsi fa un loop iterativo dove si inserisce l'angolo e calcola il coseno, il quale viene confrontato con quello trovato (con un certo margine di errore), e quindi abbiamo ricavato l'angolo infine si moltiplica per il SIN ed il gioco è fatto.... Modificato: 23 luglio 2004 da Stefano Sormanni Link al commento Condividi su altri siti More sharing options...
bigalex Inserita: 23 luglio 2004 Autore Segnala Share Inserita: 23 luglio 2004 Per Stefano Sormanni ,come ho scritto precedentemente non mi sono noti gli angoli (l'unica certezza è che il triangolo è rettangolo) e pertanto non potevo utilizzare le funzioni trigonometriche per i calcoli .Da qui la necessità di applicare il Teorema di Pitagora che come noto per l'estrazione del dato finale richiede la funzione di radice quadrata non presente come istruzione nel PLC che sto utilizzando .Per Federico Milan ,la tua osservazione è giusta e può sicuramente essere inserita , grazie .Ho provato anche ad estrarre la radice quadrata di numeri grandi es. 99999 e in 10 iterazioni la precisione è elevata , poichè il calcolo non importa che sia istantaneo e non avendo a disposizione istruzioni del tipo FOR - NEXT ogni iterazione viene eseguita con un ciclo di scansione del PLC .bigalex Link al commento Condividi su altri siti More sharing options...
thinking Inserita: 24 luglio 2004 Segnala Share Inserita: 24 luglio 2004 Ciao a tutti,Questa è una procedura che ho trovato per risolvere una radice quadrata con una semplice calcolatrice che non abbia la radice quadrata ma che abbia la funzione memoria M+ M- MC e MR. Può servire per inserire in un programma PLC:Utilizzando la memoria della calcolatrice evito di scrivere lunghe cifre di numeri a penna:Esempio: Calcolo della radice quadrata di 3:Inserisco il valore 1 in M+Procedo così:3 tastodiviso tastoMR tastomeno tastoMR tastodiviso 2 tastopiù tastoMR tastouguale tastoMC tastoM+Questa è la prima aprossimazione.Procedo sempre uguale:3 tastodiviso tastoMR tastomeno tastoMR tastodiviso 2 tastopiù tastoMR tastouguale tastoMC tastoM+Ed è la seconda aprossimazione.In 5 0 6 aprossimazioni il risultato è buono.Saluti Link al commento Condividi su altri siti More sharing options...
JumpMan Inserita: 24 luglio 2004 Segnala Share Inserita: 24 luglio 2004 (modificato) Funziona anche questo !Ma più grande è il valore di ingresso e più bisogna iterare-------- ----------Valore NumeroIngresso Iterazioni-------- ----------2..........53..........59..........699.........8999........109999.......1199999......139999999999..21Comunque basta iterare finchè il valore di uscita dell’ultima iterazione è uguale a quello della penultima. Modificato: 24 luglio 2004 da JumpMan Link al commento Condividi su altri siti More sharing options...
JumpMan Inserita: 24 luglio 2004 Segnala Share Inserita: 24 luglio 2004 Il numero di iterazioni necessarie riportato qui sopra vale anche per l’esempio del link di Dago a patto di usare come numero di partenza a=1Le iterazioni possono essere notevolmente ridotte aumentando il valore (a) all’ aumentare del valore (n)Esempio:n = 999999999999 , a=1 , iterazioni necessarie = 21 (come sopra)n = 999999999999 , a=99 , iterazioni necessarie = 15n = 999999999999 , a=9999 , iterazioni necessarie = 8n = 999999999999 , a=99999 , iterazioni necessarie = 2 !!!Non sono riuscito a trovare un’algoritmo per ottimizzare (a) rispetto a (n)Ps: Ho visto che in genere si ottiene un buon risultato inserendo in (a) le prime x/2 cifre di (n), (dove x=quantità totale cifre di n) Link al commento Condividi su altri siti More sharing options...
JumpMan Inserita: 24 luglio 2004 Segnala Share Inserita: 24 luglio 2004 Ho scritto un po’ in fretta perché dovevo andare via, poi mentre facevo altro mi è venuto in mente (mi succede spesso di abbandonare un problema insoluto per dedicarmi a tutt’altre attività e mentre faccio queste mi viene un’idea per la soluzione del problema precedente... è come se una parte del cervello continuasse a lavorare in background..... sono anormale ?) .Quello che ho scritto:Ps: Ho visto che in genere si ottiene un buon risultato inserendo in (a) le prime x/2 cifre di (n), (dove x=quantità totale cifre di n)va sostituito con: Più il valore inserito in (a) si avvicina alla radice quadrata di (n) minori saranno le iterazioni necessarie. Link al commento Condividi su altri siti More sharing options...
bigalex Inserita: 25 luglio 2004 Autore Segnala Share Inserita: 25 luglio 2004 Ciao Jumpman ,non so se hai letto la discussione dall'inizio, ma non posso sapere quale numero si avvicina di più alla radice quadrata poichè è proprio la radice quadrata che devo calcolare (cosa che ormai ho gia risolto, come scritto precedentemente) .Tieni presente comunque che è il PLC che avendo dei dati inseriti alcuni direttamente, altri risultato di calcoli precedenti, deve calcolarsi la radice quadrata e quindi a priori il PLC non può sapere quale numero si avvicna di più alla radice quadrata che è appunto il dato che deve calcolare .bigalex Link al commento Condividi su altri siti More sharing options...
JumpMan Inserita: 25 luglio 2004 Segnala Share Inserita: 25 luglio 2004 (modificato) non so se hai letto la discussione dall'inizio, ma non posso sapere quale numero si avvicina di più alla radice quadrata poichè è proprio la radice quadrata che devo calcolare (cosa che ormai ho gia risolto, come scritto precedentemente) .Lo so, lo so........... volevo solo far notare, se qualcun'altro ne ha bisogno, che il numero delle iterazioni è meglio che non sia fisso in quanto dipende dalla grandezza del valore (n) e dal numero di partenza che immetti in (a).Secondo si dovrebbe iterare finchè il numero non cambia più (rispetto alla iterazione precedente), a meno che no si conoscano i limiti dei valori in ingresso...se hai 5 cifre e non ti interessa molta precisione 10 iterazioni possono anche andare bene.Nella pagina 1 ti avevo messo una tabellina con il numero di iterazioni necessarie (provato con VB fino a quando il risultato, in "double-precision", non cambia più) Modificato: 25 luglio 2004 da JumpMan Link al commento Condividi su altri siti More sharing options...
JumpMan Inserita: 29 luglio 2004 Segnala Share Inserita: 29 luglio 2004 Oggi mentre usavo la calcolatrice di windows mi è venuto un “deja-vu”... tale calcolatrice è infatti sprovvista del tasto “radice quadrata”, mi è venuto in mente però che l’avevo usata altre volte proprio per il teorema di pitagora, eppure il tasto radice non c’è... dopo un po’ mi sono ricordato che l’elevazione alla 1/n è equivalente alla radice n.Praticamente per calcolare la radice quadrata si può anche elevare alla 0.5.So che ormai hai risolto, ma se il plc in questione avesse avuto anche l’elevazione a potenza si sarebbe risolto tutto con una istruzione.Ciao Link al commento Condividi su altri siti More sharing options...
bigalex Inserita: 29 luglio 2004 Autore Segnala Share Inserita: 29 luglio 2004 Grazie ancora delle risposte, purtroppo il plc che devo utilizzare non ha funzioni matematiche complesse, credo sia dovuto principalmente al processore utilizzato sulla CPU e evidentemente surrogare il calcolo della radice quadrata o dell'elevazione a potenza diventi pesante se debba essere eseguito nel ciclo scansione (o meglio all'istante di elaborazione dell'istruzione) .Quello che è confortante è che tal volta esistono vie d'uscita che salvano "capra e cavoli" e che internet è ormai una fonte inesauribile di informazioni e di contatti con persone che mettono in comune le esperienze amplificando le potenzialità del singolo individuo (sempre che si abbia la sensibilità di comprenderlo ovvero gli scambi devono essere bidirezionali) .bigalex Link al commento Condividi su altri siti More sharing options...
Claudio Monti Inserita: 29 luglio 2004 Segnala Share Inserita: 29 luglio 2004 Oggi mentre usavo la calcolatrice di windows mi è venuto un “deja-vu”... tale calcolatrice è infatti sprovvista del tasto “radice quadrata”Vero, pero' miracolosamente la radice quadrata compare se usi la vista standard! mentre in quella "scientifica" e' stata omessa Link al commento Condividi su altri siti More sharing options...
wnc Inserita: 29 luglio 2004 Segnala Share Inserita: 29 luglio 2004 La radice quadrata non è altro che il numero elevato ad 1/2. Basta usare x^y.Scientifico vuol dire anche questo Link al commento Condividi su altri siti More sharing options...
Federico Milan Inserita: 29 luglio 2004 Segnala Share Inserita: 29 luglio 2004 La radice quadrata non è altro che il numero elevato ad 1/2. Basta usare x^y.Scientifico vuol dire anche questo Se vohliamo essere coerenti con il pensiero "scientifico":Radicequadrata(x) = modulo(x)^(1/2)non mettendo il modulo vi è un errore formale nel senso che:((x)^(1/2))^2=(x^2)^(1/2) -> e se poni x=-1 ti accorgi che c'è qualcosa che non va!quindi ci deve essere il modulo ... Link al commento Condividi su altri siti More sharing options...
wnc Inserita: 29 luglio 2004 Segnala Share Inserita: 29 luglio 2004 E i numeri complessi??????? Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora