THMMY.gr

Ηλεκτρονικοί Υπολογιστές και Τεχνικά Θέματα => Matlab, Mathematica, Octave, EngLab κλπ => Topic started by: zlatalex on June 27, 2007, 17:47:02 pm



Title: Απεικόνιση συνάρτησης δύο μεταβλητών στο Matlab
Post by: zlatalex on June 27, 2007, 17:47:02 pm
Εισαγωγικά να πω πως εύχομαι τα χειρότερα στους δημιουργούς του Matlab και στους απογόνους τους για την ατελείωτες χαμένες ώρες που μου έχει κοστίσει η ανικανότητά τους να δημιουργήσουν ένα αξιόπιστο και συνεπές εργαλείο για μηχανικούς.

Περνώντας στο ζμι της υπόθεσης, έχω μια συνάρτηση δύο μεταβλητών. Οποιαδήποτε, δεν έχει σημασία.
Και θέλω να την κάνω τρισδιάστατη αναπαράσταση (mesh δηλαδή)

ΔΕΝ ΑΡΚΕΙ ΝΑ ΕΧΩ ΤΡΕΙΣ ΠΙΝΑΚΕΣ Χ(1*N) Y(1*M) ΚΑΙ Fxy(N*M) για να κάνω τη δουλειά μου;;;;;;;;;

Γράφω mesh(X,Y,Fxy) και δεν μου βγάζει ΤΙΠΟΤΑ. Το καταλαβαίνεται αυτό; ΤΙΠΟΤΑ!

Τι debug να κάνεις στο ΤΙΠΟΤΑ;;;;

Νιώθω ανήμπορος. Και χάνω πολύτιμο χρόνο διαβάσματος.

Επίσης απ την στιγμή που έχω φτιάξει τον πίνακα της συνάρτησης Fxy(N*M) που έχει τις τιμές της συνάρτησης δεν θα πρεπε κάνωντας δεξί κλικ πάνω της και πατώντας την επιλογή 3-D graph-->mesh να μου τηνε δείχνει σε τρισδιάστατο γράφημα;

Εντωμεταξύ η πλάκα είναι πως μου την δείχνει αλλά μόνο για πολύ μικρά Ν και Μ δηλαδή κακή διαμέριση του πεδίου ορισμού. Κοντολογίς δεν έχει καμμιά συνέπεια στην συμπεριφορά του.

Ξέρει κανείς οτιδήποτε που θα μπορούσε να με βοηθήσει;;;;;


Title: Re: Απεικόνιση συνάρτησης δύο μεταβλητών στο Matlab
Post by: Netgull on June 27, 2007, 18:16:51 pm
http://www.mathworks.com/access/helpdesk/help/techdoc/index.html?/access/helpdesk/help/techdoc/ref/mesh.html (http://www.mathworks.com/access/helpdesk/help/techdoc/index.html?/access/helpdesk/help/techdoc/ref/mesh.html)

Δοκίμασε [Χ,Υ]=meshgrid(-3:0.01:3) όπου -3,3 τα όριά σου και μετά mesh(X,Y,Z).
Προφανώς δεν ορίζεις καλά το πλέγμα.


Title: Re: Απεικόνιση συνάρτησης δύο μεταβλητών στο Matlab
Post by: thanasiskehagias on June 27, 2007, 20:45:11 pm
ezsurf('sin(x*y)')

Εισαγωγικά να πω πως εύχομαι τα χειρότερα στους δημιουργούς του Matlab και στους απογόνους τους για την ατελείωτες χαμένες ώρες που μου έχει κοστίσει η ανικανότητά τους να δημιουργήσουν ένα αξιόπιστο και συνεπές εργαλείο για μηχανικούς.

και λίγα τα λόγια για την Matlab ΠΑΡΑΚΑΛΩ!


Title: Re: Απεικόνιση συνάρτησης δύο μεταβλητών στο Matlab
Post by: Krono on June 27, 2007, 21:22:44 pm
function Whatever()
x=[-10:0.1:-1];      % Πρόκειται για τα όρια και τη λεπτομέρεια που επιζητάς.
y=x;
[X,Y]=meshgrid(x,y);
F=(X-Y).^2;   %  <-Εδώ βάζεις τη δική σου συνάρτηση.
surfc(X,Y,F);

Το παραπάνω το βάζεις σε ένα M-file.
Υ.Γ. Δεν φταίνε οι δημιουργοί του Matlab που εμείς δεν ξέρουμε να το χρησιμοποιούμε! Είναι τεχνολογικό θαύμα που υπάρχει αυτό το λογισμικό, μιας και το μόνο που δεν μπορεί να κάνει για τον μηχανικό είναι καφέ, όλα τα άλλα μπορεί και τα κάνει.


Title: Re: Απεικόνιση συνάρτησης δύο μεταβλητών στο Matlab
Post by: zlatalex on June 27, 2007, 22:00:33 pm
Ναι καλά

Τον ολόσωστο κώδικά μου τον πήγα σε μια φίλη μου και έτσι απλά δούλεψε

Το δικό μου ματλαμπ απλώς βαρούσε κόλλημα με τα πυκνά γκρίντ

Αλλά μέχρι να κάνεις debug σε κάτι για το οποίο δεν φταις εσύ αλλά το αναξιόπιστο λογισμικό που χρησιμοποιείς χάνεις ώρες και ώρες απ τον πολύτιμο χρόνο σου

Μην υπερασπίζεστε λοιπόν το ματλαμπ, μπορεί εσείς να είστε το επόμενο θύμα του!!



Υ.Γ. Το ότι είναι το πληρέστερο και δημοφιλέστερο πρόγραμμα για μηχανικούς δεν μου λέει τίποτα. Να το κάνουν καλύτερο!


Title: Re: Απεικόνιση συνάρτησης δύο μεταβλητών στο Matlab
Post by: zlatalex on June 27, 2007, 22:08:50 pm
Παρεμπιπτόντως ευχαριστώ πολύ για την βοήθεια! :)


Ήμουν απλώς τόσο συγχισμένος ακόμη με το κωλομάτλαμπ που ασχολήθηκα μόνο με το να αντικρούσω την υπερασπιστική σας γραμμή :D