Σελίδα 6 από 21
Re: Προγραμματισμός με Εφαρμογές στην Επιστήμη του Μηχανικού
Δημοσιεύτηκε: Πέμ Ιουν 10, 2010 8:47 pm
από deee
Το 1ο είναι:program my_generation
implicit none
real*8 r,x,x0
integer i,nmax
print *,'# Enter r,x0,nmax'
read(5,*) r,x0,nmax
print*,'#r=',r,'x0=',x0,'nmax=',nmax
x=x0
open(unit=17,file='g1.dat',status='unknown')
write(17,*) 0,x0
do i=1,nmax
x=r*x*exp(-x)
write(17,*) i,x
enddo
close(17)
end
Το 2ο: program main
integer nmax,index,i
real T(nmax)
Parameter (nmax=1000000)
real t(nmax),x(nmax),v(nmax)
real x0,v0
real dt,tf
write(*,*) 'give theta0,omega0,dt,tf,b'
read(*,*) x0,v0,dt,tf,b
x(1)=x0
v(1)=v0
T(1)=0
call euler (t,x,v,dt,tf,b,index)
open(unit=1,file='xax3.f',status='unknown')
do i=1,index
write(1,*) t(i),x(i),v(i)
enddo
close(1)
end
subroutine euler (t,x,v,dt,tf,b,index)
integer nmax,i,index
parameter(nmax=1000000)
real t(nmax),x(nmax),v(nmax),b,dt,tf
i=2
do while (t(i-1).lt.tf)
i=i+1
t(i)=t(i-1)+dt
x(i)=x(i-1)+v(i-1)*dt
v(i)=v(i-1)-b*x(i-1)**3
index=i
enddo
end
Τώρα ελπίζω να είναι σώστα
Re: Προγραμματισμός με Εφαρμογές στην Επιστήμη του Μηχανικού
Δημοσιεύτηκε: Πέμ Ιουν 10, 2010 9:02 pm
από apolski
Ευχαριστω deee, περιμενουμε και τα υπολοιπα.
Re: Προγραμματισμός με Εφαρμογές στην Επιστήμη του Μηχανικού
Δημοσιεύτηκε: Πέμ Ιουν 10, 2010 10:08 pm
από Tsakalos
Συνδεθειτε στο cloudfront και ανοιξτε ενα shell ή το file manager!
Μπειτε στο φακελο του καθηγητη: /mnt/home/konstant
εκει μεσα στους φακελους Lecture10 Lecture11 και EXAM υπαρχουν οι λυσεις των θεματων...
Re: Προγραμματισμός με Εφαρμογές στην Επιστήμη του Μηχανικού
Δημοσιεύτηκε: Πέμ Ιουν 10, 2010 10:49 pm
από C0n
που ρε αγόρι? εγώ βλέπω μόνο ενδεικτικά θέματα και τις λύσεις. Εχει και ενα φακελο FINAL κλειδωμένο.
εντιτ: ακυρο, τα βρηκα. Θενξ!

