SlideShare a Scribd company logo
ΔΗΜΟΚΡΙΤΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΡΑΚΗΣ
ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ
ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ
ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ
Αριθμητική Ανάλυση με χρήση Matlab
ΑΝΑΣΤΑΣΙΟΣ ΛΑΖΑΡΙΔΗΣ
tasoslazaridis13@gmail.com
ΝΙΚΟΛΑΟΣ ΤΣΕΛΕΠΙΔΗΣ
nikotsele@ee.duth.gr
Υποεργασία 1
Ερώτημα Α
Τα σημεία  0 0,x y , 1 1,x y , 2 2,x y , 3 3,x y , όπου τα ix είναι ισαπέχοντα,
ανήκουν σε μία κυβική καμπύλη γραμμή. Να δειχθεί ότι η σχέση:
2 3 4
0 0 0 0 0
1 1 1 1
( ) ...
2 3 4
f x f f f f
h
           
 
(1)
οδηγεί στη σχέση  3 2 1 0
1
6 3 2
6
y y y y
h
    , όπως οι τιμές
dy
dx
στο  1 1,x y .
Τι συμπεραίνετε;
Ερώτημα Β
Να δειχθεί ότι :
i)
2

  
 ii)
1
2
2

    iii) 2
    iv)
1
n n n n n
n n n
f g f f g
g g g 
    
  
 
.
Λύση
Ερώτημα Α
Αφού τα σημεία ανήκουν σε κυβική καμπύλη, γνωρίζουμε ότι οι διαφορές 4ης και
ανώτερης τάξης θα είναι ίσες με μηδέν, οπότε η παραπάνω σχέση γράφεται
2 3
0 0 0 0
1 1 1
( )
2 3
f x f f f
h
        
 
(1.1)
Υπολογίζουμε πρώτα τις διαφορές
0 1 0f y y  
 2
0 1 0 2 1 1 0 2 1 02f f f y y y y y y y          
 3 2 2
0 1 0 2 1 1 0 2 1 02f f f f f f f f f f                
 3 2 2 1 1 0 3 2 1 02 3 3y y y y y y y y y y         
Κάνοντας αντικατάσταση στην (1.1) έχουμε
2 3
0 0 0 0
1 1 1
( )
2 3
f x f f f
h
         
 
   1 0 2 1 0 3 2 1 0
1 1 1
2 3 3
2 3
y y y y y y y y y
h
 
           
   1 0 2 1 0 3 2 1 0
1
6 6 3 2 2 3 3
6
y y y y y y y y y
h
           
 3 2 1 0
1
2 9 18 11
6
y y y y
h
    
   0 3 2 1 0
1
2 9 18 11
6
f x y y y y
h
       (1.2)
Για να βρούμε την παράγωγο στο σημείο  1 1,x y παίρνουμε τον προσεγγιστικό
τύπο των Newton-Gregory
      2 3
0 0 0 0 0...
1 2 3
n
n
i i i i
f x p x f x f f f f
n
       
                 
       
, 0ix x ih 
Όπως και προηγουμένως, οι διαφορές 4ης και ανώτερης τάξης είναι μηδέν.
Παραγωγίζοντας τώρα την παραπάνω σχέση έχουμε
   
 
  2 3
0 0 0 0
1
1 2 3
n
n
i i idp x di d
f x p x f x f f f
di dx h di
      
                
      
 
2
2 3
0 0 0
1 1 3 6 2
2 3!
i i
f x f i f f
h
              
    
(1.3)
Στην τελευταία σχέση για 0i  παίρνουμε την σχέση (1.1), ενώ για 1i  έχουμε
    2 3
0 1 0 0 0
1 1 1
2 6
f x h f x f f f
h
            
       1 1 0 2 1 0 3 2 1 0
1 1 1
2 3 3
2 6
f x y y y y y y y y y
h
             
   1 1 0 2 1 0 3 2 1 0
1
6 6 3 6 3 3 3
6
f x y y y y y y y y y
h
          
   1 3 2 1 0
1
6 3 2
6
f x y y y y
h
     
η οποία είναι και η ζητούμενη σχέση.
Συμπεραίνουμε, λοιπόν, ότι από τον τύπο των Newton-Gregory, μπορούμε να
υπολογίσουμε την παράγωγο, όχι μόνο σε ένα σημείο, αλλά και στα τέσσερα
σημεία που δίνονται, για 0ix x ih  , 0,1,2,3i  .
Ερώτημα Β
i) Για να αποδείξουμε την σχέση τελεστών
2

  
 θα κάνουμε τις πράξεις
στα δύο μέλη και θα δείξουμε ότι αυτά είναι ίσα.
Έτσι, στο πρώτο μέλος έχουμε
       1 1 1 1
1 1 1 1
2 2 2 2 2
n n n n n n n n n nf f f f f f f f f f   
   
              
 
και στο δεύτερο μέλος
       1 1 1 1 1 1
2 2
1 1 1
2 2 2
n n n n n n nn n
f f f f f f f f f      
       
Παρατηρούμε ότι αυτά είναι ίσα, άρα αποδείχτηκε και η αρχική σχέση.
ii) Για να δείξουμε την σχέση
1
2
2

    θα ξεκινήσουμε από το πρώτο μέλος
και θα καταλήξουμε στο δεύτερο. Έτσι έχουμε
   1 1 1 1
2 2 2 2
1 1 1
2 2 2 2
n n n n n n n
f f f f f f f

      
 
        
 
  1
2
1 1
2 2
1
2
2
nn n
f f E f 
  
iii) Για να δείξουμε την σχέση τελεστών 2
    θα κάνουμε τις πράξεις και
στα δύο μέλη, όπως στο ερώτημα (i), και θα δείξουμε ότι αυτά είναι ίσα. Δηλαδή,
   
1 1 1 1
2
1 1 1 1 1 1
2 2
( ) 2
2
n n n n n n n n n n
n n n n n n n n nn n
f f f f f f f f f f
f f f f f f f f f f f   
   
    
            


          
2
   
iv) Τέλος, θα αποδείξουμε τη σχέση
1
n n n n n
n n n
f g f f g
g g g 
    
  
 
ξεκινώντας από το
πρώτο μέλος για να καταλήξουμε στο δεύτερο.
1 1 1 1 1
1 1 1
n n n n n n n n n n n n n n n
n n n n n n n
f f f g f f g g f f g f g f g
g g g g g g g
    
  
     
      
 
1 1
1 1
( ) ( )n n n n n n n n n n
n n n n
g f f f g g g f f g
g g g g
 
 
     
 
Υποεργασία 2
Ερώτημα Α
Τα πολυώνυμα Legendre ορίζονται από την αναδρομική σχέση
     2 1
2 3 1
2 2
k k k
k k
P x xP x P x
k k
 
 
 
 
 0 1P x  και  1P x x . Να υπολογισθούν τα πολυώνυμα  2P x ,  3P x ,  4P x ,
 5P x και  6P x , καθώς επίσης και οι προσεγγιστικές ρίζες του πολυωνύμου
 6P x με ακρίβεια 6
10 
 .
Ερώτημα Β
Ο υπολογισμός του χρηματικού ποσού για την εξόφληση ενός δανείου με
υποθήκη για ένα ορισμένο χρονικό διάστημα γίνεται από την εξίσωση ετησίου
εισοδήματος
 1 1
n
i
A P
i

  
 
