Pagina 1 di 2

linguaggio di programmazione sconosciuto..

Inviato: mar 29 ott 2013, 12:12
da deadcandance
salve!!

spero di non fare un uso improprio del forum, ma vorrei chiedere se qualcuno conosce questo linguaggio di programmazione e cosa fa questo programma che ho allegato in foto...

spero in un vostro aiuto...

grazie, ciao!!

EDIT: in pratica devo riscrivere questo codice in labview...

Re: linguaggio di programmazione sconosciuto..

Inviato: mar 29 ott 2013, 13:45
da d4z_c0nf
non conosco il linguaggio. Ho cercato con google una riga che mi pareva specifica e mi ha portato qui:
http://www.tek-tips.com/viewthread.cfm?qid=1707116

Sarà fortran?

Re: linguaggio di programmazione sconosciuto..

Inviato: mar 29 ott 2013, 14:14
da brg
Sembra qualche versione antidiluviana di fortran.

Re: linguaggio di programmazione sconosciuto..

Inviato: mar 29 ott 2013, 15:22
da deadcandance
bene....
che sia foltran è molto probabile, visto che si tratta di un programma scritto molto tempo fa dal mio professore...

tuttavia vorrei capire cosa fa questo codice perchè lui dice che calcola la matrice inversa, ma siccome esce una matrice simmetrica, l'inversa non è calcolabile almeno per quanto ne so io...per questo, se qualcuno capisce cosa fa, per favore me lo spieghi...

grazie per l'aiuto...
ciao!!

Re: linguaggio di programmazione sconosciuto..

Inviato: mar 29 ott 2013, 15:57
da d4z_c0nf
In che senso esce una matrice simmetrica? L'hai testato (magari hai l'eseguibile)? O l'hai capto? Perché se l'hai capito non capisco la richiesta di spiegazione...

p.s.
comunque fortran ;)

EDIT:
Perché dici ce non si può calcolare l'inversa? Cito wikipeda, e me ne scuso :D :

Re: linguaggio di programmazione sconosciuto..

Inviato: mar 29 ott 2013, 16:35
da deadcandance
la matrice esce e deve uscire simmetrica, e poi di questa matrice dovrei fare l'inversa...fin qui ci sono arrivato, scrivendo il programma con labview, ma poi non riesco a fare la matrice inversa...d'altro canto, da quanto ne so io, la matrice non è invertibile se il determinante è nullo, e il determinante di una matrice simmetrica, non è sempre nullo?

sinceramente, sul discorso delle matrici ne so poco, fatto sta che ho messo la funzione matrice inversa in labview e non mi da un risultato...ho provato poi a mettere quei stessi valori su questo sito
http://www.federicobonfigli.com/calcolo ... m_lhVQRS34
e mi dice che la matrice è singolare...ecco perchè ho bisogno di sapere cosa c'è scritto nel codice sopra postato...

Re: linguaggio di programmazione sconosciuto..

Inviato: mar 29 ott 2013, 17:19
da d4z_c0nf
Non mi pare che il determinante di una smmetrica sia nullo:
http://it.wikipedia.org/wiki/Matrice_simmetrica#Esempi
che determinante ha quella matrice?
Poi sinceramente non ho capito la frase
la matrice esce e deve uscire simmetrica
da dove esce e da dove deve uscire. Ma passo oltre.

Per il codice, che ti posso dire, non mi pare complicato. Hai qualche esperienza di programmazione? Sono praticamente solo dichiarazioni, assegnazioni, operazioni semplici come somma prodotto e divisione, cicli (spesso annidati, se vedi a destra del CONTINUE, che serve per chiudere il do[sarà na specie di for], specifica a che do si riferisce con l'etichetta del ciclo, che deve essere intero [ho letto]) e if .
Il primo pezzo non so se ti serve, visto che non mi pare venga chiamato dalla procedura (subroutine) che ti interessa, che se non ho capito male è quella denominata INVMAT, che calcolerebbe l'inversa.

p.s.
il do è

DO ETICHETTA_NUMERICA valore iniziale dell'indice, espressione di terminazione (nel tuo caso il valore della variabile NT ad esempio)
roba
CONTINUE
Non vedo, all'interno del ciclo, incrementi dell'indice, quindi assumo siano automatici a fine iterazione.

Re: linguaggio di programmazione sconosciuto..

Inviato: mar 29 ott 2013, 17:40
da brg
deadcandance ha scritto:la matrice non è invertibile se il determinante è nullo, e il determinante di una matrice simmetrica, non è sempre nullo?
No, la matrice identità è simmetrica (e pure ortogonale) ed è invertibile. Non c'è nessuna relazione tra le due cose, simmetria e invertibilità.

http://www1.mat.uniroma1.it/people/segh ... cicli.html

Si direbbe fortran 77.

Re: linguaggio di programmazione sconosciuto..

Inviato: mar 29 ott 2013, 17:59
da deadcandance
allora, cerco di spiegarmi meglio...
questo è un piccolo programma che serve a calcolare la temperatura finale di una piastra, in pratica, c'è una piastra ad una temperatura T e viene immersa in un fluido a temperatura Tf...una volta note tutte le caratteristiche del materiali e i coefficienti di scambio termico, esso tira fuori la temperatura finale dopo un certo tempo t.
la temperatura T viene calcolata mediante il prodotto di una matrice M^(-1) per un vettore V.
quindi prima di arrivare a fare questo prodotto, devo definire la matrice M, di cui devo ancora calcolare l'inversa M^(-1) (sostanzialmente è qui che sono bloccato), ed un vettore V.
gli elementi che vanno a finire all'interno di questa matrice M sono tali che la rendono simmetrica, e senza scendere in dettagli, questa matrice per ovvie ragioni sarà sempre simmetrica (a meno che la piastra non sia costituita da diversi materiali, ma questo è un altro discorso che esula ai fini dell'esercitazione)....

