Roby94 (Member)
Guru
Messaggi: 1170
Iscritto: 28/12/2009
|
Buonasera, da bravo ingegnere dell'automazione quale vorrei un giorno diventare molte volte mi trovo davanti a sistemi di equazioni che presentano una forma poco semplificata e magari neanche risolta. Molte volte la soluzione è semplice ed elementare, altre invece risulta complessa, in entrambi i casi nel momento della progettazione risulta fastidioso doversi fermare per fare il lavoro del matematico, che sia la risoluzione di un semplice sistema con 2 equazioni di secondo grado o equazioni differenziali di una certa complessità. Molte volte mi avvalgo di wolframalpha, uno strumento molto potente ma ahime poco documentato (o almeno io non trovo mai quello che cerco).
Spesso ho necessità di passare da un sistema di x equazioni a determinate funzioni con determinati parametri. Propongo un esempio riscontrato di recente.
Codice sorgente - presumibilmente Plain Text |
z=p+u*cos(-o-90°)
x=p*cos(-45°)+u*cos(-o-135°)
y=p*cos(-135°)+u*cos(-o-225°)
|
conoscendo a priori u ho necessità di ricavare
Codice sorgente - presumibilmente Plain Text |
e successivamente analizzare i grafici per poter stabilire i limiti di applicabilità di queste funzioni.
Vorrei aver la possibilità di far fare il lavoro di semplificazione e risoluzione ad un software cosi da potermi concentrare solo sullo sviluppo HW e SW. Questo sembra proprio un compito da software CAS. Ora io non conosco però il formalismo per poter chiedere questo tipo di risoluzioni a wolframalpha. Credo comunque che quello che chiedo io sia fattibile, forse mi sbaglio? In alternativa potrei avvalermi di MATLAB?
Grazie. |
|
pierotofy (Admin)
Guru^2
Messaggi: 6230
Iscritto: 04/12/2003
|
|
|
Roby94 (Member)
Guru
Messaggi: 1170
Iscritto: 28/12/2009
|
Grazie Piero, mi hai semplificato e non poco il lavoro futuro.
Ho installato ieri MATLAB
Comunque la mia università offre la licenza anche per Mathematica, vorrà dire che lo proverò.
Con MATLAB ho riscontrato un grande ostacolo. La documentazione (sempre quella) in italiano è poco aggiornata e un po' di bassa qualità, sapresti indirizzarmi su un libro abbastanza aggiornato sull'uso di uno di questi due ambienti? Mathematica può andare benissimo, tanto partirei da zero con entrambi.
Edit:
Ho notato che se chiedo di ricavare "o" WolframAlpha si prende la libertà di scegliere le variabili da passare come argomento es o(y,p), posso forzare la semplificazione a o(x,y,z)?
Ultima modifica effettuata da Roby94 il 08/09/2015 alle 12:33 |
|
pierotofy (Admin)
Guru^2
Messaggi: 6230
Iscritto: 04/12/2003
|
Si dovrebbe essere possibile specificare i parametri. https://reference.wolfram.com/language/tutorial/Eliminating ...
Non penso sia possibile farlo con Wolframalpha in un solo passaggio (servono due passaggi e wolframalpha permette solo query singole).
Sull'italiano... non c'è molto da fare. Adattati all'inglese, anche se esistono delle traduzioni è probabile che siano indietro e non frequentemente aggiornate.
|
|
Roby94 (Member)
Guru
Messaggi: 1170
Iscritto: 28/12/2009
|
Ho installato Mathematica, mi potresti consigliare qualcosa... va bene anche in inglese
Dopo provo a farlo fare a Mathematica quel lavoro vediamo se ci riesco. Grazie Piero.
Edit:
No, scherzavo non sono assolutamente in grado di farlo ora su Mathematica, non riesco a fargli fare nemmeno 3+5.
Edit2:
Faccio progressi, allora ritornando al sistema di prima, prima riduco per "p" dopo di che elimino le variabili che non voglio, giusto?
Ultima modifica effettuata da Roby94 il 08/09/2015 alle 23:15 |
|
pierotofy (Admin)
Guru^2
Messaggi: 6230
Iscritto: 04/12/2003
|
|
|
Roby94 (Member)
Guru
Messaggi: 1170
Iscritto: 28/12/2009
|
Ho l'occhio su questo
http://www.amazon.it/Hands--Start-Wolfram-Mathematica-Hast ...
Appena uscirà darò un occhiata se può sembrare un buon manuale.
Ok grazie ancora Pietro.
Comunque sono bloccato, riduco, elimino e fino a questo punto ci arrivo però le funzioni ritornate non contemplano p(x,y,z) allora cerco di ridurre ancora per p ma il programma rimane bloccato e non riesce a trovare una soluzione... Sinceramente mi sto un pochino avvilendo, visto che reputo questo problema piuttosto semplice, mi chiedo se dovessi chiederli qualcosa di leggermente piu articolato. Allego il file di calcolo, se qualche anima pia avesse voglia di buttarci un occhio per dirmi se sbaglio approccio.
Prima cercando di ottenere o(x,y,z) ho ottenuto risultati piuttosto assurdi.
|
|
pierotofy (Admin)
Guru^2
Messaggi: 6230
Iscritto: 04/12/2003
|
Non ho Mathematica installato, pero' proverei ad eseguire Eliminate prima di Reduce. Cosa succede se elimini u prima di risolvere per p?
|
|
Roby94 (Member)
Guru
Messaggi: 1170
Iscritto: 28/12/2009
|
Allora a questo punto è meglio se chiarisco a cosa corrisponde il suddetto sistema. Sono le equazioni per una particolare configurazione di accelerometro. z,x,y sono i valori letti, o è un angolo di inclinazione del sistema, e p è l'accelerazione del sistema senza la componente gravitazionale. I valori sono espressi in g*m/s^2 e u è l'unità della forza gravitazionale, quindi doveva risultare u al meglio dell'errore del dispositivo di misurazione. Detto questo u è stato rimosso, visto che l'errore è costante, tanto vale applicare la correzione direttamente sui valori z,x,y.
Ovviamente questo è diventato un pretesto per capire dove sbaglio nell'approccio con Mathematica.
Riporto i passaggi che seguo.
Codice sorgente - presumibilmente Plain Text |
in:= eqn = {z == p - o sin, x == p/Sqrt[2] - Cos[o - \[Pi]/4], y == -(p/Sqrt[2]) - Cos[o + \[Pi]/4]}(*Definisco il sistema*)
in:= Reduce[eqn, p]
out= y == 1/2 (-Sqrt[2] (o sin + z) - 2 Cos[o + \[Pi]/4]) && x == 1/2 (Sqrt[2] (o sin + z) - 2 Cos[o - \[Pi]/4]) && p == o sin + z
in:= Eliminate[%, o]
out= (-4 sin ArcCos[1/2 (Sqrt[2] p - 2 x)] == 4 p - \[Pi] sin - 4 z && 2 ArcCos[1/2 (-Sqrt[2] p - 2 y)] == \[Pi] + 2 ArcCos[1/2 (Sqrt[2] p - 2)])
|| (4 sin ArcCos[1/2 (Sqrt[2] p - 2 x)] == 4 p - \[Pi] sin - 4 z && 2 ArcCos[1/2 (-Sqrt[2] p - 2 y)] == \[Pi] + 2 ArcCos[1/2 (Sqrt[2] p - 2 x)])
in:= Reduce[%, p](*E qui va in loop e mi costringe ad abortire*)
|
Ora si dovrebbe capire meglio dove mi blocco, mi sapresti aiutare? Grazie ancora Piero.
|
|