Α.Τ.Ε.Ι. Θεσσαλονίκης Σ.Τ.ΕΦ. Τμήμα Mηχανολόγων Οχημάτων Εργαστήριο Προσομείωσης Φυσικών Διεργασιών-Matlab Τκήκα Δεπηέξαο 15:00-17:00 Αθανάζιορ Ζιάκορ Α/Μ 07/0003
Κώδικας Εργαστήριο Προσομείωσης Φυσικώμ Διεργασιώμ Matlab Θέμα 1ο Εκθώνηζη θέμαηορ : Σαο δίλεηαη ε ζπλάξηεζε : f(x) = 3*(x.^2)-(2*x)*(log(1+x)) a. Να ηε ζρεδηάζεηε ζην δηάζηεκα [0,10]. b. Να ππνινγίζεηε ην νινθιήξσκά ηεο ζε δηαζηήκαηα [0,θ], θ = 1,2,3,, 100. Κάζε απνηέιεζκα λα απνζεθεύεηαη ζε πίλαθα Α. Σην ηέινο ηνπ θώδηθα λα ζρεδηάζεηε ηε κεηαβνιή ηεο ηηκήο ηνπ νινθιεξώκαηνο σο πξνο θ. Η γξαθηθή παξάζηαζε ζα πξέπεη λα είλαη πιήξεο (βαζκνλόκεζε θαη κεγέζε αμόλσλ, ρξώκα θαη ζύκβνιν γξακκήο κε θώδηθα). Λύζη θέμαηορ : a. Ο θώδηθαο γξάθεηαη ζηνλ mfile Editor ζώλνπκε ην αξρείν κε ηελ νλνκαζία askisienaa θαη έπεηηα ην ηξέρνπκε κε ην RUN, βάδνπκε ηνλ άμνλα Υ εώο 300 γηα λα θαίλεηαη όζν γίλεηαη θαιύηεξα ε θακπύιε. Eντολές 1 clc A/A 2 x = 0:10; 3 z= 3*x.^2-2*log(1+x); 4 plot(x,z, 'k-*'); 5 axis([0 10 0 300]); 6 xlabel('άμνλαο Φ'); 7 ylabel('άμνλαο Υ'); 8 title('σπλάξηεζε f(x) ζην δηάζηεκα 0 εώο 10 ') Πίνακαρ 1.1 Α.Τ.Ε.Ι. Θεσσαλομίκης Τμήμα Μηχαμολόγωμ Οχημάτωμ Page 1
Καη έρνπκε ην παξαθάησ δηάγξακκα : Γράφημα 1.1 Α.Τ.Ε.Ι. Θεσσαλομίκης Τμήμα Μηχαμολόγωμ Οχημάτωμ Page 2
Κώδικας Εργαστήριο Προσομείωσης Φυσικώμ Διεργασιώμ Matlab b. Γηα θάλνπκε ην δεύηεξν εξώηεκα ζα δειώζνπκε ηελ ζπλάξηεζε κέζσ ησλ anonymoys functions γηα λα κπνξέζνπκε λα πάξνπκε ην δηάγξακκα πνπ ζέινπκε, πάιη ζα γξάςνπκε ηνλ θώδηθα ζηνλ mfile Editor ζώδνπκε ην πξόγξακκα ώο askisienab θαη ην ηξέρνπκε κε ην RUN. Εντολές 1 clc Α/Α 2 f = @(x) 3*x.^2-2*log(1+x); 3 for k=0:100 4 C(k+1)=quad(f,0,k); 5 end 6 plot(0:100, C, 'm--*'); 7 axis([0 100 C(1) C(101)]); 8 xlabel('άμνλαο Φ'); 9 ylabel('άμνλαο Υ'); 10 title('mεηαβνιή ηεο ηηκήο ηνπ νινθιεξώκαηνο σο πξνο θ'); Πίνακαρ 1.2 Α.Τ.Ε.Ι. Θεσσαλομίκης Τμήμα Μηχαμολόγωμ Οχημάτωμ Page 3
Σαλ απνηέιεζκα έρνπκε ηνλ παξαθάησ δηάγξακκα, κε ρξώκα γξακκήο Magenta, δηαθεθνκέλε γξακκή θαη κε ζύκβνιν ην *. Γράφημα 1.2 Α.Τ.Ε.Ι. Θεσσαλομίκης Τμήμα Μηχαμολόγωμ Οχημάτωμ Page 4
Κώδικας Εργαστήριο Προσομείωσης Φυσικώμ Διεργασιώμ Matlab Θέμα 2 ο Eκθώνηζη θέμαηορ : Σαο δίλεηε ε ζπλάξηεζε f(x,y) = sin(2πχ)*cos(2πy)+1 Να δεκηνπξγήζεηε ην παξαθάησ γξάθεκα κε θώδηθα. Λύζη θέμαηορ : Εντολές 1 clc 2 %Δηάγξακκα 2εο άζθεζεο 3 [x y] = meshgrid(-1:0.01:1, -1:0.01:1); 4 z = sin(2*pi*x).*cos(2*pi*y)+1; 5 surf(x,y,z); Α/Α Πίνακας 1.3 Γξάθνπκε ηνλ θώδηθα ζηνλ mfile Editor, απνζεθεύνπκε ην πξόγξακκα κε ην όλνκα labmatsecond, ηξέρνπκε ην πξόγξακκα θαη έρνπκε ην παξαθάησ γξάθεκα 1.3. Α.Τ.Ε.Ι. Θεσσαλομίκης Τμήμα Μηχαμολόγωμ Οχημάτωμ Page 5
Θέμα 3 ο Γράφημα 1.3 Eκθώνηζη θέμαηορ : Να πεξηγξάςεηε ηελ εληνιή από ηνλ παξαθάησ πίλαθα 1.4 πνπ αληηζηνηρεί ζηνλ αξηζκό floor((o+e)/2), όπνπ Ο: αξηζκόο πνπ αληηζηνηρεί ζην όλνκά ζαο θαη Ε: αξηζκόο πνπ αληηζηνηρεί ζην επίζεηό ζαο. Η πεξηγξαθή ζαο ζα πξέπεη λα πεξηιακβάλεη ην ηη θάλεη ε εληνιή, ηε ζύληαμή ηεο (ή πεξηζζόηεξεο αλ ππάξρνπλ κε ηε ζρεηηθή πεξηγξαθή ησλ νξηζκάησλ) θαη 1-2 παξαδείγκαηα. Πίνακας 1.4 Α.Τ.Ε.Ι. Θεσσαλομίκης Τμήμα Μηχαμολόγωμ Οχημάτωμ Page 6
Λύζη θέμαηορ : Αθνύ εθηειέζακε ηελ εληνιή floor((1+6)/2) ζην Command Window, βξήθα ην λνύκεξν πνπ αληηζηηρεί ζύκθσλα κε ηνλ αξηζκό ηνπ νλόκαηνο θαη ηνπ επσλύκνπ κνπ θαη απηόο είλαη ην 3. Η εληνιή είλαη ε meshgrid, αλαδήηεζα ηελ εληνιή ζην help section ηνπ Matlab θαη βξήθα πνηα είλαη ε ιεηηνπξγία ηεο αιιά θαη παξαδείγκαηα γηα ηελ ρξεζηκνπνηήζε ηεο ζε άιιεο θαηαζηάζεηο. Πεπιγπαθή : Η εληνιή meshgrid δεκηνπξγεί matrices πνπ νξίδνπλ ην πιέγκα ησλ γξαθεκάησλ, ε εληνιή meshgrid κπνξεί λα ρξεζηκνπνηεζεί κόλν γηα θαξηεζηαλό ρώξν δύν δηαζηάζεσλ ή ηξηώλ δηαζηάζεσλ (2d,3d). Παίξλεη νξίζκαηα δύν x,y ή ηξία x,y,z θαη επηζηξέθεη δύν X,Y γηα ηα δύν θαη ηξία X,Y,Z, αληίζηνηρα. Οη γξακκέο ηνπ Χ είλαη αληίγξαθα ηνπ ρ θαη νη ζηhιεο ηνπ Υ είλαη αληίγξαθα ηνπ Υ. Σύνηαξη ενηολήρ : Παπάδειγμαηα : [X,Y] = meshgrid(xgv,ygv) [X,Y,Z] = meshgrid(xgv,ygv,zgv) [X,Y] = meshgrid(gv) [X,Y,Z] = meshgrid(gv) 1. [X,Y] = meshgrid(1:3,10:14) X = 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 Y = 10 10 10 11 11 11 12 12 12 13 13 13 14 14 14 Α.Τ.Ε.Ι. Θεσσαλομίκης Τμήμα Μηχαμολόγωμ Οχημάτωμ Page 7
Κώδικας Εργαστήριο Προσομείωσης Φυσικώμ Διεργασιώμ Matlab 2. Πιεθηξνινγνύκε ηνλ θώδηθα ζηνλ mfile Editor ώο έρεη, πξώηα νξίδνπκε ην meshgrid γηα λα θαηαζθεπάζνπκε έλα πιέγκα ζην νξζνγώλεην [-2,2]*[-4,3] κε βήκα 0,1 ζηνλ άμνλα ησλ ρ θαη 0,2 ζηνλ άμνλα ησλ y, απνζεθεύνληαηο ηηο ζπληεηαγκέλεο ησλ θόκβσλ ζηα δηαλύζκαηα ρ θαη y. Σηελ ζπλέρεηα παίξλνπκε ηηο ηηκέο ηνπ z= f(x,y) ηηο νπνίεο κπνξνύκε λα ρξεζηκνπνηήζνπκε γηα λα πάξνπκε ηελ γξαθηθή παξάζηαζε ηεο ζπλάξηεζεο. Σώδνπκε ην πξόγξακκα ώο labmatlabthird θαη παηάκε RUN. Εντολές 1 clc Α/Α 2 [x,y] = meshgrid(-2:0.1:2, -4:0.2:3); 3 z = x.* exp(-x.^2 - y.^2); 4 surf(x,y,z) Πίνακας 1.5 Γράφημα 1.4 Α.Τ.Ε.Ι. Θεσσαλομίκης Τμήμα Μηχαμολόγωμ Οχημάτωμ Page 8
Θέμα 4 ο Εκθώνηζη θέμαηορ : Να γξάςεηε θώδηθα ρξεζηκνπνηώληαο εληνιέο ειέγρνπ ξνήο κε βάζε ηνλ νπνίν : a. Να δεκηνπξγείηε πίλαθα Α κε ηνπο βαζκνύο ζαο ζε 10 καζήκαηα. b. Να ππνινγίδεηε ην κέζν όξν ησλ βαζκώλ αθνύ πξώηα ειέγμεηε όηη θάζε βαζκόο είλαη κεγαιύηεξνο από ην 0 θαη κηθξόηεξνο από ην 10. c. Να εμάγεηε έλαλ ραξαθηεξηζκό κε βάζε ηνλ παξαθάησ πίλαθα d. Να δίλεηε έλαλ αξηζκό κεηαμύ 0 θαη 10 κε ρξήζε ηεο εληνιήο input θαη λα ππνινγίζεηε από πόζνπο αξηζκνύο είλαη κεγαιύηεξνο, από πόζνπο είλαη κηθξόηεξνο θαη κε πόζνπο είλαη ίζνο Πίνακαρ 1.6 Λύζη θέμαηορ : Πξώηα ζα γξάςνπκε ηνλ θώδηθα ζηνλ mfile Editor ζα ην ζώζνπκε ώο askisitetarti θαη έπεηηα ζα ην εθηειέζνπκε παηώληαο Run. Α.Τ.Ε.Ι. Θεσσαλομίκης Τμήμα Μηχαμολόγωμ Οχημάτωμ Page 9
Κώδικαρ 1 ν Μέξνο 2 ν Μέξνο clc Vatmhoi = [1,8.5,3,4,5,5,6,8,9.5,6]; sum = 0; for k=1:10 if Vatmhoi(k)>=0 && Vatmhoi(k)<=10 sum = Vatmhoi(k)+sum; end end Average = sum/10; if Average >= 0 && Average < 5 disp('απνηπρία-'); elseif Average < 6.5 disp('καιά!'); elseif Average < 8.5 disp('πνιύ Καιά!!'); elseif Average <= 10 disp('άξηζηα!!!'); end v = input('εηζαγσγή ελόο αξηζκνύ=> '); Smaller = 0; Equal = 0; Bigger = 0; for k = 1:10 if v < Vatmhoi(k) Smaller = Smaller + 1; elseif v > Vatmhoi(k) Bigger = Bigger +1; else Equal = Equal + 1; end end disp(sprintf('ο αξηζκόο ν νπνηόο πιεθηξνινγήζαηε είλαη κηθξόηεξνο απν %x αξηζκνύο!!!',smaller)); disp(sprintf('o αξηζκόο ν νπνηόο πιεθηξνινγήζαηε είλαη κεγαιύηεξνο απν %x αξηζκνύο!!!',bigger)); disp(sprintf('o αξηζκόο ν νπνηόο πιεθηξνινγήζαηε είλαη ίζνο απν %x αξηζκνύο!!!',equal)); Έρνληαο βάιεη ηνπο βαζκνύο καο ζηνλ πίλαθα Vathmoi ηξέρνληαο ην πξόγξακκα ζα δνύκε όηη καο εκθαλίδεη ην εμήο : Καλά! Έπεηηα εηζαγνπκε έλαλ αξηζκό ζηελ πξνθεηκέλε πεξίπησζε ην 5 θαη καο δείρλεη από πόζνπο αξηζκνύο είλαη κεγαιύηεξνο, από πόζνπο είλαη κηθξόηεξνο θαη κε πόζνπο είλαη ίζνο. Ειζαγωγή ενόρ απιθμού=> 5 Ο απιθμόρ ο οποιόρ πληκηπολογήζαηε είναι μικπόηεπορ απο 5 απιθμούρ!!! O απιθμόρ ο οποιόρ πληκηπολογήζαηε είναι μεγαλύηεπορ απο 3 απιθμούρ!!! O απιθμόρ ο οποιόρ πληκηπολογήζαηε είναι ίζορ απο 2 απιθμούρ!!! Α.Τ.Ε.Ι. Θεσσαλομίκης Τμήμα Μηχαμολόγωμ Οχημάτωμ Page 10
Βιβλιογραφία Matlab για επιςτήμονεσ και μηχανικούσ Χατζίκοσ. Σημειώςεισ ςεναριακών διαλέξεων προγραμματιςμού Η/Υ ςε περιβάλον Matlab Δρ. Γιάννησ Μαρινάκησ. The finite element using Matlab Young W. Kwon. http://www.mathworks.com/ Χρήςτοσ Ξενοφώντοσ Τμήμα Μαθηματικών και Στατιςτικήσ Πανεπιςτήμιο Κύπρου. Α.Τ.Ε.Ι. Θεσσαλομίκης Τμήμα Μηχαμολόγωμ Οχημάτωμ Page 11
Α.Τ.Ε.Ι. Θεσσαλομίκης Τμήμα Μηχαμολόγωμ Οχημάτωμ Page 12