io sto scrivendo questo programma con labview e sono arrivato a definire la matrice M, ma ora ne devo fare l'inversa e per farlo ho messo un blocchetto matrice inversa, ma non mi da nessun risultato, quindi c'è evidentemente qualcosa che non va...solo che non riesco a capire cosa, e per questo motivo volevo sapere cosa c'è scritto in quel codice, cosi eventualmente provo a fare tutti i passaggi per definire questa matrice inversa...tutto qui...

eventualmente voi sapreste vedere cosa è sbagliato in labview?

EDIT: non ho particolare esperienza in programmazione, solo qualche nozione basilare su java e c++

Re: linguaggio di programmazione sconosciuto..

Inviato: mar 29 ott 2013, 18:31
da brg
Quindi, se ho capito bene, quel codice non ti serve a nulla, perché sai già quel che deve fare, tuttavia provando a fare quella stessa cosa in Labview non succede niente e allora cerchi di capire se c'è qualche trucco in quelle righe di fortran?

Prova a postare lo schema Labview, anche se ho solo conoscenze teoriche del programma (visto usare, visti corsi sul suo utilizzo, ma mai usato).

Re: linguaggio di programmazione sconosciuto..

Inviato: mar 29 ott 2013, 18:35
da d4z_c0nf
Labview non me lo ricordo proprio, l'ho usato una mezza volta, ma se prendi il blocco della matrice inversa e gli dai come input una matrice e in cascata ci metti un blocco per memorizzare/visualizzare il risultato non credo proprio tu possa farlo in maniera errata. Forse il problema è la matrice che hai detto risultare singolare secondo quel sito? Prova a fare la matrice inversa di una matrice scema 3x3.

Riguardo il codice ok, ma una volta viste le cose fondamentali: come si fa un for, quali sono le dichiarazioni, il resto delle due subroutine è roba semplice. Io non conosco fortran, ti posso pure a occhio (ma sono talmente semplici che ti potrei pure dire: con un certo grado di sicurezza) tradurre il tutto in pseudo-codice, ma tu lo sapresti interpretare?

Re: linguaggio di programmazione sconosciuto..

Inviato: mar 29 ott 2013, 19:37
da deadcandance
brg ha scritto:Quindi, se ho capito bene, quel codice non ti serve a nulla, perché sai già quel che deve fare, tuttavia provando a fare quella stessa cosa in Labview non succede niente e allora cerchi di capire se c'è qualche trucco in quelle righe di fortran?
esatto...magari seguendo la sua procedura arrivo ugualmente ad un risultato...per quanto ne so quella potrebbe anche non essere un metodo per il calcolo della matrice inversa...


comunque, ho fatto qualche verifica semplice, e la funzione matrice inversa su labview dovrebbe funzionare correttamente... a dire il vero non mi aspettavo il contrario...
probabilmente i valori nella matrice non vanno bene, ma non riesco a trovare eventuali errori...

in ogni caso, se mi riesci a dire che cosa fa in quel codice in termini più comprensibili per me faresti cosa gradita...credo di riuscire a interpretarlo perhè comunque qualcosa di c++ e java la conosco magari di tanto in tanto mettimi un commento, ed in caso proprio non riesco a capire chiedo nuovamente...al limite descrivimi cosa fa!! :D

grazie infinite per l'aiuto che mi state dando

ps, ma la matrice inversa può essere calcolata solo per matrici quadrate?per quelle rettangolari si può calcolare pure?inoltre se i 4 angoli hanno valori uguali la matrice inversa esiste?

Re: linguaggio di programmazione sconosciuto..

Inviato: mar 29 ott 2013, 20:19
da nico giraldi
E' fortran77.

Non proprio fancy ma come importanza storica è IL linguaggio di programmazione scientifica.
Ed è veramente ridotto all'osso, se trovi un tutorial in poco tempo lo conosci.

http://www.stanford.edu/class/me200c/tutorial_77/

Re: linguaggio di programmazione sconosciuto..

Inviato: mar 29 ott 2013, 21:40
da deadcandance
da quello che riesco a capire, fino a 200 continue sta creando una matrice identità, ma poi il resto non lo riesco a seguire...

Re: linguaggio di programmazione sconosciuto..

Inviato: mar 29 ott 2013, 21:51
da brg
deadcandance ha scritto:ma la matrice inversa può essere calcolata solo per matrici quadrate?per quelle rettangolari si può calcolare pure?inoltre se i 4 angoli hanno valori uguali la matrice inversa esiste?
L'inversa è definita solo per matrici quadrate, per quelle rettangolari puoi fare la pseudo-inversa, che però non è unica. I quattro angoli con valori uguali non danno problemi a meno che non sia una 2x2, dove giuocoforza ottieni una matrice singolare.

Mi pare che sia l'algoritmo di fattorizzazione di Doolittle per il calcolo dell'inversa, qui c'è la versione per fortran 90: http://ww2.odu.edu/~agodunov/computing/ ... nverse.f90 .