Table of Contents
Οι μερικές διαφορικές εξισώσεις (PDEs) είναι θεμελιώδεις στην μοντελοποίηση διαφόρων φυσικών φαινομένων, όπως η μεταφορά θερμότητας, η διάδοση κυμάτων, και η δυναμική ρευστών. Χρησιμοποιώντας βιβλιοθήκες Python όπως το NumPy και το SciPy απλοποιεί τη διαδικασία επίλυσης αυτών των εξισώσεων αριθμητικά. Αυτό το άρθρο παρέχει μια βήμα προς βήμα προσέγγιση για την επίλυση PDEs με αυτά τα εργαλεία.
⁇ του Προβλήματος
Ξεκινήστε καθορίζοντας την PDE και το πεδίο. Για παράδειγμα, εξετάστε την μονοδιάστατη εξίσωση θερμότητας:
⁇ u/ ⁇ t = α ⁇ 2u/ ⁇ x2
Προσδιορίστε τις αρχικές συνθήκες, τις οριακές συνθήκες και παραμέτρους όπως η θερμική διφορικότητα α.
Διακριτικότητα του τομέα
Χωρίστε το χωρικό πεδίο σε διακριτά σημεία χρησιμοποιώντας συστοιχίες NumPy. Για παράδειγμα, δημιουργήστε ένα πλέγμα σημείων:
εισαγωγή numpy ως np
x = np.linspace(0, 1, 100)
Ορισμός του χρονικού βήματος και του συνολικού χρόνου προσομοίωσης για τον έλεγχο της αριθμητικής σταθερότητας και ακρίβειας.
Εφαρμογή της Αριθμητικής μεθόδου
Για την εξίσωση θερμότητας, ένα συγκεκριμένο σχήμα ενημερώνει τη θερμοκρασία σε κάθε σημείο:
u new = u + r * (u[i+1] - 2*u[i] + u[i-1])
όπου r είναι μια παράμετρος σταθερότητας που υπολογίζεται ως α * dt / dx2.
Εκτέλεση της Εξομοίωσης
Επαναλάβετε με την πάροδο του χρόνου βήματα, ενημέρωση της διάταξης λύσης σε κάθε επανάληψη. Χρησιμοποιήστε τις λειτουργίες NumPy για την απόδοση:
για n σε εύρος (βήματα):
u[1:-1] = u[1:-1] + r * (u[2:] - 2*u[1:-1] + u[:-2])
Εφαρμογή οριακών συνθηκών μετά από κάθε ενημέρωση για τη διατήρηση των περιορισμών προβλήματος.
Οραματισμός αποτελεσμάτων
Χρησιμοποιήστε βιβλιοθήκες όπως το Matplotlib για να οραματιστείτε την κατανομή της θερμοκρασίας με την πάροδο του χρόνου.
Κωδικός παραδείγματος:
εισαγωγή mattplotlib.pyplot ως plt
plt.plot(x, u)