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

Matlab και Heaviside


CtrlFreak

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

Δημοσ.

Καλησπέρα, ασχολούμαι με matlab και προσπαθώ να γράψω κάποιους μετασχηματισμούς είτε laplace είτε fourier. Αρχικά έχω μια συνάρτηση F(t):

 

------ |1, 0<t<3

F(t)= |

------ |0, 3<=t<6

 

το παραπάνω λύνεται ως εξής:

 

>syms t s
f=sym('Heaviside(t)*Heaviside(3-t)');  
F=laplace(f,t,s)

 

Αυτό που δεν μπορώ να καταλάβω πλήρως είναι πως βρίσκει τις τιμές μέσα στο Heaviside(t) και Heaviside(3-t). Ο καθηγητής μας έχει δώσει κάποιους κανόνες αλλά

χωρίς καθόλου ανάλυση και στο βιβλίο της σχολής δεν υπάρχει η Heaviside.

 

Επιπλέον κάποια παραδείγματα που κάναμε ήταν τα εξής:

 

------ |1, |t|<1

F(t)= |

------ |0, |t|>1

 

>f=sym('Heaviside(t+1)*Heaviside(1-t)');  

 

και

 

------ |-te-t, t>=0

F(t)= |

------ |0, t<0

 

>f=sym('-texp(-t)*Heaviside(t)');  

Δημοσ.

τι ενοεις πως βρισκει τις τιμες; κανει το ολοκληρωμα. υπαρχουν διαφοροι αλγοριθμοι γι αυτο. η heavyside ειναι η f(t)=1 για t>=0 και 0 για t<0.

Δημοσ.

η heavyside(t) ειναι 1 για t>=0 η Heavyside(3-t)ειναι 1 για t<=3 (θετεις 3-t>=0)αρα το γινομενο τους ειναι 1 για το διαστημα [0,3] και μηδεν οπουδηποτε αλλου

Δημοσ.

Τελευταία ερώτηση, έχω την παρακάτω συνάρτηση:

 

 

------ |-te-t, t>=0

F(t)= |

------ |0, t<0

 

την οποία λύνω ως εξής:

 

> syms w t;
f=sym('-t*exp(-t)*Heaviside(t)') 
F=fourier(f,t,w)
g=ifourier(F,w,t) 

Για να εμφανίσω γράφημα κάνω το εξής:
t=-4:0.01:4;
w=-6*pi:pi/128:6*pi;
f1=(abs(t)>=0);
f=-t.*exp(-t).*f1;
F=-1./(1+i.*w).^2;

subplot(2,1,1)
plot(t,f);
subplot(2,1,2)
plot(w,F);

 

Ερώτηση, από που βγαίνει αυτή F=-1./(1+i.*w).^2; η συνάρτηση?? Δεν μου έχει βγει από τα προηγούμενα.

Δημοσ.

πρωτον ο κωδικας σου ειναι λαθος.

 

θελει να γραψεις σκετο fourier (f)

 

το οποιο κανει

F=fourier(f)

 

F =

 

-1/(1+i*w)^2

 

copy paste apo to matlab

 

κσι μετα οριζεις τα διαστηματα/συνολα του χρονου και της συχνοτητας για να κανεις τις γραφικες παραστασεις τα οποια ετσι οπως τα εχεις ορισει δεν ειναι ισου μεγεθους.

Δημοσ.

Έχω την εντύπωση πως είτε F=fourier(f,t,w) γράψεις είτε F=fourier(f) είναι το ίδιο. Εγώ παίρνω με αυτήν την εντολή το παρακάτω και δεν βγάζω άκρη:

 

>>> F=fourier(f)

F =

-transform::fourier(t*exp(-t)*Heaviside(t), t, -w)

>> F=fourier(f,t,w)

F =

-transform::fourier(t*exp(-t)*Heaviside(t), t, -w)

 

Παίζει η έκδοση που χρησιμοποιώ η 7.10 που είναι διαφορετική από αυτήν της σχολής να μου δίνει διαφορετικά αποτελέσματα.

Δημοσ.

Μα ο κώδικας που έχω πάνω είναι γραμμένος και με τις 2 μορφές και μου δίνει το ίδιο αποτέλεσμα. Αντίστοιχα αν θέλω να κάνω αντίστροφο μετασχηματισμό θα γράψω:

 

F=ifourier(f,w,t) <---- t και w αντίστροφα.

 

όλα μου τα παραδείγματα έτσι δουλεύουν. Δηλαδή εσύ γράφεις το παραπάνω και παίρνεις το -1/(1+i*w)^2 ?? <_<

Δημοσ.

Μα ο κώδικας που έχω πάνω είναι γραμμένος και με τις 2 μορφές και μου δίνει το ίδιο αποτέλεσμα. Αντίστοιχα αν θέλω να κάνω αντίστροφο μετασχηματισμό θα γράψω:

 

F=ifourier(f,w,t) <---- t και w αντίστροφα.

 

όλα μου τα παραδείγματα έτσι δουλεύουν. Δηλαδή εσύ γράφεις το παραπάνω και παίρνεις το -1/(1+i*w)^2 ?? <_<

 

ναι σου εκανα copy paste αυτο ακριβως που μου γραφει στο command window δεν θα κατσω να το υπολογισω και με το χερι για να το επαληθευσω.

Δημοσ.

Ντάξει μην κάτσεις!! Ευχαριστώ για την βοήθεια!! Και αν περάσω θα σου ανάψω λαμπάδα ίσα με το σκύλο που έχεις στο avatar!!!!! :mrgreen:

Δημοσ.

ναι σου εκανα copy paste αυτο ακριβως που μου γραφει στο command window δεν θα κατσω να το υπολογισω και με το χερι για να το επαληθευσω.

 

Τοσο ειναι οντως, ειναι γνωστη συναρτηση αυτη κ υπαρχει ο μ/σμος της ετοιμος σε βιβλια κλπ. Εχω λιωσει στον Φουριερ αυτο το 6μηνο

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

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

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