Προς το περιεχόμενο

matlab


piti

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπερα παιδια, πρωτη φορα στελνω μηνυμα στην κοινοτητα του ινσομνια, γιατι χρειαζομαι τη βοηθεια σας.Στα πλαισια της διπλωματικης μου εργασιας[μεταπτυχιακο ασοε]

χρειαζομαι να λυσω ενα γραμμικο συστημα ΑΧ=Β μεσω matlab, το προβλημα ειναι οτι μεσα στον πινακα Β θελω να βαλω και μια παραμετρο r η οποια ειναι αγνωστη και δεν ξερω πως αντιμετωπιζεται αυτο μεσω matlab.Ξερετε ποιος μπορει να με βοηθησει?

Δημοσ.

Το Α το Χ και το Β τα έχεις δεδομένα ε; Ποια είναι ακριβώς η εξίσωση;

Για να δώσεις διάφορες τιμές στο ρ πρέπει να το κάνεις διάνυσμα και να δουλέψεις νομίζω με πίνακες.

Δημοσ.

Στην εξισωση ΑΧ=Β τα Α,Β ειναι πινακες και το ζητουμενο ειναι το διανυσμα Χ που εχω συμπεριλαβει τους αγνωστους w1,w2,w3,... , το θεμα ειναι οτι στο διανυσμα Β ειναι για

[0,0,0,r,1] και το r δεν μου το αναγνωριζει πρεπει να ορισθει?Το r ειναι αγνωστο.

Δημοσ.

Μπορείς να ορίσεις τους πίνακες που θέλεις Α και Β πχ

 

>A=[3,2;1,-1]
B=[5;0]

 

Μετά βρες τον αντίστροφο πίνακα του Α (τον ονομάζω C)

 

>C=inv(A)

 

Και μετά πολλαπλασίασε C με Β και βάλτο στο Χ

 

>X=C*B

 

Καλό θα ήταν να ξεσκόνιζες λίγο την γραμμική σου άλγεβρα... :P

Δημοσ.

Το εχω λυσει φιλε μου το συστημα, μηπως ομως ξερεις πως ελαχιστοποιουμε μια συναρτηση που εχω δημιουργησει στο matlab?

Δημοσ.

Αυτό που ρωτάς είναι πολύ γενικό.

 

Ρίξε μια ματιά εδώ και δες τι ακριβώς χρειάζεσαι να κάνεις.

 

http://www.mathworks.com/access/helpdesk/help/techdoc/index.html?/access/helpdesk/help/techdoc/math/f2-14970.html&http://www.google.gr/search?q=matlab+function+minimization&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-GB:official&client=firefox-a

 

:-)

Δημοσ.

Σορρυ για την ασαφεια, εννοουσα ελαχιστοποιηση μισ συναρτησης, μιας μεταβλητης,ως προς τη μεταβλητη αυτη.

Δημοσ.

>> r=sym('r')

 

r =

 

r

 

>> w1=4/3-r/2

 

w1 =

 

4/3 - r/2

 

>> w2=1/3

 

w2 =

 

0.3333

 

>> w3=r/2-2/3

 

w3 =

 

r/2 - 2/3

 

>> pwd

 

ans =

 

C:\Documents and Settings\Administrator\Τα έγγραφά μου\MATLAB

 

>> s=my_function(w1,w2,w3)

??? Undefined function or method 'hypot' for input arguments of type 'sym'.

 

Error in ==> my_function at 2

S=hypot(w1,w2,w3);

 

 

 

 

 

Σου παραθετω ενα παραδειγμα που προσπαθω να λυσω και δεν καταλαβαινω το λαθος μου,γιατι δεν δουλευει?Σου στελνω και το editor για το m-file που δημιουργω.Αν μπορεις να βοηθησεις Dr.Fuzzy ή οποιοσδηποτε γνωριζει περι του θεματος θα το εκτιμουσα!

 

---------- Το μήνυμα προστέθηκε στις 23:08 ----------

 

function [ S ] = my_function( w1,w2,w3 )

S=hypot(w1,w2,w3);

end

 

 

 

 

Ετσι το γραφω στο editor και το αποθηκευω ως m_file και στον τρεχων καταλογο.

Δημοσ.

Βασικά χρησιμοποίησε code tags όταν κάνεις post κώδικα διότι μου έβγαλες τα μάτια να καταλάβω τι γράφεις.

 

Ο κώδικας σου είναι αυτός:

 

> 
r=sym('r');
w1=4/3-r/2;
w2=1/3;
w3=r/2 - 2/3;
hypot(w1,w2,w3);

 

και σου δίνει error: Undefined function or method 'hypot' for input arguments of type 'sym'

 

που είναι απόλυτα φυσιολογικό και με απλά λόγια σου λέει ότι δεν μπορεί να υπολογίσει την συνάρτηση hypot όπου ένα ή περισσότερα από τα ορίσματα της είναι άγνωστοι! Δηλαδή τα w1 και w2 που εξαρτώνται από την μεταβλητή r.

 

H symbolic variable r που έχεις ορίσει έχει νόημα για παράδειγμα αν πεις:

 

>> r*r/r+2*r

 

και θα σου επιστρέψει

 

3*r

 

όχι όπως το χρησιμοποιείς και όχι σαν όρισμα σε συνάρτηση (το r, είναι άγνωστος!).

 

Εξήγησε μου τι ακριβώς θες να κάνεις γιατί με έχεις μπερδέψει!

 

:-)

Δημοσ.

Απο τη λυση του γραμμικου συστηματος ΑΧ=Β, που λεγαμε και προχθες, βρισκω τα w1,w2,...,w20 στη συνεχεια μεσω της συναρτησης hypot θελω να υπολογισω την τετραγωνικη ριζα του αθροισματος τετραγωνων αυτων των w1,... η οποια ειναι συναρτηση του r.Τελος θελω να ελαχιστοποιησω αυτη τη συναρτηση ως προς r.Οπως και στο παραδειγμα που σου εστειλα εμω οριζω τη συναρτηση hypot και την αποθηκευω οπως πρεπει μου βγαζει καποιο λαθος, μαλλον συντακτικο στο S=hypot(w1,w2,w3,...w20).

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...