όπου A είναι το ποσό του δανείου, P είναι το ποσό κάθε πληρωμής και i είναι η
τιμή του τόκου για κάθε περίοδο για τις n περιόδους πληρωμής. Υποθέστε ότι το
δάνειο με υποθήκη ενός σπιτιού για 30 χρόνια είναι 14673.51€ και ότι ο
δανειζόμενος μπορεί να πληρώσει κάθε μήνα το πολύ 132.06€. Ποια είναι η
μέγιστη τιμή τόκου που μπορεί να πληρώσει ο δανειζόμενος;
Λύση
Ερώτημα Α
Για να υπολογίσουμε τα πολυώνυμα Legendre, δημιουργούμε την αναδρομική
συνάρτηση Legendre(k)η οποία είναι η εξής
Legendre.m
function P=Legendre(k)
syms P(x);
if(k==0)
P(x)=1;
elseif(k==1)
P(x)=x;
else
A=(2*(k-2)+3)/((k-2)+2);
B=((k-2)+1)/((k-2)+2);
P(x)=collect(A*Legendre(k-1)*x-B*Legendre(k-2));
end
end
Αρχικά, δηλώνουμε το πολυώνυμο P(x) ως συμβολική συνάρτηση, που παίρνει
ως όρισμα τη συμβολική μεταβλητή x και στη συνέχεια ορίζουμε τον τύπο του
σύμφωνα με το k, αναδρομικά.
Η εντολή collect, "συλλέγει" τις ομοβάθμιες δυνάμεις τις συμβολικής μεταβλητής
x και ξαναγράφει τη συνάρτηση σε μορφή πολυωνύμου.
Έτσι, το πρόγραμμα για την εμφάνιση των ζητούμενων πολυωνύμων είναι το
παρακάτω
LegendrePolynomials.m
clear;
clc;
for i=0:6
fprintf(['nP' num2str(i) '(x) = ' char(Legendre(i)) 'n']);
end
Για i από 0 μέχρι 6 εμφανίζουμε τα αντίστοιχα πολυώνυμα Legendre, καλώντας
την αναδρομική συνάρτηση Legendre(k).
Καλώντας το παραπάνω πρόγραμμα, παίρνουμε τα ζητούμενα πολυώνυμα
P0(x) = 1
P1(x) = x
P2(x) = (3*x^2)/2 - 1/2
P3(x) = (5*x^3)/2 - (3*x)/2
P4(x) = (35*x^4)/8 - (15*x^2)/4 + 3/8
P5(x) = (63*x^5)/8 - (35*x^3)/4 + (15*x)/8
P6(x) = (231*x^6)/16 - (315*x^4)/16 + (105*x^2)/16 - 5/16
Στη συνέχεια, για να βρούμε τις ρίζες του  6P x , χρησιμοποιούμε τη μέθοδο
Newton-Raphson. Γράφουμε, λοιπόν, τη συνάρτηση
Newton_Raphson.m
function x=Newton_Raphson(f,df,x0,tol,n_max)
for i=1:n_max
x=x0-f(x0)/df(x0);
fprintf('%3.0f%20.14f%20.14fn', i,x,abs(x-x0));
if abs(x-x0)<tol
break;
end
x0=x;
end
if i==n_max
fprintf('Η μέθοδος Newton-Raphson δεν κατάφερε να
συγκλίνει μέσα σε %3.0f επαναλήψεις', n_max);
end
end
Επίσης, δημιουργούμε το πρόγραμμα
L6_roots.m
clear; clc; format long;
% P6(x)
f=inline('(231*x^6)/16 - (315*x^4)/16 + (105*x^2)/16 - 5/16');
% η παράγωγος του P6(x)
df=inline('(693*x^5)/8 - (315*x^3)/4 + (105*x)/8');
x0=[-0.95 -0.7 -0.25 0.2 0.65 0.9]; % αρχικές προσεγγίσεις
tol=1e-6; % ακρίβεια
n_max=50; % μέγιστος αριθμός επαναλήψεων
% προσεγγίσεις των ριζών του P6(x)
for i=1:length(x0)
fprintf('Προσέγγιση του x%1.0fn',i);
Newton_Raphson(f,df,x0(i),tol,n_max);
end
Δηλώνουμε το  6P x , και την παράγωγό του ως inline συναρτήσεις, f και df
αντίστοιχα. Αμέσως μετά, ορίζουμε τον x0 ως τον πίνακα με τις αρχικές
προσεγγίσεις των ριζών του  6P x , εκχωρούμε στη μεταβλητή tol την
επιθυμητή ακρίβεια και στη μεταβλητή n_max τον μέγιστο αριθμό των
επαναλήψεων και στη συνέχεια, καλούμε την συνάρτηση Newton_Raphson,
με τα αντίστοιχα ορίσματα για να προσεγγίσουμε τις ζητούμενες ρίζες.
Καλώντας το παραπάνω πρόγραμμα, έχουμε
Προσέγγιση του x1
1 -0.93435179648173 0.01564820351827
2 -0.93249438379747 0.00185741268426
3 -0.93246951862147 0.00002486517600
4 -0.93246951420315 0.00000000441831
Προσέγγιση του x2
1 -0.66162378161148 0.03837621838852
2 -0.66120958659591 0.00041419501557
3 -0.66120938646631 0.00000020012960
Προσέγγιση του x3
1 -0.23863116675242 0.01136883324758
2 -0.23861918611949 0.00001198063292
3 -0.23861918608320 0.00000000003629
Προσέγγιση του x4
1 0.23983546907135 0.03983546907135
2 0.23861953503766 0.00121593403369
3 0.23861918608323 0.00000034895443
Προσέγγιση του x5
1 0.66138947025949 0.01138947025949
2 0.66120942443396 0.00018004582553
3 0.66120938646627 0.00000003796769
Προσέγγιση του x6
1 0.94341433771749 0.04341433771749
2 0.93324471352305 0.01016962419443
3 0.93247377657111 0.00077093695194
4 0.93246951433296 0.00000426223815
5 0.93246951420315 0.00000000012981
Ερώτημα Β
Η μέγιστη τιμή του τόκου που μπορεί να πληρώσει ο δανειζόμενος δίνεται από
τη λύση της εξίσωσης
   1 1 1 1
0
n n
i i
A P A P
i i
 
      
      
Θέτοντας
 
 1 1
n
i
f i A P
i

  
   (1)
το πρόβλημα ανάγεται στην εύρεση της λύσης της εξίσωσης   0f i  .
Κάνοντας τις αντικαταστάσεις των μεταβλητών A=14673.51, P=132.06 και
n=30*12 η σχέση (1) γράφεται ως εξής
 
 
360
1 1
14673.51 132.06
i
f i
i

  
   
Για την εύρεση της ρίζας της f, χρησιμοποιούμε τη μέθοδο της Διχοτόμησης.
ex2b.m
clear;
clc;
format long;
f=inline('14673.51-(132.06*(1-(1+x)^(-360)))/x');
a=eps;
b=0.1;
tol=10^-6;
if(f(a)*f(b)<0) % Bolzano για να ελέγξουμε αν όντως υπάρχει
% ρίζα στο [a,b]
N=ceil(log2((b-a)/tol));
disp([blanks(2) 'Αριθμός επαναλήψεων' blanks(5)...
'Προσέγγιση' blanks(12) 'Σφάλμα']);
for i=1:N
x=(a+b)/2; % Εύρεση του μέσου του [a,b] και προσέγγιση
% της ρίζας
if (f(a)*f(x)<0) % Έλεγχος διαστήματος στο οποίο
% υπάρχει η ρίζα
b=x;
else
a=x;
end
if (abs(b-a)<tol) % Ελεγχος σφάλματος
disp([i,x,abs(b-a)]);
break;
end
end
else
fprintf('Η μέθοδος της διχοτόμησης απέτυχε, επείδη δεν
υπάρχει ρίζα στο διάστημα [%f, %f]', a,b);
end
Το [a,b] είναι το διάστημα στο οποίο ψάχνουμε τη ρίζα της f, στη μεταβλητή
tol αποθηκεύεται η επιθυμητή ακρίβεια με την οποία θέλουμε να
προσεγγίσουμε τη ρίζα, και N είναι ο μέγιστος αριθμός επαναλήψεων που
χρειάζονται για να πετύχουμε την επιθυμητή ακρίβεια στην προσέγγιση της
ρίζας με τη μέθοδο της διχοτόμησης.
*Ο τελεστής "..." δεν είναι τίποτα παραπάνω από την ένδειξη συνέχειας στην
επόμενη γραμμή. Η εντολή εκτελείται κανονικά, σαν να είχε γραφτεί σε μία
γραμμή.
Καλώντας το παραπάνω πρόγραμμα, εμφανίζεται στο παράθυρο εντολών
του MATLAB
Αριθμός επαναλήψεων Προσέγγιση Σφάλμα
17.000000000000000 0.008585357666016 0.000000762939453
Τελικά, για i = 0.008585357666016, έχουμε τη μεγιστοποίηση του τόκου.
Υποεργασία 3
Ερώτημα Α
Υποθέστε ότι για τα γραμμικά συστήματα Au s και Au s , ισχύει
1
1
A A
A
 , όπου A και A είναι μη ιδιότυποι πίνακες (με A να αποτελεί
έναν «ελαφρά-διαταραγμένο» πίνακα του A ). Να δειχθεί ότι, αν 0u  ισχύει
 
   1
A Au u I k A
u Ak A A A A
 
 
   (3.1)
Ερώτημα Β
Έστω A ένας n n τετραγωνικός πίνακας με 1A , όπου είναι μία νόρμα
πινάκων. Να δειχθεί ότι
 
11 1
1 1
I A
A A

  
 
(3.2)
Λύση
Πριν απαντήσουμε στα ερωτήματα Α και Β θα αποδείξουμε κάποιες σχέσεις που
θα μας φάνουν χρήσιμες παρακάτω.
Γνωρίζουμε ότι νόρμα ονομάζεται μια απεικόνιση : n nM   αν για κάθε
, n nA B M  ισχύουν τα ακόλουθα:
0A  (3.i)
0A  αν και μόνο αν 0A  (3.ii)
cA c A  , c M  (3.iii)
A B A B   (3.iv)
AB A B  (3.v)
Ειδικότερα τώρα για κάθε μοναδιαίο πίνακα I έχουμε
(3. )
1
v
I I I I I I I I I         (3.3)
Ενώ για τον 1
A
που είναι ο αντίστροφος του A ,  1
AA I
 έχουμε
1 1 1 1 1
1 1I AA A A A A A
A
   
         (3.4)
Λήμμα
Αν n nA M  και 1A τότε ο I A είναι αντιστρέψιμος και ισχύει
   
11
1I A A

   (3.5)
Απόδειξη
Έχουμε
     x I A x Ax x I A x Ax I A x Ax           
 x I A x A x        1I A x A x  
από αυτό συνεπάγεται ότι   0I A x  για κάθε 0x  , έτσι ο πίνακας I A
είναι αντιστρέψιμος.
Έστω τώρα ότι 0b  και  
1
x I A b

  , τότε
 
 
1
1
1
I A b x
b AI A x


 

αφού η παραπάνω σχέση ισχύει για κάθε 0b  έχουμε
 
 
1
1
0
1
sup
1b
I A b
I A
b A




  

το οποίο θέλαμε να αποδείξουμε.
Ερώτημα Α
Έχουμε τα γραμμικά συστήματα
u s  και u s  , με     και u u u 
η ανισότητα 1
1

  

γράφεται και  k    όπου
  1
k 
   
είναι ο αριθμός ευαισθησίας, έτσι έχουμε
 1 1
1k  
      

(3.6)
Εδώ ο πίνακας 1
I 
   είναι αντιστρέψιμος, οπότε έχουμε
   1 1
u u I u u 
            
Από το παραπάνω Λήμμα μπορούμε να γράψουμε
 
11 1
u I u
 
       
και παίρνουμε
 
1
11 1
1
1
u I u u

 

 
       
  
Επομένως η παραπάνω σχέση σύμφωνα με την (3.6) γράφεται
 
 1
u k A
u
k A
 
 
 
  
 

 
   1
A Au u k A
u Ak A A A A

 
  
(3.7)
Τέλος, πολλαπλασιάζοντας κατά μέλη τις (3.7) και (3.3) έχουμε την ζητούμενη
σχέση
 
   1
A Au u I k A
u Ak A A A A
 
 
  
Ερώτημα B
Με βάση το παραπάνω Λήμμα, θέτοντας όπου Α το –Α, η εξίσωση (3.5) γράφεται
         
 
1 11 1 1 1
1 1
1
I A A I A A I A
A
   
          

Η τελευταία σχέση είναι το δεύτερο μέλος της ανίσωσης που έχουμε να
αποδείξουμε.
Υποεργασία 4
Ερώτημα Α
Να επιλύσετε το κάτωθι γραμμικό σύστημα
1
2
3
4
1 5 0 1 2
0 1 2 4 1
8 1 1 0 1
1 0 4 2 0
x
x
x
x
     
          
    
    
    
με τη μέθοδο Jacobi, Gauss-Seidel και SOR και αρχική προσέγγιση x(0)=[0 0 0 0]T
Να σχολιάσετε τη συμπεριφορά των μεθόδων.
Ερώτημα Β
Να επιλυθεί το κάτωθι γραμμικό σύστημα
1
2
3
1 1 111
2 3 16
10 5 655
3 2 6
100 23525 20
3 3
x
x
x
   
    
        
     
      
με την μέθοδο που δίνει τα πιο ακριβή αποτελέσματα.
Ερώτημα Γ
Θεωρήστε το παρακάτω κύκλωμα
για το οποίο με χρήση της μεθόδου Kirchoff, ο υπολογισμός του δυναμικού
γίνεται με την επίλυση γραμμικού συστήματος με LU παραγοντοποίηση. Να
υπολογισθεί το
δυναμικό στα διάφορα σημεία.
Λύση
Ερώτημα Α
Για το παραπάνω γραμμικό σύστημα θέτουμε
1 5 0 1
0 1 2 4
8 1 1 0
1 0 4 2
A
 
   
 
 
 
και
2
1
1
0
b
 
 
 
 
 
 
Οι μέθοδοι Jacobi, Gauss-Seidel και SOR είναι επαναληπτικές, άρα για να τις
χρησιμοποιήσουμε πρέπει ο πίνακας Α να είναι διαγώνια υπέρτερος. Για να γίνει
αυτό θεωρούμε τον επαυξημένο πίνακα A b   και κάνουμε τις ακόλουθες
γραμμοπράξεις
1 3 2 3
1 5 0 1 2 8 1 1 0 1
0 1 2 4 1 0 1 2 4 2
8 1 1 0 1 1 5 0 1 1
1 0 4 2 0 1 0 4 2 0
R R R R
A b  
    
   
                
   
       
3 4
8 1 1 0 1 8 1 1 0 1
1 5 0 1 2 1 5 0 1 2
0 1 2 4 1 1 0 4 2 0
1 0 4 2 0 0 1 2 4 1
R R
     
   
    
     
   
        
Έτσι το σύστημα τώρα γράφεται 1 1A x b , όπου
1
8 1 1 0
1 5 0 1
1 0 4 2
0 1 2 4
A
 
  
 
 
  
και 1
1
2
0
1
b
 
 
 
 
 
 
Ο πίνακας Α1 τώρα είναι διαγώνια υπέρτερος αφού ισχύει , ,
1,
n
i i i j
j j i
a a
 
  για
κάθε 1,2,3,4i  .
Για την επίλυση του συστήματος με υπολογιστή κατασκευάζουμε τις παρακάτω
συναρτήσεις
jacobi.m
function [x,k]=jacobi(a,b,x0,N,tol)
% Επαναληπτική μέθοδος jacobi
n=length(a);
x(1,:)=x0';
err=10;
k=1;
while ((k<=N)&&(err>=tol))
for i=1:n
sum=0;
for j=1:i-1
sum=sum+a(i,j)*x(k,j);
end
for j=i+1:n
sum=sum+a(i,j)*x(k,j);
end
x(k+1,i)=(b(i)-sum)/a(i,i);
end
err=norm((x(k+1,:)-x(k,:)),Inf);
k=k+1;
end
k=k-1;
x=x(k+1,:)';
end
gauss_seidel.m
function [x,k]=gauss_seidel(a,b,x0,N,tol)
% Επαναληπτική μέθοδος Gauss-Seidel
n=length(a);
x(1,:)=x0';
err=10;
k=1;
while ((k<=N)&&(err>=tol))
for i=1:n
sum=0;
for j=1:i-1
sum=sum+a(i,j)*x(k+1,j); % η μόνη διαφοροποίηση
% από την Jacobi
end
for j=i+1:n
sum=sum+a(i,j)*x(k,j);
end
x(k+1,i)=(b(i)-sum)/a(i,i);
end
err=norm((x(k+1,:)-x(k,:)),Inf);
k=k+1;
end
k=k-1;
x=x(k+1,:)';
end
SOR.m
function [x,k]=SOR(a,b,x0,omega,N,tol)
% Επαναληπτική μέθοδος S.O.R. (Successive Over Relaxation)
n=length(a);
x(1,:)=x0';
err=10;
k=1;
while ((k<=N)&&(err>=tol))
for i=1:n
sum=0;
for j=1:i-1
sum=sum+a(i,j)*x(k+1,j);
end
for j=i+1:n
sum=sum+a(i,j)*x(k,j);
end
x(k+1,i)=(1-omega)*x(k,i)+omega*(b(i)-sum)/a(i,i);
% Σταθμισμένος Μ.Ο. χρησιμοποιώντας τις προσεγγίσεις
% των Gauss-Seidel και Jacobi
end
err=norm((x(k+1,:)-x(k,:)),Inf);
k=k+1;
end
k=k-1;
x=x(k+1,:)';
end
'Ολες οι παραπάνω συναρτήσεις δέχονται ως είσοδο τους πίνακες a και b,
τον πίνακα x0 ο οποίος περιέχει τις αρχικές προσεγγίσεις, τον μέγιστο αριθμό
επαναλήψεων N της μεθόδου και την επιθυμητή ακρίβεια. Η S.O.R. δέχεται,
επίσης, ως είσοδο και το ω, από το οποίο εξαρτάται η ταχύτητα σύγκλισης στη
λύση και η ακρίβεια των προσεγγίσεων.
Η κάθε συνάρτηση επιστρέφει την προσέγγιση της λύσης με την αντίστοιχη
μέθοδο και τον αριθμό των επαναλήψεων που χρειάστηκαν.
Για την επίλυση, λοιπόν, του συστήματος με όλες τις παραπάνω μεθόδους
συντάσσουμε τον παρακάτω κώδικα
ex4a.m
clear; clc; format long;
a=[8 -1 1 0; -1 5 0 1; 1 0 4 -2; 0 -1 -2 4];
b=[1 2 0 1]';
x0=[0 0 0 0]'; % αρχική προσέγγιση
N=50; % μέγιστος αριθμός επαναλήψεων
tol=1e-6; % ακρίβεια
omega=1.1; % ω ( μόνο για την S.O.R. )
disp('Λύση μεθόδου Jacobi')
[x1,k1]=jacobi(a,b,x0,N,tol) % κλήση συνάρτησης jacobi
disp('Λύση μεθόδου Gauss-Seidel')
[x2,k2]=gauss_seidel(a,b,x0,N,tol) % κλήση συνάρτησης
% gauss_seidel
disp('Λύση μεθόδου S.O.R.')
[x3,k3]=SOR(a,b,x0,omega,N,tol) % κλήση συνάρτησης SOR
Με την εκτέλεση του προγράμματος αυτού, παίρνουμε
Λύση μεθόδου Jacobi
x1 =
0.146138125460885
0.344468039017405
0.175364511889264
0.423798885646905
k1 =
18
Λύση μεθόδου Gauss-Seidel
x2 =
0.146137878532443
0.344467696885896
0.175365227418371
0.423799537930660
k2 =
11
Λύση μεθόδου S.O.R.
x3 =
0.146137783427389
0.344467644338358
0.175365339000735
0.423799585079401
k3 =
8
Ερώτημα Β
Για την επίλυση του συστήματος, αυτού, με τα ακριβέστερα αποτελέσματα,
επιλέγουμε την μέθοδο απαλοιφής κατά Gauss, με μερική οδήγηση. Για να μη
χάνονται σημαντικά ψηφία κατά τη διαίρεση με τα στοιχεία οδήγησης, είναι
αναγκαίο να διαιρούμε με το μέτρο του μεγαλύτερου στοιχείου της τρέχουσας
στήλης. Σε αυτήν την περίπτωση, το μέτρο των τιμών των πολλαπλασιαστών
πρέπει να είναι μικρότερο ή ίσο με τη μονάδα. Επομένως, είναι αναγκαίο να
μετασχηματίσουμε τον πίνακα A, έτσι, ώστε τα μεγαλύτερα στοιχεία του πίνακα
να βρίσκονται στη διαγώνιο.
2 2
1 1
2 2
3 3
3 3
1
6 5
16
6 10
1 1 111 33
2 3 16 6 3 2 8
10 5 655 30 20 15 65
3 2 6
200 150 120 470100 23525 20
3 3
R R
R R
R R
R R
R R





   
   
    
   
   
   
3 1 32 1 2
20
6
3333
86 3 2 6 3 28
716 4 3 13 0 1 1
8
20 15 12 47 20 15 12 47
R R RR R R
  
  
  
    
  
  
    
1
2
3
33 33
8 86 3 2 6 3 2
71 710 1 1 0 1 1
8 8
16 160 5 0 5133 1333 34 4
x
x
x
    
     
           
             
Έτσι το σύστημα τώρα γράφεται 2 2A x b , όπου
2
6 3 2
0 1 1
160 5
3
A
 
 
 
 
  
και 2
33
8
71
8
133
4
b
 
 
 
 
 
  
Η συνάρτηση που εφαρμόζει την μέθοδο απαλοιφής κατά Gauss υπολογιστικά,
είναι η παρακάτω
gauss_el.m
function x=gauss_el(a,b)
% Gauss elimination - Απαλοιφή κατά Gauss
n=length(a);
for k=1:n-1
for i=k+1:n
a(i,k)=a(i,k)/a(k,k);
for j=k+1:n
a(i,j)=a(i,j)-a(i,k)*a(k,j);
end
b(i)=b(i)-a(i,k)*b(k);
end
end
for i=n:-1:1
sum=0;
for j=i+1:n
sum=sum+a(i,j)*x(j);
end
x(i)=(b(i)-sum)/a(i,i);
end
x=x';
end
Επειδή, ο A είναι διαγώνια υπέρτερος, επιχειρούμε τη επίλυση του συστήματος
και με την S.O.R.
Έτσι, το πρόγραμμα είναι
ex4b.m
clear; clc; format long;
a=[6 3 2; 0 1 1; 0 5 16/3];
b=[33/8 71/8 133/4]';
x0=[0 0 0]'; % αρχική προσέγγιση ( μόνο για S.O.R )
tol=1e-14; % ακρίβεια ( μόνο για S.O.R )
N=100; % μέγιστος αριθμός επαναλήψεων ( μόνο για S.O.R )
omega=1.625; % ω ( μόνο για S.O.R. )
disp('Λύση μεθόδου S.O.R.')
[x_sor,k]=SOR(a,b,x0,omega,N,tol) % κλήση συνάρτησης SOR
disp('Λύση μεθόδου απαλοιφής Gauss')
x_gsp=gauss_el(a,b) % κλήση συνάρτησης gauss_el (gauss
% elimination)
Η εκτέλεση του παραπάνω κώδικα δίνει
Λύση μεθόδου S.O.R.
x_sor =
-9.312500000000007
42.250000000000007
-33.375000000000014
k =
76
Λύση μεθόδου απαλοιφής Gauss
x_gsp =
-9.312500000000005
42.250000000000028
-33.375000000000028
Ερώτημα Γ
Για να λύσουμε το παραπάνω κύκλωμα επιλέγουμε την μέθοδο των βρόχων. Το
κύκλωμα έχει τους τρεις βρόχους ABFGA, BCEFB, CDEC. Έστω ότι από αυτούς
διέρχονται τα ρεύματα J1, J2 και J3 αντίστοιχα.
Για τον βρόχο ABFGA έχουμε
 1 1 2 12 5 3 15 0J J J J      1 210 5 15J J  (5.3.1)
Για τον βρόχο BCEFB έχουμε
   2 2 3 2 2 13 2 4 5 0J J J J J J       1 2 35 14 2 0J J J    (5.3.2)
Για τον βρόχο ABFGA έχουμε
 3 3 3 22 2 0J J J J     2 32 5 0J J   (5.3.2)
Επομένως έχουμε να λύσουμε το γραμμικό σύστημα
J B  
1
2
3
10 5 0 15
5 14 2 0
0 2 5 0
J
J
J
     
            
          
Παρατηρούμε ότι ο πίνακας Α είναι συμμετρικός, επομένως αν εφαρμόζαμε την
LU παραγοντοποίηση, θα συμπεραίναμε ότι ο πίνακας U είναι ο ανάστροφος του
πίνακα L. Για το λόγο αυτό, επιλύουμε το παραπάνω σύστημα με τη μέθοδο
Choleski ( LLT ) .
Αυτή η αλγοριθμική διαδικάσία εκφράζεται παρακάτω σε κώδικα MATLAB
ex4c.m
clear; clc;
format short;
% Μέθοδος choleski ( A=LL' )
a=[10 -5 0; -5 14 -2; 0 -2 5];
b=[15 0 0]';
n=length(a);
l(1,1)=sqrt(a(1,1)); % 1ο στοιχείο 1ης στήλης
for j=2:n
l(j,1)=a(j,1)/l(1,1); % στοιχεία 1ης στήλης ( από γραμμή 2
% μέχρι n )
end
for i=2:(n-1)
sum=0;
for k=1:(i-1)
sum=sum+l(i,k)^2; % βοηθητικά αθροίσματα διαγώνιων
% στοιχείων
end
l(i,i)=sqrt(a(i,i)-sum); % διαγώνια στοιχεία
for j=(i+1):n
sum2=0;
for k=1:(i-1)
sum2=sum2+l(j,k)*l(i,k); % βοηθητικά αθροίσματα
% των υποδιαγώνιων στοιχείων
end
l(j,i)=(1/l(i,i))*(a(j,i)-sum2); % υποδιαγώνια
% στοιχεία
end
end
sum3=0;
for k=1:(n-1)
sum3=sum3+l(n,k)^2; % βοηθητικό άθροισμα τελευταίου
% στοιχείου
end
l(n,n)=sqrt(a(n,n)-sum3); % τελευταίο στοιχείο
l
% προς τα εμπρός αντικατάσταση Ly=b
y(1)=b(1)/l(1,1);
for i=2:n
sum=0;
for j=1:(i-1)
sum=sum+l(i,j)*y(j); % βοηθητικό άθροισμα για προς τα
% εμπρός αντικατάσταση
end
y(i)=(b(i)-sum)/l(i,i); % υπολογισμός των στοιχείων του y
end
% προς τα πίσω αντικατάσταση L'x=y
x(n)=y(n)/l(n,n);
for i=(n-1):-1:1
sum=0;
for j=(i+1):n
sum=sum+l(j,i)*x(j); % βοηθητικό άθροισμα για προς τα
% πίσω αντικατάσταση
end
x(i)=(y(i)-sum)/l(i,i); % υπολογισμός των στοιχείων του x
end
Τα αποτελέσματα που δίνονται από την εκτέλεση του παραπάνω κώδικα είναι
l =
3.1623 0 0
-1.5811 3.3912 0
0 -0.5898 2.1569
x =
1.8505 0.7009 0.2804
Έχουμε βρει ότι 1 1.8505J A , 2 0.7009J A , 3 0.2804J A , επομένως τα
ρεύματα σε κάθε κλάδο είναι
1 1.8505ABI J A 
2 0.7009BCI J A 
3 0.2804CDI J A 
3 0.2804DFI J A 
2 3 0.4206CEI J J A  
2 0.7009EFI J A 
1 2 1.1495BFI J J A  
1 1.8505FGI J A 
Θεωρώντας ως γείωση τον κόμβο F, 0FV  , έχουμε
5 5.7477
5
B
BF B BF B
V
I V I V V     

3 3.6449
3
B C
BC C B BC C
V V
I V V I V V

      

4 2.8037
4
E
EF E EF E
V
I V I V V     

2 3.0842
2
C D
CD D C CD D
V V
I V V I V V

      

3 5.5514
3
G
FG G FG G
V
I V I V V

       

2 9.4486
2
A B
AB A B AB A
V V
I V V I V V

      

Υποεργασία 5
Ερώτημα Α
Να υπολογισθούν με τη μέθοδο προσδιοριστέων συντελεστών οι τιμές των
παραμέτρων 0 1 0 1, , ,a a b b του προσεγγιστικού τύπου
     
0
1
2
0 0 1 1 0 0 1 1
x
x
f x dx h a f a f h b f b f     (5.1)
όπου ( )i if f x  είναι η τιμή της παραγώγου της συνάρτησης  f x στο σημείο x
και 0ix x ih  , 0,1h  .
Ερώτημα Β
Να υπολογισθεί το ολοκλήρωμα
3
2
0
sin( )
1
x
e x
I dx
x


με ακρίβεια εs=0.5% χρησιμοποιώντας τη μέθοδο ολοκλήρωσης Romberg. Τα
αποτελέσματα να παρασταθούν γραφικά σε ένα σύστημα ορθογωνίων
συντεταγμένων με κάθετο άξονα το αληθές ποσοστιαίο σχετικό σφάλμα και
οριζόντιο άξονα τον αριθμό των διαστημάτων για τον υπολογισμό των
ολοκληρωμάτων. Να υπολογισθεί η αναλυτική λύση και να χρησιμοποιηθεί για
τον υπολογισμό του αληθούς σφάλματος εt του αποτελέσματος που προκύπτει
από την ολοκλήρωση Romberg. Να ελεγχθεί αν το σφάλμα εt είναι μικρότερο
από το κριτήριο τερματισμού εs.
Λύση
Ερώτημα Α
Για   1f x  , έχουμε   0f x  , οπότε η (5.1) γράφεται
 
0
1
0 1
x
x
dx h a a    1 0 1ox x h a a   (5.1.1)
Για  f x x , έχουμε   1f x  , οπότε η (5.1) γράφεται
   
0
1
2
0 0 1 1 0 1
x
x
xdx h x a x a h b b        
2 2
20 1
0 0 1 1 0 1
2
x x
h x a x a h b b

    (5.1.2)
Για   2
f x x , έχουμε   2f x x  , οπότε η (5.1) γράφεται
   
0
1
2 2 2 2
0 0 1 1 0 0 1 12 2
x
x
x dx h x a x a h x b x b    
   
3 3
2 2 20 1
0 0 1 1 0 0 1 12 2
3
x x
h x a x a h x b x b

     (5.1.3)
Για   3
f x x , έχουμε   2
3f x x  , οπότε η (5.1) γράφεται
   
0
1
3 3 3 2 2 2
0 0 1 1 0 0 0 13 3
x
x
x dx h x a x a h x b x b    
   
4 4
3 3 2 2 20 1
0 0 1 1 0 0 0 13 3
4
x x
h x a x a h x b x b

     (5.1.4)
Για να βρούμε τώρα τους συντελεστές 0 1 0 1, , ,a a b b αρκεί να λύσουμε το σύστημα
των εξισώσεων (5.1.1), (5.1.2), (5.1.3), (5.1.4).
Κάνοντας την αντικατάσταση 1 0x x h  και μετά από πράξεις καταλήγουμε στο
σύστημα
0 1
0 0 1
0 1
1 1
1
1
2
3 6 2
1
3
4
a a
a b b
a b
a b
  

   


  

  


0
1
0
1
1
2
1
2
1
12
1
12
a
a
b
b

 

  


  


 

Έτσι ο προσεγγιστικός τύπος κάνοντας αντικατάσταση γράφεται
     
0
1
2
0 1 0 1
2 12
x
x
h h
f x dx f f f f      
Ερώτημα Β
Η έκφραση της μεθόδου Romberg σε κώδικα MATLAB είναι η παρακάτω
ex5b.m
clear; clc;
format long;
f = @(x) (exp(x).*sin(x))./(1+(x.^2));
I = integral(f,0,3);
% I = 2.881637273055190
% fun=inline('(exp(x)*sin(x))/(1+(x^2))');
a=0.0;
b=3.0;
n=4; % αριθμός διαστημάτων
m=zeros(1,n);
err=zeros(1,n);
Q=zeros(n,n);
R=zeros(n,n);
h=b-a;
Q(1,1)=h*(f(a)+f(b))/2; % 1η προσέγγιση τραπεζίου ||
% m = 1 = 2^(i-1) || i = 1
R(1,1)=Q(1,1);
m(1)=1;
err(1)=abs((I-Q(1,1))/I);
for i=2:n % αριθμός προσέγγισης
sum=0.0;
m(i)=2^(i-1); % αριθμός διαστημάτων ||
% i = 2,...,n προσέγγιση
for k=1:2^(i-2)
sum=sum+f(a+(k-0.5)*h);
end
Q(2,1)=0.5*(Q(1,1)+h*sum); % 2η προσέγγιση τραπεζίου
for j=2:i
Q(2,j)=((4^(j-1))*Q(2,j-1)-Q(1,j-1))/((4^(j-1))-1);
% Εφαρμογή προεκβολής Richardson
end
h=h/2;
for j=1:i
R(i,j)=Q(2,j);
Q(1,j)=Q(2,j);
end
err(i)= abs((I - R(i,i))/I);
if ( err(i) < 0.5/100 )
break;
end
end
R
plot (m(1:i),100*err(1:i));
xlabel('Αριθμός διαστημάτων ( m )');
ylabel('Ποσοστιαίο Σχετικό Σφάλμα ( 100*err )');
Αρχικά, δηλώνουμε την ολοκληρωτέα συνάρτηση
  2
sin( )
1
x
e x
f x
x


με έναν τρόπο που θυμίζει δείκτη ( pointer ), για να χρησιμοποιήσουμε τη
συνάρτηση integral ( ) του MATLAB, έτσι ώστε να υπολογίσουμε την
αναλυτική λύση του ολοκληρώματος
 
3
0
I f x dx 
Στη συνέχεια, δημιουργούμε τους πίνακες (1 x n) err και m, στους οποίους θα
αποθηκευτούν τα σχετικά σφάλματα και ο αριθμοί των υποδιαστημάτων για
την κάθε προσέγγιση, έτσι ώστε να μπορούμε να τα αναπαραστήσουμε γραφικά
μετά την εφαρμογή της μεθόδου.
Καλώντας το πρόγραμμα ex5b.m παίρνουμε
R =
0.425170669873051 0 0 0
2.275875663789020 2.892777328427676 0 0
0 0 0 0
0 0 0 0
και εμφανίζεται και το παρακάτω γράφημα
Υποεργασία 6
Ερώτημα Α
Να μελετηθεί η ευστάθεια της μεθόδου
   1 1 1 14 5 2 , 2 ,i i i i i i iy y y h f x y hf x y         , 1,2,..., 1i n 
με αρχικές τιμές 0y , 1y .
Ερώτημα B
Ένα σώμα μάζας m=0.11kg που έχει εκτοξευθεί κατακόρυφα (προς τα άνω) με
αρχική ταχύτητα v(0)=8m/sec χάνει ταχύτητα εξαιτίας της δύναμης βαρύτητας
Fg=-mg και της αντίστασης του αέρα Fr=-kv2, όπου g=9.81m/sec2 και
k=0.002kg/m. Η διαφορική εξίσωση της ταχύτητας ορίζεται ως
2
mv mg kv    (6.2)
Να υπολογισθεί η ταχύτητα μετά από 0.1, 0.2, …, 1.0 sec χρησιμοποιώντας τη
μέθοδο Taylor δευτέρας και τετάρτης τάξης. Να υπολογισθεί επίσης με ακρίβεια
δεκάτου του sec ο χρόνος στον οποίο το σώμα φθάνει στο μέγιστο ύψος και
αρχίζει να κατέρχεται χρησιμοποιώντας τη μέθοδο Taylor τετάρτης τάξης.
Ερώτημα Γ
Να υπολογισθεί μία προσεγγιστική λύση του συστήματος συνήθων διαφορικών
εξισώσεων
2 2 sinx
y y y e x    , 0 1x  , (0) 0.4y   , (0) 0.6y   (6.3)
με χρήση της μεθόδου Runge-Kutta τετάρτης τάξης με βήμα h=0.1. Να
συγκριθούν οι προσεγγιστικές λύσεις με τις αντίστοιχες θεωρητικές λύσεις του
συστήματος.
1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2
0
10
20
30
40
50
60
70
80
90
Αριθμός διαστημάτων ( m )
ΠοσοστιαίοΣχετικόΣφάλμα(100*err)
Λύση
Ερώτημα Α
Για να εξετάσουμε την ευστάθεια της παραπάνω μεθόδου, παίρνουμε το
χαρακτηριστικό της πολυώνυμο
  2
4 5 0 1 5 0z z z z      
το οποίο έχει δύο απλές ρίζες, 1 1z  και 2 5z   .
Έτσι συμπεραίνουμε ότι η μέθοδος δεν είναι ευσταθής, αφού για να είναι πρέπει
οι απόλυτες τιμές των χαρακτηριστικών ριζών να είναι σε απόλυτη τιμή
μικρότερες ή ίσες με την μονάδα, να υπάρχει μία χαρακτηριστική ρίζα σε
απόλυτη τιμή ίση με την μονάδα και να είναι απλές.
Ερώτημα Β
Για ευκολία, θέτουμε
k
A
m
  , έτσι η σχέση (6.2) γράφεται
 2dv
g Av f v
dt
    (6.2.1)
Υπολογίζουμε τις παραγώγους της f
  2
dv
f v Av
dt
 
(6.2.1)
   2 3
2 2f v Avg A v    (6.2.2)
  2 2
2 6
dv dv
f v Ag A v
dt dt
   
(6.2.1)
   2 2 2 3 4
2 8 6f v Ag A gv A v    (6.2.3)
  2 3 3
16 24
dv dv
f v A gv A v
dt dt
   
(6.2.1)
   2 2 3 3 4 5
16 40 24f v A g v A gv A v    (6.2.4)
Γνωρίζουμε ότι για την μέθοδο Taylor δευτέρας και τετάρτης τάξης οι τελεστές
είναι αντίστοιχα
2
2
i i
h
T f f  
4
2 3! 4!
i i i i
h h h
T f f f f     
Αντικαθιστώντας τις παραγώγους από τις σχέσεις (6.2.2), (6.2.3), (6.2.4) οι
τελεστές γράφονται
2 2 3
2 i i iT g Ahgv Av A hv    
 2 2 2 2 2 2 2 3 3 3 3 3 2 4 4 3 5
4 2
1
4 2 5
3
T T Ah g A h v g A g vh A gv h A h v A h v      
Στη συνέχεια, καλούμε το πρόγραμμα T2_T4.m
clear;
clc;
syms T2(v,h,g,A)
syms T4(v,h,g,A)
T2(v,h,g,A)=-g-h*A*g*v+A*(v^2)+h*(A^2)*(v^3);
T4(v,h,g,A)=T2(v,h,g,A)+(1/3)*(h^2)*A*(g^2)
+(2/3)*(h^3)*(A^2)*(g^2)*v
-(4/3)*(h^2)*(A^2)*g*(v^2)
-(5/3)*(h^3)*(A^3)*g*(v^3)
+(h^2)*(A^3)*(v^4)
+(A^4)*(h^3)*(v^5);
k=0.002;
m=0.11;
A=-k/m;
h=0.1;
g=9.81;
T2(v,h,g,A)
T4(v,h,g,A)
και παίρνουμε πολυώνυμα T2(v) και T4(v)
ans =
v^3/30250 - v^2/55 + (981*v)/55000 - 981/100
ans =
v^5/9150625000 - v^4/16637500 + (110327*v^3)/3327500000 -
(137827*v^2)/7562500 + (270095787*v)/15125000000 -
539870787/55000000
Έτσι ο κώδικας για το ερώτημα Β είναι
ex6b.m
clear; clc; format long;
a=0.0; b=1.0;
h=0.1; t=a:h:b; N=(b-a)/h;
v2=zeros(N+1,1);
v4=zeros(N+1,1);
v0=8.0;
v2(1)=v0;
v4(1)=v0;
for i=1:N
v2(i+1)=v2(i)+h*(-981/100+(981/55000)*v2(i)
-(1/55)*(v2(i)^2)
+(1/30250)*(v2(i)^3));
v4(i+1)=v4(i)+h*(-539870787/55000000
+(270095787/15125000000)*v4(i)
-(137827/7562500)*(v4(i)^2)
+(110327/3327500000)*(v4(i)^3)
-(1/16637500)*(v4(i)^4)
+(1/9150625000)*(v4(i)^5));
end
disp('Προσεγγίσεις με μέθοδο Taylor 2ης τάξης');
disp('v2=');
disp(v2);
disp('Προσεγγίσεις με μέθοδο Taylor 4ης τάξης');
disp('v4=');
disp(v4);
[k,l]=min(v4(v4>0));
disp(['Ο χρόνος (με ακρίβεια δεκάτου του sec) στον οποίο το
σώμα φτάνει στο μέγιστο ύψος είναι t=' num2str(t(l)) '
seconds.']);
Εκτελώντας το παραπάνω πρόγραμμα, εμφανίζονται στο παραθύρο εντολών
του MATLAB τα παρακάτω αποτελέσματα
Προσεγγίσεις με μέθοδο Taylor 2ης τάξης
v2=
8.000000000000000
6.918598016528925
5.864002158340236
4.831607045208235
3.817153326285394
2.816653494168475
1.826326638362889
0.842539789599583
-0.138246127337295
-1.119527465967416
-2.104807737556353
Προσεγγίσεις με μέθοδο Taylor 4ης τάξης
v4=
8.000000000000000
6.917735771337531
5.862373818143200
4.829285500113885
3.814191897858181
2.813088663503036
1.822180002369149
0.837819379938648
-0.143545072253839
-1.125422220884309
-2.111328277312810
Ο χρόνος (με ακρίβεια δεκάτου του sec) στον οποίο το σώμα
φτάνει στο μέγιστο ύψος είναι t=0.7 seconds.
Ερώτημα Γ
Για να λύσουμε την διαφορική εξίσωση (6.3), αρχικά θέτουμε
y z 
και κάνοντας αντικατάσταση έχουμε
2 2 sinx
z z y e x    2 2 sinx
z z y e x   
Οπότε το πρόβλημα τώρα ανάγεται στην επίλυση του συστήματος
 , ,
y z
z f x y z
 
  
, όπου  , , 2 sin 2x
f x y z y e x z   
Για την επίλυση αυτού του συστήματος συντάσσουμε τον παρακάτω
πρόγραμμα, που χρησιμοποιεί την μέθοδο Runge –Kutta τετάρτης τάξης.
ex6c.m
clear; clc; format long;
% 0 <= x <= 1
a=0; b=1;
h=0.1;
N=(b-a)/h;
% Αρχικοποίηση πινάκων x,y,z
x=zeros(N+1,1);
y=zeros(N+1,1);
z=zeros(N+1,1);
% Αρχικές τιμές
x(1)=a;
y(1)=-0.4;
z(1)=-0.6;
% z' = f(x,y,z)
f=inline('exp(2*x).*sin(x)-2*y+2*z','x','y','z');
% Αναλυτική λύση
an=inline('exp(-x).*((-0.275-0.125*exp(2*x)).*cos(x)+
(-0.875+0.125*exp(2*x)).*sin(x))','x');
% Εφαρμογή Runge-Kutta 4ης τάξης και στις δύο διαφορικές
% εξισώσεις, ταυτόχρονα.
for i=1:N
k1=z(i);
l1=f(x(i),y(i),z(i));
k2=z(i)+0.5*h*l1;
l2=f(x(i)+0.5*h,y(i)+0.5*k1*h,z(i)+0.5*l1*h);
k3=z(i)+0.5*h*l2;
l3=f(x(i)+0.5*h,y(i)+0.5*k2*h,z(i)+0.5*l2*h);
k4=z(i)+h*l3;
l4=f(x(i)+h,y(i)+k3*h,z(i)+l3*h);
y(i+1)=y(i)+1/6*h*(k1+2*k2+2*k3+k4);
z(i+1)=z(i)+1/6*h*(l1+2*l2+2*l3+l4);
x(i+1)=x(i)+h;
end
% Υπολογισμός απόλυτου σφάλματος σε όλες τις προσεγγίσεις
err(1:N+1,1)=abs(y(1:length(y))-an(x(1:length(x))));
% Εμφάνιση των προσεγγίσεων και των αντίστοιχων σφαλμάτων
disp([blanks(11) 'y' blanks(16) 'Σφάλμα']);
disp([y err]);
Καλώντας το πρόγραμμα ex6c.m έχουμε τις ζητούμενες προσεγγιστικές λύσεις
μαζί με το σφάλμα για την κάθε μια
y Σφάλμα
-0.400000000000000 0
-0.461733342331310 0.011440198028110
-0.525559883217461 0.043272256639725
-0.588601435615746 0.091082237160140
-0.646612306037991 0.149280492099894
-0.693566655301434 0.210695208134700
-0.721151899069588 0.266065808090714
-0.718152951796747 0.303421473938629
-0.669711326630554 0.307329182929746
-0.556442902505388 0.257995371137531
-0.353398860447972 0.130205957314105

More Related Content

What's hot

Bglykeioy2014teliko
Bglykeioy2014telikoBglykeioy2014teliko
Bglykeioy2014teliko
Christos Loizos
 
1η ανάρτηση
1η ανάρτηση1η ανάρτηση
1η ανάρτηση
Παύλος Τρύφων
 
ΠΛΗ20 ΚΑΡΤΑ: ΜΑΘΗΜΑΤΙΚΗ ΕΠΑΓΩΓΗ
ΠΛΗ20 ΚΑΡΤΑ: ΜΑΘΗΜΑΤΙΚΗ ΕΠΑΓΩΓΗΠΛΗ20 ΚΑΡΤΑ: ΜΑΘΗΜΑΤΙΚΗ ΕΠΑΓΩΓΗ
ΠΛΗ20 ΚΑΡΤΑ: ΜΑΘΗΜΑΤΙΚΗ ΕΠΑΓΩΓΗ
Dimitris Psounis
 
ΠΛΗ31 ΤΕΣΤ 14
ΠΛΗ31 ΤΕΣΤ 14ΠΛΗ31 ΤΕΣΤ 14
ΠΛΗ31 ΤΕΣΤ 14
Dimitris Psounis
 
Askisiologio.gr μιγαδικοι αριθμοι
Askisiologio.gr   μιγαδικοι αριθμοιAskisiologio.gr   μιγαδικοι αριθμοι
Askisiologio.gr μιγαδικοι αριθμοι
Μάκης Χατζόπουλος
 
ασκηση 23
ασκηση 23ασκηση 23
ασκηση 23
Παύλος Τρύφων
 
Alykeioy2014teliko 140826083236-phpapp01
Alykeioy2014teliko 140826083236-phpapp01Alykeioy2014teliko 140826083236-phpapp01
Alykeioy2014teliko 140826083236-phpapp01
Christos Loizos
 
17η ανάρτηση
17η ανάρτηση17η ανάρτηση
17η ανάρτηση
Παύλος Τρύφων
 
22 0208-02-am algebra-b-lyk_lyseis
22 0208-02-am algebra-b-lyk_lyseis22 0208-02-am algebra-b-lyk_lyseis
22 0208-02-am algebra-b-lyk_lyseis
Christos Loizos
 
λύση άσκησης 24
λύση άσκησης 24λύση άσκησης 24
λύση άσκησης 24
Παύλος Τρύφων
 
Polynomials III
Polynomials IIIPolynomials III
Polynomials III
A Z
 
λυση ασκ. 14
λυση ασκ. 14λυση ασκ. 14
λυση ασκ. 14
Παύλος Τρύφων
 
μιγαδικοί αριθμοί σχέσεις μέτρων
μιγαδικοί αριθμοί σχέσεις μέτρωνμιγαδικοί αριθμοί σχέσεις μέτρων
μιγαδικοί αριθμοί σχέσεις μέτρων
Μάκης Χατζόπουλος
 
γραμμικά συστήματα δυο εξισώσεων με δυο αγνώστους
γραμμικά συστήματα δυο εξισώσεων με δυο αγνώστουςγραμμικά συστήματα δυο εξισώσεων με δυο αγνώστους
γραμμικά συστήματα δυο εξισώσεων με δυο αγνώστους
Athanasios Bakoutis
 
Algebra b 1
Algebra b 1Algebra b 1
Algebra b 1
Christos Loizos
 
Όρια - Μάθημα 1ο (Μαθηματικά Προσανατολισμού Γ' λυκείου)
Όρια - Μάθημα 1ο (Μαθηματικά Προσανατολισμού Γ' λυκείου)Όρια - Μάθημα 1ο (Μαθηματικά Προσανατολισμού Γ' λυκείου)
Όρια - Μάθημα 1ο (Μαθηματικά Προσανατολισμού Γ' λυκείου)
Vassilis Markos
 
Πολυώνυμα
ΠολυώνυμαΠολυώνυμα
Πολυώνυμα
Math Studies
 
λυση ασκ. 17
λυση ασκ. 17λυση ασκ. 17
λυση ασκ. 17
Παύλος Τρύφων
 
Αυθόρμητο σπάσιμο συμμετρίας και μηχανισμός Higgs
Αυθόρμητο σπάσιμο συμμετρίας και μηχανισμός HiggsΑυθόρμητο σπάσιμο συμμετρίας και μηχανισμός Higgs
Αυθόρμητο σπάσιμο συμμετρίας και μηχανισμός HiggsJohn Fiorentinos
 

What's hot (20)

Bglykeioy2014teliko
Bglykeioy2014telikoBglykeioy2014teliko
Bglykeioy2014teliko
 
1η ανάρτηση
1η ανάρτηση1η ανάρτηση
1η ανάρτηση
 
ΠΛΗ20 ΚΑΡΤΑ: ΜΑΘΗΜΑΤΙΚΗ ΕΠΑΓΩΓΗ
ΠΛΗ20 ΚΑΡΤΑ: ΜΑΘΗΜΑΤΙΚΗ ΕΠΑΓΩΓΗΠΛΗ20 ΚΑΡΤΑ: ΜΑΘΗΜΑΤΙΚΗ ΕΠΑΓΩΓΗ
ΠΛΗ20 ΚΑΡΤΑ: ΜΑΘΗΜΑΤΙΚΗ ΕΠΑΓΩΓΗ
 
ΠΛΗ31 ΤΕΣΤ 14
ΠΛΗ31 ΤΕΣΤ 14ΠΛΗ31 ΤΕΣΤ 14
ΠΛΗ31 ΤΕΣΤ 14
 
Askisiologio.gr μιγαδικοι αριθμοι
Askisiologio.gr   μιγαδικοι αριθμοιAskisiologio.gr   μιγαδικοι αριθμοι
Askisiologio.gr μιγαδικοι αριθμοι
 
ασκηση 23
ασκηση 23ασκηση 23
ασκηση 23
 
Alykeioy2014teliko 140826083236-phpapp01
Alykeioy2014teliko 140826083236-phpapp01Alykeioy2014teliko 140826083236-phpapp01
Alykeioy2014teliko 140826083236-phpapp01
 
17η ανάρτηση
17η ανάρτηση17η ανάρτηση
17η ανάρτηση
 
22 0208-02-am algebra-b-lyk_lyseis
22 0208-02-am algebra-b-lyk_lyseis22 0208-02-am algebra-b-lyk_lyseis
22 0208-02-am algebra-b-lyk_lyseis
 
λύση άσκησης 24
λύση άσκησης 24λύση άσκησης 24
λύση άσκησης 24
 
Polynomials III
Polynomials IIIPolynomials III
Polynomials III
 
λυση ασκ. 14
λυση ασκ. 14λυση ασκ. 14
λυση ασκ. 14
 
μιγαδικοί αριθμοί σχέσεις μέτρων
μιγαδικοί αριθμοί σχέσεις μέτρωνμιγαδικοί αριθμοί σχέσεις μέτρων
μιγαδικοί αριθμοί σχέσεις μέτρων
 
γραμμικά συστήματα δυο εξισώσεων με δυο αγνώστους
γραμμικά συστήματα δυο εξισώσεων με δυο αγνώστουςγραμμικά συστήματα δυο εξισώσεων με δυο αγνώστους
γραμμικά συστήματα δυο εξισώσεων με δυο αγνώστους
 
Migadikoi μετhodoi-askhseis
Migadikoi μετhodoi-askhseisMigadikoi μετhodoi-askhseis
Migadikoi μετhodoi-askhseis
 
Algebra b 1
Algebra b 1Algebra b 1
Algebra b 1
 
Όρια - Μάθημα 1ο (Μαθηματικά Προσανατολισμού Γ' λυκείου)
Όρια - Μάθημα 1ο (Μαθηματικά Προσανατολισμού Γ' λυκείου)Όρια - Μάθημα 1ο (Μαθηματικά Προσανατολισμού Γ' λυκείου)
Όρια - Μάθημα 1ο (Μαθηματικά Προσανατολισμού Γ' λυκείου)
 
Πολυώνυμα
ΠολυώνυμαΠολυώνυμα
Πολυώνυμα
 
λυση ασκ. 17
λυση ασκ. 17λυση ασκ. 17
λυση ασκ. 17
 
Αυθόρμητο σπάσιμο συμμετρίας και μηχανισμός Higgs
Αυθόρμητο σπάσιμο συμμετρίας και μηχανισμός HiggsΑυθόρμητο σπάσιμο συμμετρίας και μηχανισμός Higgs
Αυθόρμητο σπάσιμο συμμετρίας και μηχανισμός Higgs
 

Viewers also liked

Παραγωγη Ομοιομορφου Μαγνητικου Πεδιου
Παραγωγη Ομοιομορφου Μαγνητικου ΠεδιουΠαραγωγη Ομοιομορφου Μαγνητικου Πεδιου
Παραγωγη Ομοιομορφου Μαγνητικου ΠεδιουTasos Lazaridis
 
EM Lab Team Pro presentation
EM Lab Team Pro presentationEM Lab Team Pro presentation
EM Lab Team Pro presentationTasos Lazaridis
 
Τα Πυρηνικα Ατυχηματα στοΤσερνομπιλ και Φουκοσιμα
Τα Πυρηνικα Ατυχηματα στοΤσερνομπιλ και ΦουκοσιμαΤα Πυρηνικα Ατυχηματα στοΤσερνομπιλ και Φουκοσιμα
Τα Πυρηνικα Ατυχηματα στοΤσερνομπιλ και ΦουκοσιμαTasos Lazaridis
 
IEEE Region 8 Student and Young Professional (SYP) Congress 2014 Krakow
IEEE Region 8 Student and Young Professional (SYP) Congress 2014 KrakowIEEE Region 8 Student and Young Professional (SYP) Congress 2014 Krakow
IEEE Region 8 Student and Young Professional (SYP) Congress 2014 KrakowTasos Lazaridis
 
6 Ασκησεις Λογισμου Μεταβολων
6 Ασκησεις Λογισμου Μεταβολων6 Ασκησεις Λογισμου Μεταβολων
6 Ασκησεις Λογισμου ΜεταβολωνTasos Lazaridis
 
3D Printing - Presentation
3D Printing - Presentation3D Printing - Presentation
3D Printing - PresentationTasos Lazaridis
 

Viewers also liked (7)

Παραγωγη Ομοιομορφου Μαγνητικου Πεδιου
Παραγωγη Ομοιομορφου Μαγνητικου ΠεδιουΠαραγωγη Ομοιομορφου Μαγνητικου Πεδιου
Παραγωγη Ομοιομορφου Μαγνητικου Πεδιου
 
EM Lab Team Pro presentation
EM Lab Team Pro presentationEM Lab Team Pro presentation
EM Lab Team Pro presentation
 
Τα Πυρηνικα Ατυχηματα στοΤσερνομπιλ και Φουκοσιμα
Τα Πυρηνικα Ατυχηματα στοΤσερνομπιλ και ΦουκοσιμαΤα Πυρηνικα Ατυχηματα στοΤσερνομπιλ και Φουκοσιμα
Τα Πυρηνικα Ατυχηματα στοΤσερνομπιλ και Φουκοσιμα
 
IEEE Region 8 Student and Young Professional (SYP) Congress 2014 Krakow
IEEE Region 8 Student and Young Professional (SYP) Congress 2014 KrakowIEEE Region 8 Student and Young Professional (SYP) Congress 2014 Krakow
IEEE Region 8 Student and Young Professional (SYP) Congress 2014 Krakow
 
6 Ασκησεις Λογισμου Μεταβολων
6 Ασκησεις Λογισμου Μεταβολων6 Ασκησεις Λογισμου Μεταβολων
6 Ασκησεις Λογισμου Μεταβολων
 
3D Printing - Presentation
3D Printing - Presentation3D Printing - Presentation
3D Printing - Presentation
 
CV_LAZARIDIS_2017
CV_LAZARIDIS_2017CV_LAZARIDIS_2017
CV_LAZARIDIS_2017
 

Similar to 6 Ασκήσεις Αριθμητικής Ανάλυσης

Οι λύσεις στις 18 μαθηματικές προκλήσεις
Οι λύσεις στις 18 μαθηματικές προκλήσειςΟι λύσεις στις 18 μαθηματικές προκλήσεις
Οι λύσεις στις 18 μαθηματικές προκλήσεις
Μάκης Χατζόπουλος
 
28 9636diag paragogoi_mexri_rythmo(2015-16)
28 9636diag paragogoi_mexri_rythmo(2015-16)28 9636diag paragogoi_mexri_rythmo(2015-16)
28 9636diag paragogoi_mexri_rythmo(2015-16)
Christos Loizos
 
απειροστικός ιιι (μερκουράκης)
απειροστικός ιιι (μερκουράκης)απειροστικός ιιι (μερκουράκης)
απειροστικός ιιι (μερκουράκης)
Christos Loizos
 
9η ανάρτηση
9η ανάρτηση9η ανάρτηση
9η ανάρτηση
Παύλος Τρύφων
 
Διαγώνισμα προσομοίωσης Σumma - Union 2018 με λύσεις
Διαγώνισμα προσομοίωσης Σumma - Union 2018 με λύσειςΔιαγώνισμα προσομοίωσης Σumma - Union 2018 με λύσεις
Διαγώνισμα προσομοίωσης Σumma - Union 2018 με λύσεις
Μάκης Χατζόπουλος
 
1 7513kolegio athinon
1 7513kolegio athinon1 7513kolegio athinon
1 7513kolegio athinon
im1967
 
8η ανάρτηση
8η ανάρτηση8η ανάρτηση
8η ανάρτηση
Παύλος Τρύφων
 
15η ανάρτηση
15η ανάρτηση15η ανάρτηση
15η ανάρτηση
Παύλος Τρύφων
 
λυση ασκ. 22
λυση ασκ. 22λυση ασκ. 22
λυση ασκ. 22
Παύλος Τρύφων
 
Math pros 2020_neo_them_lyseis_l
Math pros 2020_neo_them_lyseis_lMath pros 2020_neo_them_lyseis_l
Math pros 2020_neo_them_lyseis_l
Christos Loizos
 
Math themata lyseis_(neo)_epanaliptikes_2020_f_l
Math themata lyseis_(neo)_epanaliptikes_2020_f_lMath themata lyseis_(neo)_epanaliptikes_2020_f_l
Math themata lyseis_(neo)_epanaliptikes_2020_f_l
Christos Loizos
 
Η άσκηση της ημέρας Σεπτέμβριος και Οκτώβριος 2017
Η άσκηση της ημέρας Σεπτέμβριος και Οκτώβριος 2017Η άσκηση της ημέρας Σεπτέμβριος και Οκτώβριος 2017
Η άσκηση της ημέρας Σεπτέμβριος και Οκτώβριος 2017
Μάκης Χατζόπουλος
 
2015 τριγωνομετρια
2015 τριγωνομετρια2015 τριγωνομετρια
2015 τριγωνομετρια
Stratis Malliakas
 
Απαλοιφή με οδήγηση - διανύσματα - πίνακες - πράξεις
Απαλοιφή με οδήγηση - διανύσματα - πίνακες - πράξειςΑπαλοιφή με οδήγηση - διανύσματα - πίνακες - πράξεις
Απαλοιφή με οδήγηση - διανύσματα - πίνακες - πράξεις
Manolis Vavalis
 
λύση ασκ. 21
λύση ασκ. 21λύση ασκ. 21
λύση ασκ. 21
Παύλος Τρύφων
 
Themata lyseis math_pros_2019
Themata lyseis math_pros_2019Themata lyseis math_pros_2019
Themata lyseis math_pros_2019
Christos Loizos
 
Math themata lyseis_om_(neo)_epanaliptikes_2020_l
Math themata lyseis_om_(neo)_epanaliptikes_2020_lMath themata lyseis_om_(neo)_epanaliptikes_2020_l
Math themata lyseis_om_(neo)_epanaliptikes_2020_l
Christos Loizos
 
διαγωνισμα προσομοιωσης γ΄λυκειου 2015
διαγωνισμα προσομοιωσης  γ΄λυκειου 2015διαγωνισμα προσομοιωσης  γ΄λυκειου 2015
διαγωνισμα προσομοιωσης γ΄λυκειου 2015
Μάκης Χατζόπουλος
 
λύση 20ης ασκησης
λύση 20ης ασκησηςλύση 20ης ασκησης
λύση 20ης ασκησης
Παύλος Τρύφων
 
Ασκηση 3
Ασκηση 3Ασκηση 3

Similar to 6 Ασκήσεις Αριθμητικής Ανάλυσης (20)

Οι λύσεις στις 18 μαθηματικές προκλήσεις
Οι λύσεις στις 18 μαθηματικές προκλήσειςΟι λύσεις στις 18 μαθηματικές προκλήσεις
Οι λύσεις στις 18 μαθηματικές προκλήσεις
 
28 9636diag paragogoi_mexri_rythmo(2015-16)
28 9636diag paragogoi_mexri_rythmo(2015-16)28 9636diag paragogoi_mexri_rythmo(2015-16)
28 9636diag paragogoi_mexri_rythmo(2015-16)
 
απειροστικός ιιι (μερκουράκης)
απειροστικός ιιι (μερκουράκης)απειροστικός ιιι (μερκουράκης)
απειροστικός ιιι (μερκουράκης)
 
9η ανάρτηση
9η ανάρτηση9η ανάρτηση
9η ανάρτηση
 
Διαγώνισμα προσομοίωσης Σumma - Union 2018 με λύσεις
Διαγώνισμα προσομοίωσης Σumma - Union 2018 με λύσειςΔιαγώνισμα προσομοίωσης Σumma - Union 2018 με λύσεις
Διαγώνισμα προσομοίωσης Σumma - Union 2018 με λύσεις
 
1 7513kolegio athinon
1 7513kolegio athinon1 7513kolegio athinon
1 7513kolegio athinon
 
8η ανάρτηση
8η ανάρτηση8η ανάρτηση
8η ανάρτηση
 
15η ανάρτηση
15η ανάρτηση15η ανάρτηση
15η ανάρτηση
 
λυση ασκ. 22
λυση ασκ. 22λυση ασκ. 22
λυση ασκ. 22
 
Math pros 2020_neo_them_lyseis_l
Math pros 2020_neo_them_lyseis_lMath pros 2020_neo_them_lyseis_l
Math pros 2020_neo_them_lyseis_l
 
Math themata lyseis_(neo)_epanaliptikes_2020_f_l
Math themata lyseis_(neo)_epanaliptikes_2020_f_lMath themata lyseis_(neo)_epanaliptikes_2020_f_l
Math themata lyseis_(neo)_epanaliptikes_2020_f_l
 
Η άσκηση της ημέρας Σεπτέμβριος και Οκτώβριος 2017
Η άσκηση της ημέρας Σεπτέμβριος και Οκτώβριος 2017Η άσκηση της ημέρας Σεπτέμβριος και Οκτώβριος 2017
Η άσκηση της ημέρας Σεπτέμβριος και Οκτώβριος 2017
 
2015 τριγωνομετρια
2015 τριγωνομετρια2015 τριγωνομετρια
2015 τριγωνομετρια
 
Απαλοιφή με οδήγηση - διανύσματα - πίνακες - πράξεις
Απαλοιφή με οδήγηση - διανύσματα - πίνακες - πράξειςΑπαλοιφή με οδήγηση - διανύσματα - πίνακες - πράξεις
Απαλοιφή με οδήγηση - διανύσματα - πίνακες - πράξεις
 
λύση ασκ. 21
λύση ασκ. 21λύση ασκ. 21
λύση ασκ. 21
 
Themata lyseis math_pros_2019
Themata lyseis math_pros_2019Themata lyseis math_pros_2019
Themata lyseis math_pros_2019
 
Math themata lyseis_om_(neo)_epanaliptikes_2020_l
Math themata lyseis_om_(neo)_epanaliptikes_2020_lMath themata lyseis_om_(neo)_epanaliptikes_2020_l
Math themata lyseis_om_(neo)_epanaliptikes_2020_l
 
διαγωνισμα προσομοιωσης γ΄λυκειου 2015
διαγωνισμα προσομοιωσης  γ΄λυκειου 2015διαγωνισμα προσομοιωσης  γ΄λυκειου 2015
διαγωνισμα προσομοιωσης γ΄λυκειου 2015
 
λύση 20ης ασκησης
λύση 20ης ασκησηςλύση 20ης ασκησης
λύση 20ης ασκησης
 
Ασκηση 3
Ασκηση 3Ασκηση 3
Ασκηση 3
 

More from Tasos Lazaridis

Double Clamped and Cantilever Beam Theoretical Solution and Numerical Solutio...
Double Clamped and Cantilever Beam Theoretical Solution and Numerical Solutio...Double Clamped and Cantilever Beam Theoretical Solution and Numerical Solutio...
Double Clamped and Cantilever Beam Theoretical Solution and Numerical Solutio...Tasos Lazaridis
 
Certificate_C-SQCD7LA7GW
Certificate_C-SQCD7LA7GWCertificate_C-SQCD7LA7GW
Certificate_C-SQCD7LA7GWTasos Lazaridis
 
Recommendation Letter - Elpedison
Recommendation Letter - ElpedisonRecommendation Letter - Elpedison
Recommendation Letter - ElpedisonTasos Lazaridis
 
Σφημμυ9_αυτοματος bartender
Σφημμυ9_αυτοματος bartenderΣφημμυ9_αυτοματος bartender
Σφημμυ9_αυτοματος bartenderTasos Lazaridis
 
Introduction to SOLIDWORKS SimulationXpress
Introduction to SOLIDWORKS SimulationXpressIntroduction to SOLIDWORKS SimulationXpress
Introduction to SOLIDWORKS SimulationXpressTasos Lazaridis
 

More from Tasos Lazaridis (6)

Technical Report
Technical ReportTechnical Report
Technical Report
 
Double Clamped and Cantilever Beam Theoretical Solution and Numerical Solutio...
Double Clamped and Cantilever Beam Theoretical Solution and Numerical Solutio...Double Clamped and Cantilever Beam Theoretical Solution and Numerical Solutio...
Double Clamped and Cantilever Beam Theoretical Solution and Numerical Solutio...
 
Certificate_C-SQCD7LA7GW
Certificate_C-SQCD7LA7GWCertificate_C-SQCD7LA7GW
Certificate_C-SQCD7LA7GW
 
Recommendation Letter - Elpedison
Recommendation Letter - ElpedisonRecommendation Letter - Elpedison
Recommendation Letter - Elpedison
 
Σφημμυ9_αυτοματος bartender
Σφημμυ9_αυτοματος bartenderΣφημμυ9_αυτοματος bartender
Σφημμυ9_αυτοματος bartender
 
Introduction to SOLIDWORKS SimulationXpress
Introduction to SOLIDWORKS SimulationXpressIntroduction to SOLIDWORKS SimulationXpress
Introduction to SOLIDWORKS SimulationXpress
 

6 Ασκήσεις Αριθμητικής Ανάλυσης

  • 1. ΔΗΜΟΚΡΙΤΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΡΑΚΗΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Αριθμητική Ανάλυση με χρήση Matlab ΑΝΑΣΤΑΣΙΟΣ ΛΑΖΑΡΙΔΗΣ tasoslazaridis13@gmail.com ΝΙΚΟΛΑΟΣ ΤΣΕΛΕΠΙΔΗΣ nikotsele@ee.duth.gr
  • 2. Υποεργασία 1 Ερώτημα Α Τα σημεία  0 0,x y , 1 1,x y , 2 2,x y , 3 3,x y , όπου τα ix είναι ισαπέχοντα, ανήκουν σε μία κυβική καμπύλη γραμμή. Να δειχθεί ότι η σχέση: 2 3 4 0 0 0 0 0 1 1 1 1 ( ) ... 2 3 4 f x f f f f h               (1) οδηγεί στη σχέση  3 2 1 0 1 6 3 2 6 y y y y h     , όπως οι τιμές dy dx στο  1 1,x y . Τι συμπεραίνετε; Ερώτημα Β Να δειχθεί ότι : i) 2      ii) 1 2 2      iii) 2     iv) 1 n n n n n n n n f g f f g g g g            . Λύση Ερώτημα Α Αφού τα σημεία ανήκουν σε κυβική καμπύλη, γνωρίζουμε ότι οι διαφορές 4ης και ανώτερης τάξης θα είναι ίσες με μηδέν, οπότε η παραπάνω σχέση γράφεται 2 3 0 0 0 0 1 1 1 ( ) 2 3 f x f f f h            (1.1) Υπολογίζουμε πρώτα τις διαφορές 0 1 0f y y    2 0 1 0 2 1 1 0 2 1 02f f f y y y y y y y            3 2 2 0 1 0 2 1 1 0 2 1 02f f f f f f f f f f                  3 2 2 1 1 0 3 2 1 02 3 3y y y y y y y y y y          Κάνοντας αντικατάσταση στην (1.1) έχουμε 2 3 0 0 0 0 1 1 1 ( ) 2 3 f x f f f h                1 0 2 1 0 3 2 1 0 1 1 1 2 3 3 2 3 y y y y y y y y y h                  1 0 2 1 0 3 2 1 0 1 6 6 3 2 2 3 3 6 y y y y y y y y y h            
  • 3.  3 2 1 0 1 2 9 18 11 6 y y y y h         0 3 2 1 0 1 2 9 18 11 6 f x y y y y h        (1.2) Για να βρούμε την παράγωγο στο σημείο  1 1,x y παίρνουμε τον προσεγγιστικό τύπο των Newton-Gregory       2 3 0 0 0 0 0... 1 2 3 n n i i i i f x p x f x f f f f n                                   , 0ix x ih  Όπως και προηγουμένως, οι διαφορές 4ης και ανώτερης τάξης είναι μηδέν. Παραγωγίζοντας τώρα την παραπάνω σχέση έχουμε         2 3 0 0 0 0 1 1 2 3 n n i i idp x di d f x p x f x f f f di dx h di                                  2 2 3 0 0 0 1 1 3 6 2 2 3! i i f x f i f f h                     (1.3) Στην τελευταία σχέση για 0i  παίρνουμε την σχέση (1.1), ενώ για 1i  έχουμε     2 3 0 1 0 0 0 1 1 1 2 6 f x h f x f f f h                     1 1 0 2 1 0 3 2 1 0 1 1 1 2 3 3 2 6 f x y y y y y y y y y h                  1 1 0 2 1 0 3 2 1 0 1 6 6 3 6 3 3 3 6 f x y y y y y y y y y h               1 3 2 1 0 1 6 3 2 6 f x y y y y h       η οποία είναι και η ζητούμενη σχέση. Συμπεραίνουμε, λοιπόν, ότι από τον τύπο των Newton-Gregory, μπορούμε να υπολογίσουμε την παράγωγο, όχι μόνο σε ένα σημείο, αλλά και στα τέσσερα σημεία που δίνονται, για 0ix x ih  , 0,1,2,3i  . Ερώτημα Β i) Για να αποδείξουμε την σχέση τελεστών 2      θα κάνουμε τις πράξεις στα δύο μέλη και θα δείξουμε ότι αυτά είναι ίσα. Έτσι, στο πρώτο μέλος έχουμε
  • 4.        1 1 1 1 1 1 1 1 2 2 2 2 2 n n n n n n n n n nf f f f f f f f f f                         και στο δεύτερο μέλος        1 1 1 1 1 1 2 2 1 1 1 2 2 2 n n n n n n nn n f f f f f f f f f               Παρατηρούμε ότι αυτά είναι ίσα, άρα αποδείχτηκε και η αρχική σχέση. ii) Για να δείξουμε την σχέση 1 2 2      θα ξεκινήσουμε από το πρώτο μέλος και θα καταλήξουμε στο δεύτερο. Έτσι έχουμε    1 1 1 1 2 2 2 2 1 1 1 2 2 2 2 n n n n n n n f f f f f f f                        1 2 1 1 2 2 1 2 2 nn n f f E f     iii) Για να δείξουμε την σχέση τελεστών 2     θα κάνουμε τις πράξεις και στα δύο μέλη, όπως στο ερώτημα (i), και θα δείξουμε ότι αυτά είναι ίσα. Δηλαδή,     1 1 1 1 2 1 1 1 1 1 1 2 2 ( ) 2 2 n n n n n n n n n n n n n n n n n n nn n f f f f f f f f f f f f f f f f f f f f f                                       2     iv) Τέλος, θα αποδείξουμε τη σχέση 1 n n n n n n n n f g f f g g g g            ξεκινώντας από το πρώτο μέλος για να καταλήξουμε στο δεύτερο. 1 1 1 1 1 1 1 1 n n n n n n n n n n n n n n n n n n n n n n f f f g f f g g f f g f g f g g g g g g g g                        1 1 1 1 ( ) ( )n n n n n n n n n n n n n n g f f f g g g f f g g g g g            
  • 5. Υποεργασία 2 Ερώτημα Α Τα πολυώνυμα Legendre ορίζονται από την αναδρομική σχέση      2 1 2 3 1 2 2 k k k k k P x xP x P x k k          0 1P x  και  1P x x . Να υπολογισθούν τα πολυώνυμα  2P x ,  3P x ,  4P x ,  5P x και  6P x , καθώς επίσης και οι προσεγγιστικές ρίζες του πολυωνύμου  6P x με ακρίβεια 6 10   . Ερώτημα Β Ο υπολογισμός του χρηματικού ποσού για την εξόφληση ενός δανείου με υποθήκη για ένα ορισμένο χρονικό διάστημα γίνεται από την εξίσωση ετησίου εισοδήματος  1 1 n i A P i       όπου A είναι το ποσό του δανείου, P είναι το ποσό κάθε πληρωμής και i είναι η τιμή του τόκου για κάθε περίοδο για τις n περιόδους πληρωμής. Υποθέστε ότι το δάνειο με υποθήκη ενός σπιτιού για 30 χρόνια είναι 14673.51€ και ότι ο δανειζόμενος μπορεί να πληρώσει κάθε μήνα το πολύ 132.06€. Ποια είναι η μέγιστη τιμή τόκου που μπορεί να πληρώσει ο δανειζόμενος; Λύση Ερώτημα Α Για να υπολογίσουμε τα πολυώνυμα Legendre, δημιουργούμε την αναδρομική συνάρτηση Legendre(k)η οποία είναι η εξής Legendre.m function P=Legendre(k) syms P(x); if(k==0) P(x)=1; elseif(k==1) P(x)=x; else A=(2*(k-2)+3)/((k-2)+2);
  • 6. B=((k-2)+1)/((k-2)+2); P(x)=collect(A*Legendre(k-1)*x-B*Legendre(k-2)); end end Αρχικά, δηλώνουμε το πολυώνυμο P(x) ως συμβολική συνάρτηση, που παίρνει ως όρισμα τη συμβολική μεταβλητή x και στη συνέχεια ορίζουμε τον τύπο του σύμφωνα με το k, αναδρομικά. Η εντολή collect, "συλλέγει" τις ομοβάθμιες δυνάμεις τις συμβολικής μεταβλητής x και ξαναγράφει τη συνάρτηση σε μορφή πολυωνύμου. Έτσι, το πρόγραμμα για την εμφάνιση των ζητούμενων πολυωνύμων είναι το παρακάτω LegendrePolynomials.m clear; clc; for i=0:6 fprintf(['nP' num2str(i) '(x) = ' char(Legendre(i)) 'n']); end Για i από 0 μέχρι 6 εμφανίζουμε τα αντίστοιχα πολυώνυμα Legendre, καλώντας την αναδρομική συνάρτηση Legendre(k). Καλώντας το παραπάνω πρόγραμμα, παίρνουμε τα ζητούμενα πολυώνυμα P0(x) = 1 P1(x) = x P2(x) = (3*x^2)/2 - 1/2 P3(x) = (5*x^3)/2 - (3*x)/2 P4(x) = (35*x^4)/8 - (15*x^2)/4 + 3/8 P5(x) = (63*x^5)/8 - (35*x^3)/4 + (15*x)/8 P6(x) = (231*x^6)/16 - (315*x^4)/16 + (105*x^2)/16 - 5/16 Στη συνέχεια, για να βρούμε τις ρίζες του  6P x , χρησιμοποιούμε τη μέθοδο Newton-Raphson. Γράφουμε, λοιπόν, τη συνάρτηση Newton_Raphson.m function x=Newton_Raphson(f,df,x0,tol,n_max) for i=1:n_max x=x0-f(x0)/df(x0);
  • 7. fprintf('%3.0f%20.14f%20.14fn', i,x,abs(x-x0)); if abs(x-x0)<tol break; end x0=x; end if i==n_max fprintf('Η μέθοδος Newton-Raphson δεν κατάφερε να συγκλίνει μέσα σε %3.0f επαναλήψεις', n_max); end end Επίσης, δημιουργούμε το πρόγραμμα L6_roots.m clear; clc; format long; % P6(x) f=inline('(231*x^6)/16 - (315*x^4)/16 + (105*x^2)/16 - 5/16'); % η παράγωγος του P6(x) df=inline('(693*x^5)/8 - (315*x^3)/4 + (105*x)/8'); x0=[-0.95 -0.7 -0.25 0.2 0.65 0.9]; % αρχικές προσεγγίσεις tol=1e-6; % ακρίβεια n_max=50; % μέγιστος αριθμός επαναλήψεων % προσεγγίσεις των ριζών του P6(x) for i=1:length(x0) fprintf('Προσέγγιση του x%1.0fn',i); Newton_Raphson(f,df,x0(i),tol,n_max); end Δηλώνουμε το  6P x , και την παράγωγό του ως inline συναρτήσεις, f και df αντίστοιχα. Αμέσως μετά, ορίζουμε τον x0 ως τον πίνακα με τις αρχικές προσεγγίσεις των ριζών του  6P x , εκχωρούμε στη μεταβλητή tol την επιθυμητή ακρίβεια και στη μεταβλητή n_max τον μέγιστο αριθμό των επαναλήψεων και στη συνέχεια, καλούμε την συνάρτηση Newton_Raphson, με τα αντίστοιχα ορίσματα για να προσεγγίσουμε τις ζητούμενες ρίζες. Καλώντας το παραπάνω πρόγραμμα, έχουμε Προσέγγιση του x1 1 -0.93435179648173 0.01564820351827 2 -0.93249438379747 0.00185741268426 3 -0.93246951862147 0.00002486517600 4 -0.93246951420315 0.00000000441831 Προσέγγιση του x2 1 -0.66162378161148 0.03837621838852 2 -0.66120958659591 0.00041419501557 3 -0.66120938646631 0.00000020012960 Προσέγγιση του x3 1 -0.23863116675242 0.01136883324758
  • 8. 2 -0.23861918611949 0.00001198063292 3 -0.23861918608320 0.00000000003629 Προσέγγιση του x4 1 0.23983546907135 0.03983546907135 2 0.23861953503766 0.00121593403369 3 0.23861918608323 0.00000034895443 Προσέγγιση του x5 1 0.66138947025949 0.01138947025949 2 0.66120942443396 0.00018004582553 3 0.66120938646627 0.00000003796769 Προσέγγιση του x6 1 0.94341433771749 0.04341433771749 2 0.93324471352305 0.01016962419443 3 0.93247377657111 0.00077093695194 4 0.93246951433296 0.00000426223815 5 0.93246951420315 0.00000000012981 Ερώτημα Β Η μέγιστη τιμή του τόκου που μπορεί να πληρώσει ο δανειζόμενος δίνεται από τη λύση της εξίσωσης    1 1 1 1 0 n n i i A P A P i i                 Θέτοντας    1 1 n i f i A P i        (1) το πρόβλημα ανάγεται στην εύρεση της λύσης της εξίσωσης   0f i  . Κάνοντας τις αντικαταστάσεις των μεταβλητών A=14673.51, P=132.06 και n=30*12 η σχέση (1) γράφεται ως εξής     360 1 1 14673.51 132.06 i f i i         Για την εύρεση της ρίζας της f, χρησιμοποιούμε τη μέθοδο της Διχοτόμησης. ex2b.m clear; clc; format long; f=inline('14673.51-(132.06*(1-(1+x)^(-360)))/x'); a=eps; b=0.1; tol=10^-6; if(f(a)*f(b)<0) % Bolzano για να ελέγξουμε αν όντως υπάρχει % ρίζα στο [a,b] N=ceil(log2((b-a)/tol));
  • 9. disp([blanks(2) 'Αριθμός επαναλήψεων' blanks(5)... 'Προσέγγιση' blanks(12) 'Σφάλμα']); for i=1:N x=(a+b)/2; % Εύρεση του μέσου του [a,b] και προσέγγιση % της ρίζας if (f(a)*f(x)<0) % Έλεγχος διαστήματος στο οποίο % υπάρχει η ρίζα b=x; else a=x; end if (abs(b-a)<tol) % Ελεγχος σφάλματος disp([i,x,abs(b-a)]); break; end end else fprintf('Η μέθοδος της διχοτόμησης απέτυχε, επείδη δεν υπάρχει ρίζα στο διάστημα [%f, %f]', a,b); end Το [a,b] είναι το διάστημα στο οποίο ψάχνουμε τη ρίζα της f, στη μεταβλητή tol αποθηκεύεται η επιθυμητή ακρίβεια με την οποία θέλουμε να προσεγγίσουμε τη ρίζα, και N είναι ο μέγιστος αριθμός επαναλήψεων που χρειάζονται για να πετύχουμε την επιθυμητή ακρίβεια στην προσέγγιση της ρίζας με τη μέθοδο της διχοτόμησης. *Ο τελεστής "..." δεν είναι τίποτα παραπάνω από την ένδειξη συνέχειας στην επόμενη γραμμή. Η εντολή εκτελείται κανονικά, σαν να είχε γραφτεί σε μία γραμμή. Καλώντας το παραπάνω πρόγραμμα, εμφανίζεται στο παράθυρο εντολών του MATLAB Αριθμός επαναλήψεων Προσέγγιση Σφάλμα 17.000000000000000 0.008585357666016 0.000000762939453 Τελικά, για i = 0.008585357666016, έχουμε τη μεγιστοποίηση του τόκου.
  • 10. Υποεργασία 3 Ερώτημα Α Υποθέστε ότι για τα γραμμικά συστήματα Au s και Au s , ισχύει 1 1 A A A  , όπου A και A είναι μη ιδιότυποι πίνακες (με A να αποτελεί έναν «ελαφρά-διαταραγμένο» πίνακα του A ). Να δειχθεί ότι, αν 0u  ισχύει      1 A Au u I k A u Ak A A A A        (3.1) Ερώτημα Β Έστω A ένας n n τετραγωνικός πίνακας με 1A , όπου είναι μία νόρμα πινάκων. Να δειχθεί ότι   11 1 1 1 I A A A       (3.2) Λύση Πριν απαντήσουμε στα ερωτήματα Α και Β θα αποδείξουμε κάποιες σχέσεις που θα μας φάνουν χρήσιμες παρακάτω. Γνωρίζουμε ότι νόρμα ονομάζεται μια απεικόνιση : n nM   αν για κάθε , n nA B M  ισχύουν τα ακόλουθα: 0A  (3.i) 0A  αν και μόνο αν 0A  (3.ii) cA c A  , c M  (3.iii) A B A B   (3.iv) AB A B  (3.v) Ειδικότερα τώρα για κάθε μοναδιαίο πίνακα I έχουμε (3. ) 1 v I I I I I I I I I         (3.3) Ενώ για τον 1 A που είναι ο αντίστροφος του A ,  1 AA I  έχουμε
  • 11. 1 1 1 1 1 1 1I AA A A A A A A              (3.4) Λήμμα Αν n nA M  και 1A τότε ο I A είναι αντιστρέψιμος και ισχύει     11 1I A A     (3.5) Απόδειξη Έχουμε      x I A x Ax x I A x Ax I A x Ax             x I A x A x        1I A x A x   από αυτό συνεπάγεται ότι   0I A x  για κάθε 0x  , έτσι ο πίνακας I A είναι αντιστρέψιμος. Έστω τώρα ότι 0b  και   1 x I A b    , τότε     1 1 1 I A b x b AI A x      αφού η παραπάνω σχέση ισχύει για κάθε 0b  έχουμε     1 1 0 1 sup 1b I A b I A b A         το οποίο θέλαμε να αποδείξουμε. Ερώτημα Α Έχουμε τα γραμμικά συστήματα u s  και u s  , με     και u u u  η ανισότητα 1 1      γράφεται και  k    όπου   1 k      είναι ο αριθμός ευαισθησίας, έτσι έχουμε  1 1 1k           (3.6) Εδώ ο πίνακας 1 I     είναι αντιστρέψιμος, οπότε έχουμε    1 1 u u I u u               Από το παραπάνω Λήμμα μπορούμε να γράψουμε
  • 12.   11 1 u I u           και παίρνουμε   1 11 1 1 1 u I u u                  Επομένως η παραπάνω σχέση σύμφωνα με την (3.6) γράφεται    1 u k A u k A                  1 A Au u k A u Ak A A A A       (3.7) Τέλος, πολλαπλασιάζοντας κατά μέλη τις (3.7) και (3.3) έχουμε την ζητούμενη σχέση      1 A Au u I k A u Ak A A A A        Ερώτημα B Με βάση το παραπάνω Λήμμα, θέτοντας όπου Α το –Α, η εξίσωση (3.5) γράφεται             1 11 1 1 1 1 1 1 I A A I A A I A A                 Η τελευταία σχέση είναι το δεύτερο μέλος της ανίσωσης που έχουμε να αποδείξουμε.
  • 13. Υποεργασία 4 Ερώτημα Α Να επιλύσετε το κάτωθι γραμμικό σύστημα 1 2 3 4 1 5 0 1 2 0 1 2 4 1 8 1 1 0 1 1 0 4 2 0 x x x x                                 με τη μέθοδο Jacobi, Gauss-Seidel και SOR και αρχική προσέγγιση x(0)=[0 0 0 0]T Να σχολιάσετε τη συμπεριφορά των μεθόδων. Ερώτημα Β Να επιλυθεί το κάτωθι γραμμικό σύστημα 1 2 3 1 1 111 2 3 16 10 5 655 3 2 6 100 23525 20 3 3 x x x                                με την μέθοδο που δίνει τα πιο ακριβή αποτελέσματα. Ερώτημα Γ Θεωρήστε το παρακάτω κύκλωμα
  • 14. για το οποίο με χρήση της μεθόδου Kirchoff, ο υπολογισμός του δυναμικού γίνεται με την επίλυση γραμμικού συστήματος με LU παραγοντοποίηση. Να υπολογισθεί το δυναμικό στα διάφορα σημεία. Λύση Ερώτημα Α Για το παραπάνω γραμμικό σύστημα θέτουμε 1 5 0 1 0 1 2 4 8 1 1 0 1 0 4 2 A             και 2 1 1 0 b             Οι μέθοδοι Jacobi, Gauss-Seidel και SOR είναι επαναληπτικές, άρα για να τις χρησιμοποιήσουμε πρέπει ο πίνακας Α να είναι διαγώνια υπέρτερος. Για να γίνει αυτό θεωρούμε τον επαυξημένο πίνακα A b   και κάνουμε τις ακόλουθες γραμμοπράξεις 1 3 2 3 1 5 0 1 2 8 1 1 0 1 0 1 2 4 1 0 1 2 4 2 8 1 1 0 1 1 5 0 1 1 1 0 4 2 0 1 0 4 2 0 R R R R A b                                         3 4 8 1 1 0 1 8 1 1 0 1 1 5 0 1 2 1 5 0 1 2 0 1 2 4 1 1 0 4 2 0 1 0 4 2 0 0 1 2 4 1 R R                                   Έτσι το σύστημα τώρα γράφεται 1 1A x b , όπου 1 8 1 1 0 1 5 0 1 1 0 4 2 0 1 2 4 A             και 1 1 2 0 1 b            
  • 15. Ο πίνακας Α1 τώρα είναι διαγώνια υπέρτερος αφού ισχύει , , 1, n i i i j j j i a a     για κάθε 1,2,3,4i  . Για την επίλυση του συστήματος με υπολογιστή κατασκευάζουμε τις παρακάτω συναρτήσεις jacobi.m function [x,k]=jacobi(a,b,x0,N,tol) % Επαναληπτική μέθοδος jacobi n=length(a); x(1,:)=x0'; err=10; k=1; while ((k<=N)&&(err>=tol)) for i=1:n sum=0; for j=1:i-1 sum=sum+a(i,j)*x(k,j); end for j=i+1:n sum=sum+a(i,j)*x(k,j); end x(k+1,i)=(b(i)-sum)/a(i,i); end err=norm((x(k+1,:)-x(k,:)),Inf); k=k+1; end k=k-1; x=x(k+1,:)'; end gauss_seidel.m function [x,k]=gauss_seidel(a,b,x0,N,tol) % Επαναληπτική μέθοδος Gauss-Seidel n=length(a); x(1,:)=x0'; err=10; k=1; while ((k<=N)&&(err>=tol)) for i=1:n sum=0; for j=1:i-1 sum=sum+a(i,j)*x(k+1,j); % η μόνη διαφοροποίηση % από την Jacobi end for j=i+1:n sum=sum+a(i,j)*x(k,j); end x(k+1,i)=(b(i)-sum)/a(i,i);
  • 16. end err=norm((x(k+1,:)-x(k,:)),Inf); k=k+1; end k=k-1; x=x(k+1,:)'; end SOR.m function [x,k]=SOR(a,b,x0,omega,N,tol) % Επαναληπτική μέθοδος S.O.R. (Successive Over Relaxation) n=length(a); x(1,:)=x0'; err=10; k=1; while ((k<=N)&&(err>=tol)) for i=1:n sum=0; for j=1:i-1 sum=sum+a(i,j)*x(k+1,j); end for j=i+1:n sum=sum+a(i,j)*x(k,j); end x(k+1,i)=(1-omega)*x(k,i)+omega*(b(i)-sum)/a(i,i); % Σταθμισμένος Μ.Ο. χρησιμοποιώντας τις προσεγγίσεις % των Gauss-Seidel και Jacobi end err=norm((x(k+1,:)-x(k,:)),Inf); k=k+1; end k=k-1; x=x(k+1,:)'; end 'Ολες οι παραπάνω συναρτήσεις δέχονται ως είσοδο τους πίνακες a και b, τον πίνακα x0 ο οποίος περιέχει τις αρχικές προσεγγίσεις, τον μέγιστο αριθμό επαναλήψεων N της μεθόδου και την επιθυμητή ακρίβεια. Η S.O.R. δέχεται, επίσης, ως είσοδο και το ω, από το οποίο εξαρτάται η ταχύτητα σύγκλισης στη λύση και η ακρίβεια των προσεγγίσεων. Η κάθε συνάρτηση επιστρέφει την προσέγγιση της λύσης με την αντίστοιχη μέθοδο και τον αριθμό των επαναλήψεων που χρειάστηκαν. Για την επίλυση, λοιπόν, του συστήματος με όλες τις παραπάνω μεθόδους συντάσσουμε τον παρακάτω κώδικα ex4a.m clear; clc; format long; a=[8 -1 1 0; -1 5 0 1; 1 0 4 -2; 0 -1 -2 4]; b=[1 2 0 1]'; x0=[0 0 0 0]'; % αρχική προσέγγιση
  • 17. N=50; % μέγιστος αριθμός επαναλήψεων tol=1e-6; % ακρίβεια omega=1.1; % ω ( μόνο για την S.O.R. ) disp('Λύση μεθόδου Jacobi') [x1,k1]=jacobi(a,b,x0,N,tol) % κλήση συνάρτησης jacobi disp('Λύση μεθόδου Gauss-Seidel') [x2,k2]=gauss_seidel(a,b,x0,N,tol) % κλήση συνάρτησης % gauss_seidel disp('Λύση μεθόδου S.O.R.') [x3,k3]=SOR(a,b,x0,omega,N,tol) % κλήση συνάρτησης SOR Με την εκτέλεση του προγράμματος αυτού, παίρνουμε Λύση μεθόδου Jacobi x1 = 0.146138125460885 0.344468039017405 0.175364511889264 0.423798885646905 k1 = 18 Λύση μεθόδου Gauss-Seidel x2 = 0.146137878532443 0.344467696885896 0.175365227418371 0.423799537930660 k2 = 11 Λύση μεθόδου S.O.R. x3 = 0.146137783427389 0.344467644338358 0.175365339000735 0.423799585079401
  • 18. k3 = 8 Ερώτημα Β Για την επίλυση του συστήματος, αυτού, με τα ακριβέστερα αποτελέσματα, επιλέγουμε την μέθοδο απαλοιφής κατά Gauss, με μερική οδήγηση. Για να μη χάνονται σημαντικά ψηφία κατά τη διαίρεση με τα στοιχεία οδήγησης, είναι αναγκαίο να διαιρούμε με το μέτρο του μεγαλύτερου στοιχείου της τρέχουσας στήλης. Σε αυτήν την περίπτωση, το μέτρο των τιμών των πολλαπλασιαστών πρέπει να είναι μικρότερο ή ίσο με τη μονάδα. Επομένως, είναι αναγκαίο να μετασχηματίσουμε τον πίνακα A, έτσι, ώστε τα μεγαλύτερα στοιχεία του πίνακα να βρίσκονται στη διαγώνιο. 2 2 1 1 2 2 3 3 3 3 1 6 5 16 6 10 1 1 111 33 2 3 16 6 3 2 8 10 5 655 30 20 15 65 3 2 6 200 150 120 470100 23525 20 3 3 R R R R R R R R R R                               3 1 32 1 2 20 6 3333 86 3 2 6 3 28 716 4 3 13 0 1 1 8 20 15 12 47 20 15 12 47 R R RR R R                          1 2 3 33 33 8 86 3 2 6 3 2 71 710 1 1 0 1 1 8 8 16 160 5 0 5133 1333 34 4 x x x                                      Έτσι το σύστημα τώρα γράφεται 2 2A x b , όπου 2 6 3 2 0 1 1 160 5 3 A            και 2 33 8 71 8 133 4 b              Η συνάρτηση που εφαρμόζει την μέθοδο απαλοιφής κατά Gauss υπολογιστικά, είναι η παρακάτω gauss_el.m
  • 19. function x=gauss_el(a,b) % Gauss elimination - Απαλοιφή κατά Gauss n=length(a); for k=1:n-1 for i=k+1:n a(i,k)=a(i,k)/a(k,k); for j=k+1:n a(i,j)=a(i,j)-a(i,k)*a(k,j); end b(i)=b(i)-a(i,k)*b(k); end end for i=n:-1:1 sum=0; for j=i+1:n sum=sum+a(i,j)*x(j); end x(i)=(b(i)-sum)/a(i,i); end x=x'; end Επειδή, ο A είναι διαγώνια υπέρτερος, επιχειρούμε τη επίλυση του συστήματος και με την S.O.R. Έτσι, το πρόγραμμα είναι ex4b.m clear; clc; format long; a=[6 3 2; 0 1 1; 0 5 16/3]; b=[33/8 71/8 133/4]'; x0=[0 0 0]'; % αρχική προσέγγιση ( μόνο για S.O.R ) tol=1e-14; % ακρίβεια ( μόνο για S.O.R ) N=100; % μέγιστος αριθμός επαναλήψεων ( μόνο για S.O.R ) omega=1.625; % ω ( μόνο για S.O.R. ) disp('Λύση μεθόδου S.O.R.') [x_sor,k]=SOR(a,b,x0,omega,N,tol) % κλήση συνάρτησης SOR disp('Λύση μεθόδου απαλοιφής Gauss') x_gsp=gauss_el(a,b) % κλήση συνάρτησης gauss_el (gauss % elimination) Η εκτέλεση του παραπάνω κώδικα δίνει Λύση μεθόδου S.O.R. x_sor =
  • 20. -9.312500000000007 42.250000000000007 -33.375000000000014 k = 76 Λύση μεθόδου απαλοιφής Gauss x_gsp = -9.312500000000005 42.250000000000028 -33.375000000000028 Ερώτημα Γ Για να λύσουμε το παραπάνω κύκλωμα επιλέγουμε την μέθοδο των βρόχων. Το κύκλωμα έχει τους τρεις βρόχους ABFGA, BCEFB, CDEC. Έστω ότι από αυτούς διέρχονται τα ρεύματα J1, J2 και J3 αντίστοιχα. Για τον βρόχο ABFGA έχουμε  1 1 2 12 5 3 15 0J J J J      1 210 5 15J J  (5.3.1) Για τον βρόχο BCEFB έχουμε    2 2 3 2 2 13 2 4 5 0J J J J J J       1 2 35 14 2 0J J J    (5.3.2) Για τον βρόχο ABFGA έχουμε  3 3 3 22 2 0J J J J     2 32 5 0J J   (5.3.2) Επομένως έχουμε να λύσουμε το γραμμικό σύστημα J B   1 2 3 10 5 0 15 5 14 2 0 0 2 5 0 J J J                               Παρατηρούμε ότι ο πίνακας Α είναι συμμετρικός, επομένως αν εφαρμόζαμε την LU παραγοντοποίηση, θα συμπεραίναμε ότι ο πίνακας U είναι ο ανάστροφος του πίνακα L. Για το λόγο αυτό, επιλύουμε το παραπάνω σύστημα με τη μέθοδο Choleski ( LLT ) . Αυτή η αλγοριθμική διαδικάσία εκφράζεται παρακάτω σε κώδικα MATLAB ex4c.m
  • 21. clear; clc; format short; % Μέθοδος choleski ( A=LL' ) a=[10 -5 0; -5 14 -2; 0 -2 5]; b=[15 0 0]'; n=length(a); l(1,1)=sqrt(a(1,1)); % 1ο στοιχείο 1ης στήλης for j=2:n l(j,1)=a(j,1)/l(1,1); % στοιχεία 1ης στήλης ( από γραμμή 2 % μέχρι n ) end for i=2:(n-1) sum=0; for k=1:(i-1) sum=sum+l(i,k)^2; % βοηθητικά αθροίσματα διαγώνιων % στοιχείων end l(i,i)=sqrt(a(i,i)-sum); % διαγώνια στοιχεία for j=(i+1):n sum2=0; for k=1:(i-1) sum2=sum2+l(j,k)*l(i,k); % βοηθητικά αθροίσματα % των υποδιαγώνιων στοιχείων end l(j,i)=(1/l(i,i))*(a(j,i)-sum2); % υποδιαγώνια % στοιχεία end end sum3=0; for k=1:(n-1) sum3=sum3+l(n,k)^2; % βοηθητικό άθροισμα τελευταίου % στοιχείου end l(n,n)=sqrt(a(n,n)-sum3); % τελευταίο στοιχείο l % προς τα εμπρός αντικατάσταση Ly=b y(1)=b(1)/l(1,1); for i=2:n sum=0; for j=1:(i-1) sum=sum+l(i,j)*y(j); % βοηθητικό άθροισμα για προς τα % εμπρός αντικατάσταση end y(i)=(b(i)-sum)/l(i,i); % υπολογισμός των στοιχείων του y end % προς τα πίσω αντικατάσταση L'x=y x(n)=y(n)/l(n,n); for i=(n-1):-1:1
  • 22. sum=0; for j=(i+1):n sum=sum+l(j,i)*x(j); % βοηθητικό άθροισμα για προς τα % πίσω αντικατάσταση end x(i)=(y(i)-sum)/l(i,i); % υπολογισμός των στοιχείων του x end Τα αποτελέσματα που δίνονται από την εκτέλεση του παραπάνω κώδικα είναι l = 3.1623 0 0 -1.5811 3.3912 0 0 -0.5898 2.1569 x = 1.8505 0.7009 0.2804 Έχουμε βρει ότι 1 1.8505J A , 2 0.7009J A , 3 0.2804J A , επομένως τα ρεύματα σε κάθε κλάδο είναι 1 1.8505ABI J A  2 0.7009BCI J A  3 0.2804CDI J A  3 0.2804DFI J A  2 3 0.4206CEI J J A   2 0.7009EFI J A  1 2 1.1495BFI J J A   1 1.8505FGI J A  Θεωρώντας ως γείωση τον κόμβο F, 0FV  , έχουμε 5 5.7477 5 B BF B BF B V I V I V V      
  • 23. 3 3.6449 3 B C BC C B BC C V V I V V I V V          4 2.8037 4 E EF E EF E V I V I V V       2 3.0842 2 C D CD D C CD D V V I V V I V V          3 5.5514 3 G FG G FG G V I V I V V           2 9.4486 2 A B AB A B AB A V V I V V I V V          Υποεργασία 5 Ερώτημα Α Να υπολογισθούν με τη μέθοδο προσδιοριστέων συντελεστών οι τιμές των παραμέτρων 0 1 0 1, , ,a a b b του προσεγγιστικού τύπου       0 1 2 0 0 1 1 0 0 1 1 x x f x dx h a f a f h b f b f     (5.1) όπου ( )i if f x  είναι η τιμή της παραγώγου της συνάρτησης  f x στο σημείο x και 0ix x ih  , 0,1h  . Ερώτημα Β Να υπολογισθεί το ολοκλήρωμα 3 2 0 sin( ) 1 x e x I dx x   με ακρίβεια εs=0.5% χρησιμοποιώντας τη μέθοδο ολοκλήρωσης Romberg. Τα αποτελέσματα να παρασταθούν γραφικά σε ένα σύστημα ορθογωνίων συντεταγμένων με κάθετο άξονα το αληθές ποσοστιαίο σχετικό σφάλμα και οριζόντιο άξονα τον αριθμό των διαστημάτων για τον υπολογισμό των ολοκληρωμάτων. Να υπολογισθεί η αναλυτική λύση και να χρησιμοποιηθεί για τον υπολογισμό του αληθούς σφάλματος εt του αποτελέσματος που προκύπτει από την ολοκλήρωση Romberg. Να ελεγχθεί αν το σφάλμα εt είναι μικρότερο από το κριτήριο τερματισμού εs. Λύση Ερώτημα Α Για   1f x  , έχουμε   0f x  , οπότε η (5.1) γράφεται   0 1 0 1 x x dx h a a    1 0 1ox x h a a   (5.1.1)
  • 24. Για  f x x , έχουμε   1f x  , οπότε η (5.1) γράφεται     0 1 2 0 0 1 1 0 1 x x xdx h x a x a h b b         2 2 20 1 0 0 1 1 0 1 2 x x h x a x a h b b      (5.1.2) Για   2 f x x , έχουμε   2f x x  , οπότε η (5.1) γράφεται     0 1 2 2 2 2 0 0 1 1 0 0 1 12 2 x x x dx h x a x a h x b x b         3 3 2 2 20 1 0 0 1 1 0 0 1 12 2 3 x x h x a x a h x b x b       (5.1.3) Για   3 f x x , έχουμε   2 3f x x  , οπότε η (5.1) γράφεται     0 1 3 3 3 2 2 2 0 0 1 1 0 0 0 13 3 x x x dx h x a x a h x b x b         4 4 3 3 2 2 20 1 0 0 1 1 0 0 0 13 3 4 x x h x a x a h x b x b       (5.1.4) Για να βρούμε τώρα τους συντελεστές 0 1 0 1, , ,a a b b αρκεί να λύσουμε το σύστημα των εξισώσεων (5.1.1), (5.1.2), (5.1.3), (5.1.4). Κάνοντας την αντικατάσταση 1 0x x h  και μετά από πράξεις καταλήγουμε στο σύστημα 0 1 0 0 1 0 1 1 1 1 1 2 3 6 2 1 3 4 a a a b b a b a b                    0 1 0 1 1 2 1 2 1 12 1 12 a a b b                  Έτσι ο προσεγγιστικός τύπος κάνοντας αντικατάσταση γράφεται       0 1 2 0 1 0 1 2 12 x x h h f x dx f f f f       Ερώτημα Β Η έκφραση της μεθόδου Romberg σε κώδικα MATLAB είναι η παρακάτω ex5b.m clear; clc;
  • 25. format long; f = @(x) (exp(x).*sin(x))./(1+(x.^2)); I = integral(f,0,3); % I = 2.881637273055190 % fun=inline('(exp(x)*sin(x))/(1+(x^2))'); a=0.0; b=3.0; n=4; % αριθμός διαστημάτων m=zeros(1,n); err=zeros(1,n); Q=zeros(n,n); R=zeros(n,n); h=b-a; Q(1,1)=h*(f(a)+f(b))/2; % 1η προσέγγιση τραπεζίου || % m = 1 = 2^(i-1) || i = 1 R(1,1)=Q(1,1); m(1)=1; err(1)=abs((I-Q(1,1))/I); for i=2:n % αριθμός προσέγγισης sum=0.0; m(i)=2^(i-1); % αριθμός διαστημάτων || % i = 2,...,n προσέγγιση for k=1:2^(i-2) sum=sum+f(a+(k-0.5)*h); end Q(2,1)=0.5*(Q(1,1)+h*sum); % 2η προσέγγιση τραπεζίου for j=2:i Q(2,j)=((4^(j-1))*Q(2,j-1)-Q(1,j-1))/((4^(j-1))-1); % Εφαρμογή προεκβολής Richardson end h=h/2; for j=1:i R(i,j)=Q(2,j); Q(1,j)=Q(2,j); end err(i)= abs((I - R(i,i))/I); if ( err(i) < 0.5/100 ) break; end end R
  • 26. plot (m(1:i),100*err(1:i)); xlabel('Αριθμός διαστημάτων ( m )'); ylabel('Ποσοστιαίο Σχετικό Σφάλμα ( 100*err )'); Αρχικά, δηλώνουμε την ολοκληρωτέα συνάρτηση   2 sin( ) 1 x e x f x x   με έναν τρόπο που θυμίζει δείκτη ( pointer ), για να χρησιμοποιήσουμε τη συνάρτηση integral ( ) του MATLAB, έτσι ώστε να υπολογίσουμε την αναλυτική λύση του ολοκληρώματος   3 0 I f x dx  Στη συνέχεια, δημιουργούμε τους πίνακες (1 x n) err και m, στους οποίους θα αποθηκευτούν τα σχετικά σφάλματα και ο αριθμοί των υποδιαστημάτων για την κάθε προσέγγιση, έτσι ώστε να μπορούμε να τα αναπαραστήσουμε γραφικά μετά την εφαρμογή της μεθόδου. Καλώντας το πρόγραμμα ex5b.m παίρνουμε R = 0.425170669873051 0 0 0 2.275875663789020 2.892777328427676 0 0 0 0 0 0 0 0 0 0 και εμφανίζεται και το παρακάτω γράφημα
  • 27. Υποεργασία 6 Ερώτημα Α Να μελετηθεί η ευστάθεια της μεθόδου    1 1 1 14 5 2 , 2 ,i i i i i i iy y y h f x y hf x y         , 1,2,..., 1i n  με αρχικές τιμές 0y , 1y . Ερώτημα B Ένα σώμα μάζας m=0.11kg που έχει εκτοξευθεί κατακόρυφα (προς τα άνω) με αρχική ταχύτητα v(0)=8m/sec χάνει ταχύτητα εξαιτίας της δύναμης βαρύτητας Fg=-mg και της αντίστασης του αέρα Fr=-kv2, όπου g=9.81m/sec2 και k=0.002kg/m. Η διαφορική εξίσωση της ταχύτητας ορίζεται ως 2 mv mg kv    (6.2) Να υπολογισθεί η ταχύτητα μετά από 0.1, 0.2, …, 1.0 sec χρησιμοποιώντας τη μέθοδο Taylor δευτέρας και τετάρτης τάξης. Να υπολογισθεί επίσης με ακρίβεια δεκάτου του sec ο χρόνος στον οποίο το σώμα φθάνει στο μέγιστο ύψος και αρχίζει να κατέρχεται χρησιμοποιώντας τη μέθοδο Taylor τετάρτης τάξης. Ερώτημα Γ Να υπολογισθεί μία προσεγγιστική λύση του συστήματος συνήθων διαφορικών εξισώσεων 2 2 sinx y y y e x    , 0 1x  , (0) 0.4y   , (0) 0.6y   (6.3) με χρήση της μεθόδου Runge-Kutta τετάρτης τάξης με βήμα h=0.1. Να συγκριθούν οι προσεγγιστικές λύσεις με τις αντίστοιχες θεωρητικές λύσεις του συστήματος. 1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2 0 10 20 30 40 50 60 70 80 90 Αριθμός διαστημάτων ( m ) ΠοσοστιαίοΣχετικόΣφάλμα(100*err)
  • 28. Λύση Ερώτημα Α Για να εξετάσουμε την ευστάθεια της παραπάνω μεθόδου, παίρνουμε το χαρακτηριστικό της πολυώνυμο   2 4 5 0 1 5 0z z z z       το οποίο έχει δύο απλές ρίζες, 1 1z  και 2 5z   . Έτσι συμπεραίνουμε ότι η μέθοδος δεν είναι ευσταθής, αφού για να είναι πρέπει οι απόλυτες τιμές των χαρακτηριστικών ριζών να είναι σε απόλυτη τιμή μικρότερες ή ίσες με την μονάδα, να υπάρχει μία χαρακτηριστική ρίζα σε απόλυτη τιμή ίση με την μονάδα και να είναι απλές. Ερώτημα Β Για ευκολία, θέτουμε k A m   , έτσι η σχέση (6.2) γράφεται  2dv g Av f v dt     (6.2.1) Υπολογίζουμε τις παραγώγους της f   2 dv f v Av dt   (6.2.1)    2 3 2 2f v Avg A v    (6.2.2)   2 2 2 6 dv dv f v Ag A v dt dt     (6.2.1)    2 2 2 3 4 2 8 6f v Ag A gv A v    (6.2.3)   2 3 3 16 24 dv dv f v A gv A v dt dt     (6.2.1)    2 2 3 3 4 5 16 40 24f v A g v A gv A v    (6.2.4) Γνωρίζουμε ότι για την μέθοδο Taylor δευτέρας και τετάρτης τάξης οι τελεστές είναι αντίστοιχα 2 2 i i h T f f   4 2 3! 4! i i i i h h h T f f f f      Αντικαθιστώντας τις παραγώγους από τις σχέσεις (6.2.2), (6.2.3), (6.2.4) οι τελεστές γράφονται 2 2 3 2 i i iT g Ahgv Av A hv      2 2 2 2 2 2 2 3 3 3 3 3 2 4 4 3 5 4 2 1 4 2 5 3 T T Ah g A h v g A g vh A gv h A h v A h v       Στη συνέχεια, καλούμε το πρόγραμμα T2_T4.m clear; clc; syms T2(v,h,g,A) syms T4(v,h,g,A)
  • 29. T2(v,h,g,A)=-g-h*A*g*v+A*(v^2)+h*(A^2)*(v^3); T4(v,h,g,A)=T2(v,h,g,A)+(1/3)*(h^2)*A*(g^2) +(2/3)*(h^3)*(A^2)*(g^2)*v -(4/3)*(h^2)*(A^2)*g*(v^2) -(5/3)*(h^3)*(A^3)*g*(v^3) +(h^2)*(A^3)*(v^4) +(A^4)*(h^3)*(v^5); k=0.002; m=0.11; A=-k/m; h=0.1; g=9.81; T2(v,h,g,A) T4(v,h,g,A) και παίρνουμε πολυώνυμα T2(v) και T4(v) ans = v^3/30250 - v^2/55 + (981*v)/55000 - 981/100 ans = v^5/9150625000 - v^4/16637500 + (110327*v^3)/3327500000 - (137827*v^2)/7562500 + (270095787*v)/15125000000 - 539870787/55000000 Έτσι ο κώδικας για το ερώτημα Β είναι ex6b.m clear; clc; format long; a=0.0; b=1.0; h=0.1; t=a:h:b; N=(b-a)/h; v2=zeros(N+1,1); v4=zeros(N+1,1); v0=8.0; v2(1)=v0; v4(1)=v0; for i=1:N v2(i+1)=v2(i)+h*(-981/100+(981/55000)*v2(i)
  • 30. -(1/55)*(v2(i)^2) +(1/30250)*(v2(i)^3)); v4(i+1)=v4(i)+h*(-539870787/55000000 +(270095787/15125000000)*v4(i) -(137827/7562500)*(v4(i)^2) +(110327/3327500000)*(v4(i)^3) -(1/16637500)*(v4(i)^4) +(1/9150625000)*(v4(i)^5)); end disp('Προσεγγίσεις με μέθοδο Taylor 2ης τάξης'); disp('v2='); disp(v2); disp('Προσεγγίσεις με μέθοδο Taylor 4ης τάξης'); disp('v4='); disp(v4); [k,l]=min(v4(v4>0)); disp(['Ο χρόνος (με ακρίβεια δεκάτου του sec) στον οποίο το σώμα φτάνει στο μέγιστο ύψος είναι t=' num2str(t(l)) ' seconds.']); Εκτελώντας το παραπάνω πρόγραμμα, εμφανίζονται στο παραθύρο εντολών του MATLAB τα παρακάτω αποτελέσματα Προσεγγίσεις με μέθοδο Taylor 2ης τάξης v2= 8.000000000000000 6.918598016528925 5.864002158340236 4.831607045208235 3.817153326285394 2.816653494168475 1.826326638362889 0.842539789599583 -0.138246127337295 -1.119527465967416 -2.104807737556353 Προσεγγίσεις με μέθοδο Taylor 4ης τάξης v4= 8.000000000000000 6.917735771337531 5.862373818143200 4.829285500113885 3.814191897858181 2.813088663503036 1.822180002369149 0.837819379938648 -0.143545072253839 -1.125422220884309 -2.111328277312810
  • 31. Ο χρόνος (με ακρίβεια δεκάτου του sec) στον οποίο το σώμα φτάνει στο μέγιστο ύψος είναι t=0.7 seconds. Ερώτημα Γ Για να λύσουμε την διαφορική εξίσωση (6.3), αρχικά θέτουμε y z  και κάνοντας αντικατάσταση έχουμε 2 2 sinx z z y e x    2 2 sinx z z y e x    Οπότε το πρόβλημα τώρα ανάγεται στην επίλυση του συστήματος  , , y z z f x y z      , όπου  , , 2 sin 2x f x y z y e x z    Για την επίλυση αυτού του συστήματος συντάσσουμε τον παρακάτω πρόγραμμα, που χρησιμοποιεί την μέθοδο Runge –Kutta τετάρτης τάξης. ex6c.m clear; clc; format long; % 0 <= x <= 1 a=0; b=1; h=0.1; N=(b-a)/h; % Αρχικοποίηση πινάκων x,y,z x=zeros(N+1,1); y=zeros(N+1,1); z=zeros(N+1,1); % Αρχικές τιμές x(1)=a; y(1)=-0.4; z(1)=-0.6; % z' = f(x,y,z) f=inline('exp(2*x).*sin(x)-2*y+2*z','x','y','z'); % Αναλυτική λύση an=inline('exp(-x).*((-0.275-0.125*exp(2*x)).*cos(x)+ (-0.875+0.125*exp(2*x)).*sin(x))','x'); % Εφαρμογή Runge-Kutta 4ης τάξης και στις δύο διαφορικές % εξισώσεις, ταυτόχρονα. for i=1:N k1=z(i); l1=f(x(i),y(i),z(i)); k2=z(i)+0.5*h*l1; l2=f(x(i)+0.5*h,y(i)+0.5*k1*h,z(i)+0.5*l1*h); k3=z(i)+0.5*h*l2; l3=f(x(i)+0.5*h,y(i)+0.5*k2*h,z(i)+0.5*l2*h); k4=z(i)+h*l3; l4=f(x(i)+h,y(i)+k3*h,z(i)+l3*h); y(i+1)=y(i)+1/6*h*(k1+2*k2+2*k3+k4); z(i+1)=z(i)+1/6*h*(l1+2*l2+2*l3+l4);
  • 32. x(i+1)=x(i)+h; end % Υπολογισμός απόλυτου σφάλματος σε όλες τις προσεγγίσεις err(1:N+1,1)=abs(y(1:length(y))-an(x(1:length(x)))); % Εμφάνιση των προσεγγίσεων και των αντίστοιχων σφαλμάτων disp([blanks(11) 'y' blanks(16) 'Σφάλμα']); disp([y err]); Καλώντας το πρόγραμμα ex6c.m έχουμε τις ζητούμενες προσεγγιστικές λύσεις μαζί με το σφάλμα για την κάθε μια y Σφάλμα -0.400000000000000 0 -0.461733342331310 0.011440198028110 -0.525559883217461 0.043272256639725 -0.588601435615746 0.091082237160140 -0.646612306037991 0.149280492099894 -0.693566655301434 0.210695208134700 -0.721151899069588 0.266065808090714 -0.718152951796747 0.303421473938629 -0.669711326630554 0.307329182929746 -0.556442902505388 0.257995371137531 -0.353398860447972 0.130205957314105