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

Matlab: Που είναι το λαθος;


giankar

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

Δημοσ.

Θέλω να κατασκευάσω την συνάρτηση:

 

y(x)=sin((xcosx)/(x^2+3x+2))

 

για τιμές του x από 1 μέχρι 3 με βήματα του 0.02.

 

 

Γράφω το εξής και δεν βρίσκω που κάνω λάθως:

 

>x=[1:0.02:3];
y(x)=sin((x*cos(x))*(x^2+3*x+1))

Δημοσ.
Θέλω να κατασκευάσω την συνάρτηση:

 

y(x)=sin((xcosx)/(x^2+3x+2))

 

για τιμές του x από 1 μέχρι 3 με βήματα του 0.02.

 

 

Γράφω το εξής και δεν βρίσκω που κάνω λάθως:

 

>x=[1:0.02:3];
y(x)=sin((x*cos(x))*(x^2+3*x+1))

 

x*cos(x)

Όπως το έχεις γράψει, το x είναι πίνακας και το cos(x) πάλι πίνακας. Πολλαπλασιάζεις πίνακες μεταξύ τους. Με το y(x) δεν ορίζεις συνάρτηση στο Matlab. Σημαίνει το x-οστό στοιχείο του πίνακα y, δε νομίζω πως είναι αυτό που θες να κάνεις

 

Έχεις δυο επιλογές, είτε θα πολλαπλασιάσεις στοιχείο προς στοιχείο τους πίνακες πχ

x.*cos(x), x.^2 κτλ

είτε θα το κάνεις με for loop

 

>x=[1:0.02:3];
for i = 1:size(x,2)
   y(i)=sin((x(i)*cos(x(i)))*(x(i)^2+3*x(i)+1))
end

To αποτέλεσμα είναι ο πίνακας y.

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

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

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