Re: Προγραμματισμός με Εφαρμογές στην Επιστήμη του Μηχανικού
Δημοσιεύτηκε: Παρ Ιουν 11, 2010 3:46 am
από citizen
runge-kutta είναι μέσα στην ύλη?
Re: Προγραμματισμός με Εφαρμογές στην Επιστήμη του Μηχανικού
Δημοσιεύτηκε: Παρ Ιουν 11, 2010 11:43 am
από zoe
I uli poia einai akrivws??
Re: Προγραμματισμός με Εφαρμογές στην Επιστήμη του Μηχανικού
Δημοσιεύτηκε: Παρ Ιουν 11, 2010 12:51 pm
από markelos
Aπό το courses.ntua.gr
- Εισαγωγή στο λειτουργικό σύστημα UNIX.
- Εισαγωγή στη γλώσσα προγραμματισμού Fortran
- Υπολογισμός και απεικόνιση τροχιών σωματιδίων σε 2 και 3 διαστάσεις: Προγραμματισμός κινηματικής σωματιδίου σε 2 και 3 διαστάσεις. Ανάλυση των δεδομένων και απεικόνιση τροχιάς. Έλεγχος ακρίβειας αποτελεσμάτων, διατηρούμενες ποσότητες.
- Υπολογισμός και απεικόνιση της κίνησης σωματιδίου υπό την επίδραση δύναμης επιλύοντας τις εξισώσεις κίνησης Νεύτωνα σε 1 και 2 διαστάσεις: Μέθοδοι Euler, Runge Kutta. Επίλυση απλών προβλημάτων στη μία διάσταση: αρμονικός ταλαντωτής, κίνηση στο βαρυτικό πεδίο με τριβή κλπ. Μελέτη ακρίβειας και ευστάθειας λύσεων. Εφαρμογές στις 2 διαστάσεις: Κίνηση στο βαρυτικό πεδίο στην επιφάνεια της γης, μαγνητικό πεδίο, αρμονικός ταλαντωτής, κίνηση πλανητών.
- H λογιστική εξίσωση: Προγραμματισμός τροχιάς λογιστικής εξίσωσης και απεικόνιση. Ελκυστές, σταθερά σημεία, διακλάδωση (bifurcation). Διπλασιασμός περιόδου, χαοτική συμπεριφορά.
- Επίλυση της εξίσωσης διάχυσης με ή χωρίς όρο πηγής σε μία και δύο διαστάσεις: Επίλυση της εξίσωσης διάχυσης στο χρόνο σε μία διάσταση. Σχήμα Euler. Αριθμός Courant. Διατύπωση των πεπερασμένων διαφορών σε μορφή στάμπας (stencil). Επίλυση της εξίσωσης διάχυσης με όρο πηγής σε δύο διαστάσεις.
- Ηλεκτροστατική: Δυναμικές γραμμές και ισοδυναμικές επιφάνειες ηλεκτρικού πεδίου ηλεκτροστατικής κατανομής σημειακών φορτίων στο επίπεδο. Επίλυση εξίσωσης Laplace στο επίπεδο παρουσία αγωγών. Εξίσωση Poisson στο επίπεδο για συνεχή ηλεκτροστατική κατανομή φορτίου.
- Υπολογισμός τροχιών, λύσεων ισορροπίας και ταλαντωτικών λύσεων σε απλά προβλήματα συναγωγής και νευρο-διέγερσης: Οι εξισώσεις Lorentz. Βηματισμός σε παράμετρο για την κατασκευή του διαγράμματος λύσεων. Διαγράμματα φάσεων. Το απλοποιημένο μοντέλο νευροδιέγερσης Fitzhugh. Χρονική Ολοκλήρωση. Κατασκευή του διαγράμματος λύσεων.
- Yπολογισμός και απεικόνιση της κίνησης πολλαπλών σωματιδίων υπό την επίδραση συζευγμένων πεδίων: Προγραμματισμός μοριακής δυναμικής στο επίπεδο: Αλγόριθμος Verlet, συνοριακές, μελέτη κατανομής θέσεων και ταχυτήτων, δυναμικό Lennard-Jones. Προσομοίωση του προβλήματος Pedestrian Dynamics
Επίσης μην ξεχνάτε σήμερα το τελευταίο μάθημα όπου θα λύσουμε θέματα, αίθουσα Α στον πρώτο όροφο του ΔΕΠΥ και ώρα 14:45-17:30. Βασικά είναι αναπλήρωση του τρίτου τμήματος αλλά καλό είναι να έρθετε για εξάσκηση.
Re: Προγραμματισμός με Εφαρμογές στην Επιστήμη του Μηχανικού
Δημοσιεύτηκε: Παρ Ιουν 11, 2010 1:21 pm
από alexk
markelos έγραψε:Aπό το courses.ntua.gr
- Εισαγωγή στο λειτουργικό σύστημα UNIX.
- Εισαγωγή στη γλώσσα προγραμματισμού Fortran
- Υπολογισμός και απεικόνιση τροχιών σωματιδίων σε 2 και 3 διαστάσεις: Προγραμματισμός κινηματικής σωματιδίου σε 2 και 3 διαστάσεις. Ανάλυση των δεδομένων και απεικόνιση τροχιάς. Έλεγχος ακρίβειας αποτελεσμάτων, διατηρούμενες ποσότητες.
- Υπολογισμός και απεικόνιση της κίνησης σωματιδίου υπό την επίδραση δύναμης επιλύοντας τις εξισώσεις κίνησης Νεύτωνα σε 1 και 2 διαστάσεις: Μέθοδοι Euler, Runge Kutta. Επίλυση απλών προβλημάτων στη μία διάσταση: αρμονικός ταλαντωτής, κίνηση στο βαρυτικό πεδίο με τριβή κλπ. Μελέτη ακρίβειας και ευστάθειας λύσεων. Εφαρμογές στις 2 διαστάσεις: Κίνηση στο βαρυτικό πεδίο στην επιφάνεια της γης, μαγνητικό πεδίο, αρμονικός ταλαντωτής, κίνηση πλανητών.
- H λογιστική εξίσωση: Προγραμματισμός τροχιάς λογιστικής εξίσωσης και απεικόνιση. Ελκυστές, σταθερά σημεία, διακλάδωση (bifurcation). Διπλασιασμός περιόδου, χαοτική συμπεριφορά.
- Επίλυση της εξίσωσης διάχυσης με ή χωρίς όρο πηγής σε μία και δύο διαστάσεις: Επίλυση της εξίσωσης διάχυσης στο χρόνο σε μία διάσταση. Σχήμα Euler. Αριθμός Courant. Διατύπωση των πεπερασμένων διαφορών σε μορφή στάμπας (stencil). Επίλυση της εξίσωσης διάχυσης με όρο πηγής σε δύο διαστάσεις.
- Ηλεκτροστατική: Δυναμικές γραμμές και ισοδυναμικές επιφάνειες ηλεκτρικού πεδίου ηλεκτροστατικής κατανομής σημειακών φορτίων στο επίπεδο. Επίλυση εξίσωσης Laplace στο επίπεδο παρουσία αγωγών. Εξίσωση Poisson στο επίπεδο για συνεχή ηλεκτροστατική κατανομή φορτίου.
- Υπολογισμός τροχιών, λύσεων ισορροπίας και ταλαντωτικών λύσεων σε απλά προβλήματα συναγωγής και νευρο-διέγερσης: Οι εξισώσεις Lorentz. Βηματισμός σε παράμετρο για την κατασκευή του διαγράμματος λύσεων. Διαγράμματα φάσεων. Το απλοποιημένο μοντέλο νευροδιέγερσης Fitzhugh. Χρονική Ολοκλήρωση. Κατασκευή του διαγράμματος λύσεων.
- Yπολογισμός και απεικόνιση της κίνησης πολλαπλών σωματιδίων υπό την επίδραση συζευγμένων πεδίων: Προγραμματισμός μοριακής δυναμικής στο επίπεδο: Αλγόριθμος Verlet, συνοριακές, μελέτη κατανομής θέσεων και ταχυτήτων, δυναμικό Lennard-Jones. Προσομοίωση του προβλήματος Pedestrian Dynamics
Επίσης μην ξεχνάτε σήμερα το τελευταίο μάθημα όπου θα λύσουμε θέματα, αίθουσα Α στον πρώτο όροφο του ΔΕΠΥ και ώρα 14:45-17:30. Βασικά είναι αναπλήρωση του τρίτου τμήματος αλλά καλό είναι να έρθετε για εξάσκηση.
Είναι πολύ γενικά αυτά που έχεις ποσταρει.
Ολα αυτα τα εχουν αναρτημενα απο την αρχη του εξαμηνου.Λογω ομως απεργιων κτλ εχουν γινει πολυ λιγοτερα.
Θεωρω πως την υλη πρεπει να την δειτε απο εδώ
http://www.physics.ntua.gr/~konstant/ProgMech/
που ειναι στην ουσια ολες οι ασκησεις που εχουν γινει..
Re: Προγραμματισμός με Εφαρμογές στην Επιστήμη του Μηχανικού
Δημοσιεύτηκε: Παρ Ιουν 11, 2010 2:50 pm
από dj manos
Υπενθύμιση Εγγραφής στις εξετάσεις
Υπενθυμίζουμε ότι σήμερα είναι η προθεσμία εγγραφής στις εξετάσεις της 15/6. Παρακαλούμε τους φοιτητές/ριες να εγγραφούν το συντομότερο δυνατόν σύμφωνα με τις οδηγίες της ανακοίνωσης της 27/5/2010.
Οι Διδάσκοντες
Re: Προγραμματισμός με Εφαρμογές στην Επιστήμη του Μηχανικού
Δημοσιεύτηκε: Κυρ Ιουν 13, 2010 5:20 pm
από alexk
Προσπάθησα να λύσω την άσκηση 2 απο τα προτεινόμενα θέματα (αυτη με την εξίσωση a=-b*x^3)
με την χρήση του euler.f κώδικα που περιλαμβάνει μέσα όλες τις μεθόδους (euler cramer , euler, euler verlet).
Απ'οτι είδα θέλουν αλλαγές και οι υπορουτίνες euler κλπ κλπ οπότε λογικά αν επιχειρησω κατι τετοιο το
παιχνιδι είναι μάλλον χαμένο. Το κύριο πρόβλημα είναι οτι δεν μπορω να έχω μικρά steps (τυπου 0.01 που
ζητάει η άσκηση) αλλά με βαση το συγκεκριμενο πρόγραμμα τα steps είναι 1000 κ βάλε...
Η ερωτηση μου είναι μήπως ο κώδικας euler.f αναφέρεται σε εντελώς διαφορετικό είδος άσκησης?
Εγώ ας πουμε αν εβλεπα την ασκηση 2 την ώρα της εξέτασης το μυαλο μου θα πήγαινε κατευθειαν
στην τροποποίηση του κώδικα euler.f...
Και μια δευτερη ερώτηση
Ο Αναγνωστόπουλος μας έλυσε στην ουσία μαθηματικά την εξισωση a=-b*x^3 ως εξης...
U=dx/dt, dU/dt=-b*x^3
dx=U*dt ==> x=x+U*dt
dU=-b*x^3*dt ==> U=U-b*x^3
Πώς προκύπτει ρε παιδιά η λύση του συστήματο στο τέλος?
Επίσης πλάτος και περίοδος υπολογίζονται στο περίπου γραφικά και η μεγιστη ταχύτητα από τα δεδομένα στο αρχίο .dat?
Re: Προγραμματισμός με Εφαρμογές στην Επιστήμη του Μηχανικού
Δημοσιεύτηκε: Κυρ Ιουν 13, 2010 7:19 pm
από citizen
Eγώ άλλαξα μέσα στην function accel τον τύπο σε accel=-x*x*x και μέσα στην υπορουτίνα euler όρισα real b με
write(*,*)'Dwse to b:'
read(*,*) b
και στον τύπο της ταχύτητας έβαλα V(i) = V(i-1)+b*accel(X(i-1))*h
Και έτρεξε.
Re: Προγραμματισμός με Εφαρμογές στην Επιστήμη του Μηχανικού
Δημοσιεύτηκε: Κυρ Ιουν 13, 2010 8:19 pm
από alexk
Συγκρινε τα αποτελεσματα που εβγαλες με τα αποτελεσματα που βγαινουν απο αυτον τον κώδικα (τσεκαρε τα αρχεια .dat)
Κώδικας: Επιλογή όλων
C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
C file: nonlinvib.f
C
C Solve x''(t) = -b x(t)^3
C using euler method
C
C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
program eulervib
implicit none
real*8 b,x0,v0,tf,dt
real*8 x,v,t
C ---- Input:
print *,'# Enter b,x0,v0,tf,dt:'
read(5,*) b,x0,v0,tf,dt
print *,'# b = ',b
print *,'# x0= ',x0,' v0= ',v0
print *,'# tf= ',tf,' dt= ',dt
C ---- Initialize:
x = x0
v = v0
t = 0.0D0
open(unit=11,file='v.dat')
C ---- Calculate:
do while( t .le. tf)
t = t + dt
x = x + v*dt
v = v - b*x*x*x*dt
write(11,*)t,x,v
enddo
close(11)
end
και θα δεις οτι δεν ειναι αρκετες οι αλλαγες που εκανες...
Re: Προγραμματισμός με Εφαρμογές στην Επιστήμη του Μηχανικού
Δημοσιεύτηκε: Κυρ Ιουν 13, 2010 8:28 pm
από Chris
Εγώ έκανα αυτό και δουλεύει μιά χαρά.
Κώδικας: Επιλογή όλων
program thema2
implicit none
C Declaration of Variables
integer P
parameter(P=110000)
real T(P), X(P),V(P)
real Xin,Vin,Tfi
integer steps
integer i
write(*,*) '# Give steps, Xin, Vin, Tfi: '
read (*,*) steps, Xin, Vin, Tfi
C Initialization
call euler(Xin,Vin,Tfi,steps, T,X,V)
open(unit=11, file='res.dat')
do i=1,steps
write(11,*) T(i), X(i), V(i)
enddo
close(11)
end
C FUNCTION
real function accel(x)
implicit none
real x,b
parameter(b=1)
accel=-b*x**3
end
C ===========================================
C EULER
C ===========================================
subroutine euler(Xin,Vin,Tfi,steps, T,X,V)
C -------------------------------------------
C -ARGUMENTS-
implicit none
integer P
parameter (P=110000)
real T(P),X(P),V(P)
real Xin,Vin,Tfi
integer steps
C -------------------------------------------
C -LOCAL VARIABLES-
integer i
real h,accel
C -------------------------------------------
C -INITIAL CONDITIONS-
T(1)=0.0
X(1)=Xin
V(1)=Vin
h=Tfi/(steps-1) !Time step dt
C ------------------------------------------
C -INTEGRATION-
do i=2,steps
T(i)=T(i-1)+h
X(i)=X(i-1)+V(i-1)*h
V(i)=V(i-1)+accel(X(i-1))*h
enddo
end
Re: Προγραμματισμός με Εφαρμογές στην Επιστήμη του Μηχανικού
Δημοσιεύτηκε: Κυρ Ιουν 13, 2010 9:10 pm
από alexk
Έχεις δίκιο στο γεγονός οτι μπορει να δουλέψει κ ο κωδικας euler.f με αλλαγες στην επιτάχυνση. Απλα είχα φαει κόλλημα και δεν σκεφτομουν οτι το dt=0.1 μπορει να γίνει steps=1000.
Ωστώσο τα αποτελεσματα που βγαζουν ο κωδικας που σου εδειξα κ ο δικος σου βλεπω μεγαλες αλλαγες στα δεδομενα που αποθηκευονται στο res.dat και στο v.dat.
Ειδικα αν κανεις plot u 1:3 οι διαφορες ειναι εμφανεστατες!Να διευκρινισω οτι δοκιμασα και με steps 999 και 1000 και 1001 ενω στον απλο κωδικα που εδωσε ο Αναγνωστοπουλος το dt ειναι 0.01
Re: Προγραμματισμός με Εφαρμογές στην Επιστήμη του Μηχανικού
Δημοσιεύτηκε: Κυρ Ιουν 13, 2010 9:31 pm
από vampinthe
Στο θέμα 4 πως βρίσκουμε σημεία ισορροπίας που ζητάει? Εμένα και στα πέντε σημεία που υπολόγισε, η παράγωγος είναι <1.. είναι ευσταθή σημεία?? Φτάνει αυτό??
εεεε..??
