Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it L'avatar di proffi
    Registrato dal
    Sep 2000
    Messaggi
    337

    calcolo simbolico: quale linguaggio?

    Ciao a tutti, sto cercando di realizzare un programma di calcolo strutturale, limitatamente ai sistemi piani di travi (faccio ingegneria civile) che svolga i calcoli in forma simbolica, quindi non approssimi i risultati come con il metodo degli elementi finiti. Con Maple, che appunto è un programma per il calcolo simbolico, è possibile farlo, però è scomodo perchè comunque per fare girare uno script con la sua interfaccia grafica bisogna averlo intallato (e pagato?! :rollo: ), e comunque sarebbe poco intuitivo introdurre i dati della struttura da risolvere.
    Ho trovato un programma open source, maxima (maxima.sf.net) scritto in LISP, che mi permetterebbe di utlizzare parti del suo codice per implementarle nel mio programma.
    Quindi volevo chiedervi:
    -sapete se in generale anche gli altri programmi di calcolo simbolico (Maple, Matematica) sono scritti in LISP, e se questo linguaggio ha veramente le potenzialità migliori? Io conosco il C, il LISP mi sembra che abbia un approcio sostanzialmente diverso alla programmazione.
    -nel caso il LISP sia la scelta giusta, sapreste consigliarmi qualche link a guide o tutorial? con google ho trovato qualcosa ma niente di completo... E per i compilatori?
    Ciao

  2. #2

    Re: calcolo simbolico: quale linguaggio?

    Originariamente inviato da proffi
    Ciao a tutti, sto cercando di realizzare un programma di calcolo strutturale, limitatamente ai sistemi piani di travi (faccio ingegneria civile) che svolga i calcoli in forma simbolica, quindi non approssimi i risultati come con il metodo degli elementi finiti. Con Maple, che appunto è un programma per il calcolo simbolico, è possibile farlo, però è scomodo perchè comunque per fare girare uno script con la sua interfaccia grafica bisogna averlo intallato (e pagato?! :rollo: ), e comunque sarebbe poco intuitivo introdurre i dati della struttura da risolvere.
    Ho trovato un programma open source, maxima (maxima.sf.net) scritto in LISP, che mi permetterebbe di utlizzare parti del suo codice per implementarle nel mio programma.
    Quindi volevo chiedervi:
    -sapete se in generale anche gli altri programmi di calcolo simbolico (Maple, Matematica) sono scritti in LISP, e se questo linguaggio ha veramente le potenzialità migliori? Io conosco il C, il LISP mi sembra che abbia un approcio sostanzialmente diverso alla programmazione.
    -nel caso il LISP sia la scelta giusta, sapreste consigliarmi qualche link a guide o tutorial? con google ho trovato qualcosa ma niente di completo... E per i compilatori?
    Ciao
    Tutto quello che so del Lisp è che dovrò fare l'esame di Elementi di informatica teorica (che comprende una buona parte del Lisp)

  3. #3

    Re: calcolo simbolico: quale linguaggio?

    EDIT:

    avevo postato una risposta di un altro 3d

  4. #4
    Utente di HTML.it L'avatar di proffi
    Registrato dal
    Sep 2000
    Messaggi
    337
    In bocca al lupo per l'esame

  5. #5
    non ho ben capito le funzionalità che il programma deve avere, ma ci vedrei bene python per questo task.
    Mi daresti maggiori dettagli di come il programma deve lavorare e di che input <-> output avresti bisogno?
    Potrebbe essere un progetto interessante da sviluppare.

    ciao
    ksh
    PyGTK GUI programming
    un impegno concreto: eliminare la k dalle tastiere italiane

  6. #6
    Utente di HTML.it L'avatar di proffi
    Registrato dal
    Sep 2000
    Messaggi
    337
    Evvai, il primo membro del team di sviluppo!
    Dovrebbe essere un piccolo programma di calcolo strutturale, però con alcune caratteristiche particolari ( adesso spero di essere comprensibile ):
    -dovrebbe risolvere i sistemi piani di travi (implementare altre cose per il momento è al di fuori della mia portata), in pratica quelli che compaiono negli esami di Scienza delle costruzioni. I programmi di calcolo strutturale utilizzati dagli studenti sono ad elementi finiti, quindi offrono un'approssimazione numerica dei risultati ma non la soluzione esatta in forma simbolica, che è quella più utile da un punto di vista didattico, le soluzioni approssimate vanno bene per un progetto vero e proprio di una struttura.
    -per fare questo è necessario scrivere un codice che riesca ad integrare in maniera esatta i termini necessari alla risoluzione della struttura. Implementare queste cose a livello di calcoli puri non è difficile, basta conoscere alcuni algoritmi ( come quello di Gauss) ilproblema è che io non so come trattare le variabili a livello simbolico. Ad esempio sarei capace di scrivere un listato C, o anche con il Matlab, che calcoli esattamente un integrale, ma in forma numerica, pur restando validi gli stessi algoritmi, invece dovrei riuscire ad esempio a dare in input x e in output x^2/2, scritto così, senza valori.

    I miei problemi nascono dal fatto che vorrei portare tutto questo al di fuori di ambienti come Maxima o Maple, e creare un programma stand-alone. Maxima fortunatamente è open source, solo che è scritto in LISP, e io proprio non ho un'idea... cmq ho trovato una piccola guida.
    Mi chiedevo, dato che conosco un po' il C, se era possibile farlo anche con questo linguaggio o c'è un motivo particolare per utilizzare il LISP. Forse perchè Maxima e LISP sono stati sviluppati entrambi al MIT?
    Tu programmi in Python no? Rispetto al C che cosa può offrire di più? Considera però che non l'ho mai usato...
    Cmq (nella mia ignoranza) LISP è un linguaggio funzionale, C e Python sono un'alta categoria di linguaggi, o sbaglio? La differenza non mi è tanto chiara in termini di campi di applicazione...

    Riassumendo, oltre agli algoritmi di risoluzione delle strutture, in cui posso cavarmela, bisognerebbe implementare, in forma simbolica:
    -risoluzione di sistemi algebrici
    -integrazione
    -derivazione

    Volevo dedicare a questa cosa un po' di tempo questa estate, una volta finiti gli esami, anche a realizzare un'interfaccia in gtk+ a questo programmillo, c'è da lavorarci su...

    Ciao e scusa il casino

  7. #7
    Sei stato abbastanza chiaro, mi aspettavo di peggio...eeheh

    Python rispetto al C è un linguaggio di più alto livello, sicuramente più facile da imparare e soprattutto e OOP.

    Il C a mio giudizio può essere utilizzato quando si tratta di scrivere applicazioni che interagiscono in modo costante con la macchina, come ad esempio device driver o manipolazione di pacchetti IP e così via, per problemi di calcolo numerico trovo python imbattibile (senza voler fare guerre di religioni).

    Purtroppo non conosco il LISP quindi non mi sento di fare delle valutazioni che sarebbero assolutamente fuori luogo.

    Python puoi considerarlo un pò un cugino del C++ (fratello mi pare troppo...), programmazione indifferentemente procedurale o a oggetti.

    Non ho ben capito cosa intendi qui, in che senso senza valori?

    invece dovrei riuscire ad esempio a dare in input x e in output x^2/2, scritto così, senza valori.
    Tieni presente che di derivate e integrali non ne capisco granchè, solo qualche residuo in memoria (RAM :rollo: ) dai miei studi di geometro...

    Se i moderatori ritengono che l'argomento sia OT e non di interesse comune possiamo continuare via email.

    [edit]
    python e gtk2+ si sposano a meraviglia...
    [/edit]

    ciao
    ksh
    PyGTK GUI programming
    un impegno concreto: eliminare la k dalle tastiere italiane

  8. #8
    Originariamente inviato da proffi
    Evvai, il primo membro del team di sviluppo!
    -integrazione
    Che io sappia l'integrazione "simbolica" non è praticabile nel pc; o meglio, lo si può praticare solo per alcuni casi.
    Immagina che non esiste un metodo universale per calcolare un integrale indefinito...la cosa si avvicina troppo all'I.A.

    La derivazione, invece è un processo del tutto automatico e può pertanto essere fatta tranquillamente... Consiglio in un tale contesto di creare una sorta di struttura ad albero per le risoluzioni di derivazione delle funzioni più comuni

  9. #9
    Se scrivevi in cinese capivo di più...ehehhe
    sono davvero ignorante in materia prettamente matematica
    PyGTK GUI programming
    un impegno concreto: eliminare la k dalle tastiere italiane

  10. #10
    Utente di HTML.it L'avatar di proffi
    Registrato dal
    Sep 2000
    Messaggi
    337
    x cicciox80

    L'integrazione simbolica è fattibile in molti casi, prova a scaricarti maxima , fa degli integraloni... le funzioni che non sono integrabili in forma chiusa ovviamente non te le fa, ma questo è proprio un problema di analisi matematica. L'intelligenza artificiale c'entra poco, di più conta l'intelligenza di chi si è inventato gli algoritmi per risolvere gli integrali col calcolatore.
    Cmq a me interessa l'integrazione di normalissimi polinomi, ed è fattibile.

    X KornShell

    Intanto grazie della disponibilità
    E bravo sei un geometra! Allora un po' riuscirò a spiegarmi!
    Senza valori intendevo appunto in forma simbolica (cioè con le lettere x, y,...), con i risultati espressi in funzione delle variabili e non valori numerici definiti. Per l'esempio del post precedente l'integtrale di x è x^2/2, in forma simbolica, al computer invece piace fare i conti numerici. Ad esempio non mi interessa sapere se il momento flettente vale 10000 Nm, ma, che so, ql^2/8 ( dai questo te lo ricordi ). Poi sostituendo carichi, lunghezze delle travi ecc... potresti pure ottenere i valori, ma non è questo lo scopo del programma in questione, anche perchè l'approccio dei programmi di calcolo strutturale a elementi finiti è completamente diverso, dovendo raggiungere un compromesso tra costo computazionale e approssimazione da raggiungere. Io invece voglio i risultati ESATTI.
    Il costo computazionale sarà maggiore ma è il prezzo da pagare per raggiungere lo scopo.

    Tornando al problema principale, quello del linguagio da adottare, volevo chiederti:
    -conoscendo un po' il C, il Python è difficile da imparare? Il fatto che si possa programmare a oggetti un po' mi incasina...
    Conosci qualche progetto in Python che implementi il calcolo numerico (o meglio, simbolico?).
    Poi per l'interfaccia in gtk, anche qui esistono delle differenze in base al linguaggio con cui è stato scrito il "core" del programma?
    Chi usa il LISP lo ama, io mi sono spaventato solo a vedere quel mare di parentesi tonde... però deovrebbe permettere, in certi casi che con conosco, di ottenere con poche righe di codice quello che con altri linguaggi richiede più fatica.

    Cmq accantonando un attimo il discorso degli integrali, in generale ho bisogno di far lavorare il codice solo con le lettere, del tipo ( semplificando al massimo) che se ho a, b , due variabili che possono assumere qualsiasi valore, la loro somma sia a+b, il prodotto a*b, e così via. Detto così sembra stupido, per un essere umano è ovvio, ma come si fa ad implementare una stupidaggine del genere (soprattutto quando le cose si fanno meno stupide?). Quando ho l'espressione a+b, come la memorizzo (come stringa non potrei), come la tratto successivamente?
    Aiuto!

    Ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.