SlideShare a Scribd company logo
1 of 32
Download to read offline
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ
Διατμηματικό Πρόγραμμα Μεταπτυχιακών Σπουδών
Μαθηματικά των Υπολογιστών και των Αποφάσεων
Αριθμητικές Μέθοδοι και
Υπολογιστικά Εργαλεία
Φοιτήτρια:
Σοφία Τσιώπου
1
Περιεχόμενα
1 ΄Ασκηση1 3
1.1 Ερώτημα 1α . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Eρώτηµα 1β . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Eρώτηµα 1γ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2 ΄Ασκηση 2 6
2.1 Eρώτηµα 2α . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2 Eρώτηµα 2β . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3 Eρώτηµα 2γ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3 ΄Ασκηση 3 13
3.1 Eρώτηµα 3α . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.2 Eρώτηµα 3β . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.3 Eρώτηµα 3γ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.4 Eρώτηµα 3δ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.5 Eρώτηµα 3ε . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4 ΄Ασκηση 4 18
4.1 Eρώτηµα 4α . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4.2 Eρώτηµα 4β . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
5 ΄Ασκηση 5 19
5.1 Eρώτηµα 5α . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
5.2 Ερώτηµα 5β . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
6 ΄Ασκηση 6 22
6.1 Eρώτηµα 6α . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
6.2 Ερώτηµα 6β . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
6.3 Eρώτηµα 6γ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
7 ΄Ασκηση 9 27
7.1 Eρώτηµα 9β . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2
1 ΄Ασκηση1
1.1 Ερώτημα 1α
Η ακρίβεια του υπολογιστή είναι γνωστή ως το ῾ἑψιλον της μηχανής᾿᾿ και δίνεται
από το παρακάτω πρόγραμμα στη Matlab:
1 %Akriveia ypologisth
2 acc=1.0;
3 while (acc+1.0>1.0);
4 acc=acc/2.0;
5 end
6 acc=2.0*acc;
7 disp('H akriveia toy ypologisth einai:')
8 disp(acc);
1 >> Akriveia
2 H akriveia toy ypologisth einai:
3 2.2204e−16
Ορισµός:Το εM της µηχανής είναι ο ελάχιστος θετικὀς αριθµός για τον οποίο
ισχύει οτι το 1+ε είναι µεγαλύτερο του 1:
εM := argminε 0{fl(1 + ε) 1}
H Matlab διαθέτει τη µεταβλητή eps για τον υπολογισµό της ακρίβειας.
1.2 Eρώτηµα 1β
Θεωρὠ τη συνάρτηση f : → µε τύπο:
f(x) = x2
− 10 ∗ x + 16
Το γράφηµα της συνάρτηση είναι:
3
Eφαρµόζω τη µέθοδο της διχοτόµησης στο διάστηµα [-7,3] (Bisection.m) και
τα αποτελέσµατα που παίρνω παρουσιάζονται παρακάτω:
1 >> Bisection( −7,3,5 )
2 iter =23
3
4 ans =2.0000
5
6 >> Bisection( −7,3,7 )
7 iter =29
8
9 ans =2.0000
10
11 >> Bisection( −7,3,10 )
12 iter =39
13
14 ans =2.0000
15
16 >> Bisection( −7,3,12 )
17 iter =45
18
19 ans =2.0000
Στο script Εpanalhpsh υπολογίζεται το πλήθος των επαναλήψεων στο διάστηµα
[-7,3] για τις διάφορες τιµές του ε από τον τύπο
ρ = log2 (b − α) −1
.
1 >> Epanalhpsh( −7,3,5 )
2 ans =22
4
3
4 >> Epanalhpsh( −7,3,7 )
5 ans =29
6
7 >> Epanalhpsh( −7,3,10 )
8 ans =39
9
10 >> Epanalhpsh( −7,3,12 )
11 ans =45
Παρατηρείται οτι το πλήθος τον επαναλήψεων που απαιτειται συµφωνεί µε τον
τύπο.
1.3 Eρώτηµα 1γ
Η µέθοδος της διχοτόµησης βασίζεται στο θεώρηµα του Bolzano και αφορά
συνεχείς µεταβλητές.
Θεώρηµα Bolzano: Αν f(x) ∈ C[α, b] και αν f(α) ∗ f(b) 0 τότε για κάποιο
ξ ∈ (a, b) ισχύει f(ξ) = 0
H µέθοδος της διχοτόµησης υποδιπλασιάζει κάθε φορά το διάστηµα για να βρεί
µία προσέγγιση της ρίζας µε µία δεδοµένη ακρίβεια ε.Δηλαδή σε κάθε επανάληψη
της µεθόδου το µήκος του διαστήµατος της ρίζας υπολογίζεται από τον τύπο:
bk+1 − αk+1 =
b − α
2k
(1)
για k = 1.2, .... και bk+1, αk+1 τα άκρα του τελευταίου διαστήµατος και α.b
τα άκρα του αρχικού διαστήµατος.΄Εστω οτι στη ν-οστή επανάληψη το σφάλµα
είναι |xk − ξ| = |αν +bν
2 − ξ|.To ξ είναι ένα εσωτερικό σηµείο του διαστήµατος
[αν, bν] ,εποµένως η λύση ξ θα απέχει από το µέσο (αν +bv)
2 κατά µία απόσταση
που είναι µικρότερη από το µισό του µήκους του διαστήµατος [αν, bν].΄Αρα, θα
ισχύει |xν − ξ| ≤ bv−αν
2 .Aπό τη σχέση (1) θα ισχύει:
|xv − ξ| ≤
b − α
2ν
Για δεδοµένη ακρίβεια θα πρέπει να ισχύει :
b − α
2ν
≤ ε
⇒ 2v
≥ (b − α) ∗ ε−1
⇒ v ≥
log((b − α)ε−1
log2
⇒ v ≥ log2((b − α)ε−1
)
Eποµένως,το ελάχιστο πλήθος επαναλήψεων που απαιτούνται για να βρούµε µία
προσέγγιση της λύσης είναι:
ρ = log2 (α − b) −1
5
2 ΄Ασκηση 2
2.1 Eρώτηµα 2α
Θεωρώ µία συνάρτηση f : → µε τύπο:
f(x) = x2
− 2 ∗ x − 35
µε την αντίστοιχη function:
1 function [y] = func( x )
Παρακάτω δίνεται το γράφηµα της συνάρτησης µε προσθετικό και πολλαπλασι-
αστικό θόρυβο απο κανονική µε τυπική απόκλιση 0.75 και 1 αντίστοιχα.
6
Στη συνέχεια µε τις παρακάτω συναρτἠσεις τρέχουµε τη µέθοδο της διχοτόµησης
µε προσθετικό και πολλαπλασιαστικό θόρυβο αντίστοιχα.
1 function [ root,iter]=BIS1( a,b,k,s )
2 function [ root,iter] = BIS2( a,b,k,s )
7
H κάθε συνάρτηση παίρνει σαν όρισµα τα άκρα του διαστήµατος,την ακρίβεια και
την τυπική απόκλιση. Με τα script epanbis1 και epanbis2 τρέχω την κάθε µέθοδο
για µία συγκεκριµένη ακρίβεια και τυπική απόκλιση 50 φορές ώστε να πάρω ένα
δείγµα τιµών για αυτό το ζεύγος και στη συνέχεια βρίσκω το δειγµατικό µέσο.Η
κάθε µέθοδος εκτελείται για 7 διαφορετικές τυπικές αποκλίσεις και ακρίβεια 0.5 ∗
10(−k) µε k = 1, 2..., 10.
Πίνακας της Διχοτόµησης µε προσθετικό θόρυβο:
0 1 2 3 4 5
0.05 6.9982 6.9961 6.9954 6.9933 6.9949
0.15 6.9828 6.9753 6.9821 6.9757 6.9801
0.25 6.9861 6.9676 6.9731 6.9592 6.9672
0.50 6.9681 6.9777 6.9812 6.9791 6.9672
0.75 6.9358 6.9852 6.9553 6.9775 6.9529
0.90 6.9567 6.9118 6.9463 6.9609 6.8502
1 6.9513 6.8698 6.8328 6.9475 6.9554
0 6 7 8 9 10
0.05 6.9952 6.9971 6.9948 6.9971 6.9963
0.15 6.9821 6.9760 6.9823 6.9753 6.9870
0.25 6.9671 6.9685 6.9778 6.9758 6.9677
0.50 6.9856 6.9854 6.9668 6.9743 6.9664
0.75 6.9944 6.9432 6.9843 6.9536 6.9616
0.90 6.9449 6.9137 6.9637 6.9142 6.9072
1 6.9101 6.9971 6.9323 6.9355 6.9046
Πίνακας της Διχοτοµησης µε πολλαπλασιαστικό θόρυβο:
0 1 2 3 4 5
0.05 6.9980 7.0002 7.0000 7.0000 7.0000
0.15 6.9980 7.0002 7.0000 7.0000 7.0000
0.25 6.9970 7.0002 7.0000 7.0000 7.0000
0.50 6.9953 7.0004 7.0000 7.0000 7.0000
0.75 7.0007 7.0010 6.9999 7.0000 7.0000
0.90 7.0005 7.0004 6.9999 7.0000 7.0000
1 7.0001 7.0017 7.0001 7.0000 7.0000
8
0 6 7 8 9 10
0.05 7.0000 7.0000 7.0000 7.0000 7.0000
0.15 7.0000 7.0000 7.0000 7.0000 7.0000
0.25 7.0000 7.0000 7.0000 7.0000 7.0000
0.50 7.0000 7.0000 7.0000 7.0000 7.0000
0.75 7.0000 7.0000 7.0000 7.0000 7.0000
0.90 7.0000 7.0000 7.0000 7.0000 7.0000
1 7.0000 7.0000 7.0000 7.0000 7.0000
2.2 Eρώτηµα 2β
Δηµιουργώ 2 function για τη Newton µία για προσθετικό και µία
για πολλαπλασιαστικό και αντίστοιχα για τη µέθοδο Secant και
επαναλαµβάνεται η διαδικασία που περιγράφηκε στο Ερώτηµα α.
1 function [ root,tot] = New_noise1(x0,e,s,MIT )
2 function [ root,tot] = New_noise2(x0,e,s,MIT )
3 function[root]=sec_noise1(x0,x1,e,s,MIT)
4 function[root]=sec_noise2(x0,x1,e,s,MIT)
Πίνακας για τη µέθοδο Newton µε προσθετικό θόρυβο:
0 1 2 3 4 5
0.05 6.9995 6.9997 6.9996 6.9997 6.9998
0.15 6.9996 7.0015 7.0018 7.0002 7.0013
0.25 7.0012 6.9972 7.0006 7.0011 6.9966
0.50 7.0096 6.9979 7.0060 7.0028 6.9910
0.75 6.9970 7.0142 7.0059 7.0056 7.0093
0.90 7.0148 7.0050 7.0041 6.9828 7.0031
1 7.0065 6.9964 7.0003 7.0104 6.9944
0 6 7 8 9 10
0.05 7.0004 6.9999 7.0000 7.0008 6.9998
0.15 7.0012 6.9972 7.0011 7.0016 7.0021
0.25 7.0066 7.0029 7.0011 6.9994 7.0021
0.50 7.0043 6.9886 7.0113 7.0014 6.9973
0.75 6.9751 7.0057 7.0010 7.0104 6.9999
0.90 7.0049 7.0025 6.9977 6.9963 7.0209
1 7.0056 7.0238 7.0087 7.0133 6.9925
Πίνακας για τη µέθοδο Newton µε πολλαπλασιαστικό θόρυβο:
9
0 1 2 3 4 5
0.05 7.0000 7.0000 7.0000 7.0000 7.0000
0.15 6.9992 6.9999 7.0000 7.0000 7.0000
0.25 7.0014 7.0001 7.0000 7.0000 7.0000
0.50 7.0068 6.7614 6.9999 6.7600 6.7600
0.75 6.7654 5.8001 6.5224 6.7600 6.7600
0.90 6.3084 6.0442 5.5598 5.3199 6.0400
1 6.3267 5.5489 5.5628 5.8000 5.3200
0 6 7 8 9 10
0.05 7.0000 7.0000 7.0000 7.0000 7.0000
0.15 7.0000 7.0000 7.0000 7.0000 7.0000
0.25 7.0000 7.0000 7.0000 7.0000 7.0000
0.50 6.5200 7.0000 6.7600 7.0000 7.0000
0.75 6.5200 5.5600 6.5200 6.2800 6.5200
0.90 5.3200 4.8400 5.5600 6.5200 5.3200
1 5.0800 6.0400 6.0400 4.8400 6.2800
Πίνακας για τη µέθοδο Secant µε προσθετικό θόρυβο:
0 1 2 3 4 5
0.05 6.9992 7.0009 7.0003 6.9998 7.0003
0.15 6.9959 6.9989 7.0009 7.0002 6.9986
0.25 6.9957 6.9976 6.9980 7.0007 6.9991
0.50 6.9831 6.9925 6.9947 7.0000 6.9946
0.75 6.9764 6.9781 6.9915 6.9939 6.9982
0.90 6.9824 6.9914 7.0001 6.9990 6.9957
1 6.9763 6.9967 7.0039 6.9952 6.9942
0 6 7 8 9 10
0.05 6.9998 6.9999 6.9999 7.0000 7.0001
0.15 6.9999 6.9999 7.0003 7.0006 6.9997
0.25 6.9996 7.0031 6.9995 6.9979 6.9997
0.50 6.9995 6.9973 6.9966 7.0004 7.0013
0.75 7.0039 6.9993 6.9991 6.9981 7.0023
0.90 6.9923 6.9989 6.9966 6.9935 6.9963
1 6.9998 6.9955 6.9889 7.0018 7.0021
Πίνακας για τη µέθοδο Secant µε πολλαπλασιαστικό θόρυβο:
10
0 1 2 3 4 5
0.05 6.9997 7.0000 7.0000 7.0000 7.0000
0.15 6.9980 6.9998 7.0000 7.0000 7.0000
0.25 6.9965 6.9979 7.0000 7.0000 7.0000
0.50 7.0080 6.9947 7.0008 6.7596 6.7600
0.75 6.7578 6.9755 6.5204 6.9980 6.9997
0.90 6.5631 6.9768 6.5228 6.7339 6.5205
1 6.7468 7.0842 6.8067 7.0130 6.7627
0 6 7 8 9 10
0.05 7.0000 7.0000 7.0000 7.0000 7.0000
0.15 7.0000 7.0000 7.0000 7.0000 7.0000
0.25 6.7600 7.0000 7.0000 7.0000 7.0000
0.50 7.0000 6.7600 7.0000 7.0000 7.0000
0.75 7.0000 7.0000 7.0000 7.0000 6.7600
0.90 6.2822 6.5200 6.7600 6.7600 7.0000
1 6.5196 6.2637 6.7600 6.2800 6.9999
Παρατηρούµε οτι µε τη µέθοδο Newton παιρνουµε καλές προσ-
εγγισεις της ρίζας µε τον προσθετικό θόρυβο και µε τον πολ-
λαπλασιαστικό όσο µεγαλώνει η τυπική απόκλιση οι προσεγγί-
σεις αποκλίνουν από τη ρίζα.Αντίστοιχα µε τη µέθοδο Secant και
µε προσθετικό θόρυβο για ακρίβεια δυο δεκαδικών ψηφίων οι
µέσοι συγκλίνουν στη ρίζα ένω µεταβαλλόµενη από τον πολλαπλασι-
αστικό θόρυβο αρκετές φορές αποκλίνει.Συγκρίνοντας τις παρα-
πάνω µεθόδους µε τη µέθοδο της διχοτόµησης συµπεραίνουµε οτι
είναι η µέθοδος που επηρεάζεται λιγότερο.
2.3 Eρώτηµα 2γ
Θεωρούµε τη συνάρτηση:
f(x) = x4
− 25 ∗ x3
+ 200 ∗ x.2
− 560 ∗ x + 384
Το πλήθος ριζών της παραπάνω εξίσωσης είναι 4 ,συνεπώς εφαρµόζω
τη µέθοδο Newton τέσσερις φορές για τυχαίες αρχικές τιµές.(script :
NewRap.m)
1
2 >> New_Rap(0,10,100 )
3 N =12
4
5 tot =6
6
11
7 ans =1
8
9 >> New_Rap(3,10,100 )
10 N =10
11
12 tot =5
13
14 ans =4.0000
15
16 >> New_Rap(7,10,100 )
17 N =12
18
19 tot =6
20
21 ans =8.0000
22
23 >> New_Rap(11,10,100 )
24 N =14
25
26 tot =7
27
28 ans =12.0000
Το πλήθος των επαναλήψεων που απαιτήθηκαν για των υπολο-
γισµό και των τεσσάρων ριζών ήταν 48. Στη συνέχεια εφαρµόζεται
η τεχνική της υποτίµησης.Η µέθοδος αυτή βασίζεται στην απλοποίηση
της αρχικής συνάρτησης όταν βρεθεί µία ρίζα.Σε κάθε επανάλ-
ηψη της µεθόδου Newton − Raphson αντί της αρχικής συνάρτησης
f(x) παίρνουµε τη συνάρτηση g(x) = f(x)
x−ρk
όπου ρk είναι η ρίζα που
υπολογίστηκε προηγουµένως.
1 >> Deflation(0,10,100 )
2
3 root1 =
4
5 1
6
7
8 root2 =
9
10 4.0000
11
12
13 root3 =
14
12
15 8.0000
16
17
18 root4 =
19
20 12
21
22
23 ans =
24
25 44
Παρατηρούµε οτι το πλήθος των συναρτησιακών υπολογισµών
στη µέθοδο της υποτίµησης είναι µικρότερο από τη µέθοδο Newton−
Raphson.
3 ΄Ασκηση 3
3.1 Eρώτηµα 3α
Θεώρηµα de Moivre: ΄Εστω α ∈ C,α = 0.H εξίσωση xn
= α έχει n
διακεκριµένες λύσεις που δίνονται από τον τύπο:
zk = n
√
p(cos
θ + 2kπ
n
+ isin
θ + 2kπ
n
)
΄Οπου p είναι το µέτρο του α. Για την εξίσωση z3
− 1 = 0 ισχύει:
|1 + 0 ∗ i| = 1 = p
cos(θ) = 1, sin(θ) = 0 ⇒ θ = 0
Oι τρείς λύσεις που προκύπτουν είναι οι εξής:
z0 = cos0 + isin0 = 1
z1 = cos(
0 + 2π
3
) + isin(
0 + 2π
3
) = −
1
2
+ i
√
3
2
z2 = cos(
4π
3
) + isin(
4π
3
) = −
1
2
− i
√
3
2
Δηµιουργώ στη Matlab τις ακόλουθες function:
1 function [ root,N,tot] = New_Rap(x0,e,MIT )
2 function [ f ] = fun( z )
3 function [ df ] = dfun( z )
13
Tα αποτελέσµατα που παίρνω τρέχοντας τη µέθοδο Newton είναι:
1 >> New_Rap(2,5,100 )
2
3 tot = 6
4
5 ans = 1.0000
6
7 >> New_Rap(0.5−0.5i,5,100 )
8
9 tot = 9
10
11 ans =−0.5000 − 0.8660i
12
13 >> New_Rap(0.5+0.5i,5,100 )
14
15 tot =9
16
17 ans =−0.5000 + 0.8660i
3.2 Eρώτηµα 3β
Aντίστοιχα για τη µέθοδο Secant δηµιουργώ τη function:
1 function[root]=secant(x0,x1,e,MIT)
1 >> secant(2,−1,5,100)
2
3 k =17
4
5 ans = 1.0000
6
7 >> secant(0.5+0.5i,0.5+0.9i,5,100)
8
9 k = 15
10
11 ans = −0.5000 − 0.8660i
12
13 >> secant(−0.5−0.5i,0.5+0.9i,5,100)
14
15 k =24
16
17 ans =−0.5000 + 0.8660i
H ταχύτητα της σύγκλισης της µεθόδου της τέµνουσας είναι
πιο αργή από την ταχύτητα της Newton.Aυτό φαίνεται από το
14
πλήθος των επαναλήψεων που είναι µεγαλύτερο συγκριτικά µε
της Newton.
3.3 Eρώτηµα 3γ
Θεωρώ τη µιγαδική συνάρτηση f : C → C µε f(z) = z3
− 1 και θέτω
z = x + iy όπου x, y ∈ .Διαχωρίζω το πραγµατικό µέρος µε το
φαναστικό µέρος.
f(x) = (x + iy)3
− 1 = x3
+ 3 ∗ x2
yi − 3xy2
+ i3
y3
− 1
Ref(x) = x3
− 3xy3
− 1
Imf(x) = 3x2
y + y3
Eφαρµόζω τη µέθοδο Newton για συναρτήσεις πολλών µεταβλητών
στο σύστηµα:
f1(x, y) = Ref(x) = 0
f2(x, y) = Imf(x) = 0
Oι function στην Matlab είναι:
1 function [ root ] = Newton_z( X0,epsh,mit )
2 function [ F ] = Fun_z( X )
Tρέχοντας τη µέθοδο Newton για διάφορες αρχικές τιµές προκύπ-
τουν τα αποτελέσµατα:
1 >> Newton_z( [−2,2],0.0000001,100 )
2
3 tot_iter = 7
4
5 ans =−0.5000 0.8660
6
7 >> Newton_z( [−1,0],0.0000001,100 )
8
9 tot_iter =9
10
11 ans = 1 0
12
13
14 >> Newton_z( [−1,−1],0.0000001,100 )
15
16 tot_iter =6
17
18 ans =−0.5000 −0.8660
19
20 >> Newton_z( [−1,1],0.0000001,100 )
21
22 tot_iter =6
15
23
24 ans =−0.5000 0.8660
Oι λύσεις του συστήµατος είναι:
• r1 = (−1/2, −
√
3/2)
• r2 = (−1/2, −
√
3/2
• r3 = (1, 0)
Για τις λύσεις αυτές ισχύει:
(f1(x, y))2
+ (f2(x, y))2
= 0
το οποίο είναι ισοδύναµο µε την επίλυση της εξισωσης z3
− 1 = 0.
3.4 Eρώτηµα 3δ
Τρέχοντας τη µέθοδο Broyden για διάφορα αρχικά µητρώα έχουµε
τα ακόλουθα αποτελέσµατα:
1 function [ roots ] = Broyden( Eo,Xo,epsh,Max )
1 >> Broyden( [−1 0;−1 1],[1,1],0.0001,100 )
2
3 tot_iter = 100
4
5 ans =−0.5004 −0.8658
6
7 >> Broyden( [−1 0;0 1],[1,1],0.0001,100 )
8
9 tot_iter =14
10
11 ans = 1.0000 0.0000
12
13 >> Broyden( [1 0;0 −1],[1,1],0.0001,100 )
14
15 tot_iter =41
16
17 ans =−0.5000 0.8660
18
19 >> Broyden( [−2 0;−1 1],[1,1],0.0001,100 )
20
21 tot_iter = 45
22
23 ans =−0.5000 −0.8660
16
Παρατηρείται οτι η µέθοδος Broyden υπολείπεται της µεθόδου
Newton στην ταχύτητα σύγκλισης.Είναι φανερό από τις επαναλήψεις
που απαιτούνται σε κάθε µέθοδο για να επιτύχουµε την επιθυµητή
ακρίβεια.
3.5 Eρώτηµα 3ε
Στα παρακάτω script γίνονται οι επαναλήψεις µε το θόρυβο για
τις δύο µεθόδους:
1 epan_br_pros
2 epan_new_poll
3 epan_new_pros
H µέθοδος Broyden µε προσθετικό θόρυβο:
0 1 2 3 4 5
0.50 [0.7899,-0.0888 ] [0.8588,0.0197] [0.7145, -0.0061 ] [0.7262, 0.5547] [0.7384,0.0679]
0.15 [0.4284,-0.0625] [0.6082, 0.1360] [0.5687, 0.0331] [0.5102, 0.0733] [0.8413, 0.0925]
0.25 [0.2338 ,-0.2440] [0.1996, 0.0068] [0.3768,0.2767 ] [0.5384,0.1008] [0.3608,0.1710]
0.5 [-0.2398, 0.4099] [0.2581, 0.1533] [0.1685, 0.2010] [0.4619, 0.1044 ] [0.1909, 0.0854]
0.75 [-0.2795,0.2122] [-0.1063,-0.1909] [-0.1383, 0.0207 ] [0.1015, -0.0412 ] [0.0503,-0.1007]
0.90 [-0.1175, 0.4018 ] [0.3421, 0.3191] [ 0.0406, 0.0608 ] [0.1125,0.1859] [0.1692, -0.0940]
1 [0.1775, 2.6620] [0.1701, 0.1799] [0.0736, -0.0274] [0.1718, -0.1224] [0.1743, 0.0686]
H µέθοδος Newton για συναρτήσεις πολλών µεταβλητών µε προσθετικό θόρυβο:
0 1 2 3 4 5
0.50 [ 0.9982,0.0006] [1.0018, -0.0024] [0.9983,0.0023] [0.9996,-0.0017] [0.9970, 0.0012]
0.15 [0.9938, -0.0024] [0.9754,0.0290 ] [1.0090,-0.0058] [1.0040,0.0028] [0.9629,-0.0134]
0.25 [0.7610,-0.0635 ] [0.8768,-0.0014] [ 0.8877, -0.0067] [0.7067,0.0335] [0.8007,0.0199]
0.5 [0.0234, -0.0503] [-0.0494,-0.0550] [-0.1459,0.1858] [0.1127, -0.1055] [0.2029,0.0129]
0.75 [2.1326, -1.4406] [0.0180, -0.1862] [-0.0933,-0.1136] [-0.0178,-0.2648] [-0.0915,0.2021]
0.90 [-0.5409,-0.4250] [-1.9573,-1.4596] [-0.1059,-0.2273] [-0.1722,-1.7948] [0.1931,-0.4543]
1 [-0.2468 ,0.0714] [-0.0587, -0.9981] [-1.5180, 2.3552 ] [4.6857, -0.3407] [ 0.2845, -0.1467]
Η µέθοδος Newton µε πολλαπλασιαστικό θόρυβο:
17
0 1 2 3 4 5
0.50 [1.0005 ,0] [1.0000,0] [1.0000,0] [1.0000,0] [1.0000,0]
0.15 [1.0006,0] [1.0000,0] [1.0000,0] [1.0000,0] [1.0000,0]
0.25 [1.0021,0] [1.0001,0] [1.0000,0] [1.0000,0] [1.0000,0]
0.5 [1.1682,0] [0.9720,0] [1.0024,0] [0.9999,0] [1.0000,0]
0.75 [0.9262,0] [0.9616,0] [0.9976,0] [1.0000,0] [1.0000,0]
0.90 [0.9836,0] [0.9706,0] [1.0006,0] [1.0000,0] [1.0000,0]
1 [0.9489,0] [1.0073,0] [0.9997,0] [0.9999,0] [1.0000,0]
4 ΄Ασκηση 4
4.1 Eρώτηµα 4α
Θεωρούµε µία συνάρτηση f : 2
→ :
f(x1, x2) = 2 ∗ x1 + 2 ∗ x1 ∗ x2 + x2
2 + x1 − x2
Δηµιουργώ τρείς function στη Matlab:
1 function [ F ] = fun( X )
2 function [ DF ] = Grad( X )
3 function [ JF ] = jacob( x )
Στην πρώτη έχουµε τη συνάρτηση που µελετάµε,στην δεύτερη
είναι οι µερικές παράγωγοι της συνάρτησης και στην τρίτη το
Εσσιανό µητρώο. Στη συνέχεια δηµιουργώ τη function για την
επίλυση του συστήµατος των µερικών παραγώγων µε τη µέθοδο
της Newton:
1 function [ root ] = Newton( X0,epsh,mit )
Tρέχοντας τη µέθοδο Newton για αρχικές τιµές [-2,2] και αναζη-
τούµε για ποιες τιµές οι µερικές παράγωγοι µηδενίζονται.
1 >> Newton( [−2,2],0.0001,100 )
2
3 ans =
4
5 −1.0000 1.5000
Συµπεραίνουµε οτι οι µερικές παράγωγοι µηδενίζονται για x1 =
−1 και x2 = 1.5.Η παραπάνω λύση του συστήµατος είναι και ακρό-
τατα της f(x) διότι αποτελούν τα σηµεία στα οποία οι µερικές
παράγωγοι της f µηδενίζονται.
18
4.2 Eρώτηµα 4β
Το θεώρηµα του Taylor για πολλές µεταβλητές είναι:
f(x∗
+ s) = f(x∗
)+ < f(x∗
), s > +
1
2
∗ sT 2
f(x∗
) ∗ s
όπου x είναι η ρίζα, f(x∗
) η κλίση και 2
f(x∗
) είναι το Ιακω-
βιανό µητρώο και s ένα τυχαίο διάνυσµα. Γνωρίζουµε ότι όταν
< f(x∗
), s > 0 είναι σηµείο ακροτάτου.
• Εαν ισχύει sT 2
f(x∗
)∗s > 0 τότε το x∗
είναι ελαχιστοποιητής
της συνάρτησης και η f(x∗) το ελάχιστο.
• Εαν sT 2
f(x∗
) ∗ s < 0 τότε το x∗
είναι µεγιστοποιητής της
συνάρτησης και η f(x∗
) το µέγιστο.
• Εαν το sT 2
f(x∗
)∗s είναι πότε θετικά ορισµένο και πότε αρν-
ητικά τότε το x∗
είναι σαγµατικό σηµείο και δε µπορούµε να
βγάλουµε συµπέρασµα για την f(x∗
).Σε αυτή την περίπτωση
το x∗
αποτελεί µεγιστοποιητή σε ορισµένες κατευθύνσης και
ελαχιστοποιητή σε άλλες.
΄Εστω τυχαίο διάνυσµα s = [1, 1, 1]T
και το Εσιανό µητρώο στη
συγκεκριµένη περίπτωση είναι:
JF =
4 2
2 2
sT
JFs = 10 > 0
Συνεπάγεται οτι το σηµείο x∗
είναι ελαχιστοποιητής της συνάρτησης.
5 ΄Ασκηση 5
5.1 Eρώτηµα 5α
Θεωρούµε την ίδια συνάρτηση µε την άσκηση 4,δηλαδή
f(x1, x2) = 2 ∗ x1 + 2 ∗ x1 ∗ x2 + x2
2 + x1 − x2
Δηµιουργούµε την function για τη µέθοδο Cauchy και την τρέχω
στη Matlab για διάφορα λ.
1 function [ roots,iter] = Cauchy( X0,epsh,h,max)
Τα ορίσµατά της είναι οι αρχικέ τιµές,η ακρίβεια µε την οποία
επιθυµώ να βρώ την προσεγγιστική λύση και ο µέγιστος αριθµός
επαναλήψεων που θέλω να κάνει και επιστρέφει το διάνυσµα των
λύσεων και τον αριθµό των επαναλήψεων.
19
1 >> Cauchy( [−2,3],0.0001,0.1,300)
2 iter =120
3 ans =−1.0001 1.5001
4
5 >> Cauchy( [−2,3],0.0001,0.01,300)
6 iter =300
7 maximum iterations
8 ans = −1.0949 1.6536
9
10 >> Cauchy( [−2,3],0.0001,0.001,300)
11 iter =300
12 maximum iterations
13 ans =−1.7641 2.7119
14
15 >> Cauchy( [−10,10],0.0001,0.1,300)
16 iter =144
17 ans =−1.0001 1.5001
18
19 >> Cauchy( [−10,10],0.0001,0.01,300)
20 iter =300
21 maximum iterations
22 ans =−1.6301 2.5196
23
24 >> Cauchy( [−50,50],0.0001,0.1,300)
25 iter =166
26 ans =−1.0001 1.5001
Παρατηρούµε οτι για κατάλληλη επιλογή του λ η µέθοδος
συγκλίνει.Και επίσης αν οι αρχικές συνθήκες είναι πιο µακρυά
από το πραγµατικό ελάχιστο η µέθοδος χρειάζεται περισσότερες
επαναλήψεις για να συγκλίνει.Μπορούµε να επιταχύνουµε γρηγορότερη
σύγκλιση παίρνοντας µεταβαλλόµενο βήµα µε τη µέθοδο του Armijo.
Δηµιουργούµε µία καινούργια function:
1 function [roots ]=Armijo( x0,h,epsh)
Παίρνει σαν ορίσµατα τις αρχικές τιµές,την αρχική τιµή του µεταβαλλόµενου
βήµατος που είναι ένας αυθέραιτα επιλεγµένος θετικός αριθµός
και την επιθυµητή ακρίβεια.
1 >> Armijo( [−2,3],1,0.0001)
2 iter =91
3 ans =−1.0001 1.5001
4
5 >> Armijo( [−2,3],2,0.0001)
6 iter = 47
7 ans =−1.0001 1.5001
20
8
9 >> Armijo( [−50,50],2,0.0001)
10 iter =547
11 ans =−1.0001 1.5001
Παρατηρούµε οτι ο αριθµός των επαναλήψεων είναι αισθητά µικρότερος,άρα
και η µέθοδος συγκλίνει γρηγορότερα.
• Aν θέλουµε να υπολογίσουµε το µεγιστοποιητή µίας συνάρτησης
f(x) θέτουµε h(x) = −f(x) και εφαρµόζουµε τη µέθοδο Cauchy.Δηλαδή
το τοπικό µέγιστο της f(x) είναι τοπικό ελάχιστο για την h(x).
• Εαν θεωρήσουµε τη συνάρτηση
G(x, y) = ϕ2
1(x, y) + ϕ2
2(x, y) = 0
και εφαρµόσουµε τη µέθοδο Cauchy τότε θα βρούµε τους
ελαχιστοποιητές της.Δηλαδή θα βρούµε τις τιµές των (x, y)
για τις οποίες ισχύει ϕ1(x, y) = ϕ2(x, y) = 0.
5.2 Ερώτηµα 5β
Για να εφαρµόσουµε τη µέθοδο Cauchy µε πολλαπλασιαστικό και
προθετικό θόρυβο χρειαζόµαστε δύο επιπλέον συναρτήσεις:
1 function [ roots,iter] = Cau_pros( X0,k,s,h,max)
2 function [ roots,iter] = Cau_poll( X0,epsh,s,h,max)
Και στη συνέχεια τρέχουµε την κάθε µέθοδο για διαφορετικά ε
και διαφορετικές τυπικές αποκλίσης s.Για τον κάθε συνδιασµό
τρέχουµε τη µέθοδο 50 φορές και κρατάµε το µέσο των πενήντα
προσεγγιστικών τιµών.Αυτή η διαδικασία πραγµατοποιείται στα
script epanpros και epanpoll.
Πίνακας αποτελεσµάτων της µεθόδου Cauchy µε προσθετικό
θόρυβο:
0 1 2 3 4 5
0.05 [-1.0532, 1.5838] [-1.0019, 1.5021] [-1.0002,1.4989] [-0.9986, 1.4975] [-0.9996, 1.5006]
0.15 [-1.0548,1.5875] [-0.9959, 1.4939 ] [-0.9985,1.4945] [-1.002,1.5022] [-1.0010,1.5047]
0.25 [-1.0176, 1.5431] [ -0.9995, 1.5013 ] [-1.0035, 1.5045] [-1.0063,1.5051] [-1.0001,1.4996]
0.50 [-1.0323, 1.5370] [-0.9921,1.5032] [-0.9913, 1.4821 ] [-0.9920, 1.5053 ] [-0.9875,1.4765]
0.75 [-1.0175, 1.5207] [-0.9917, 1.5302 ] [-0.9977, 1.5110 ] [-0.9778, 1.4876 ] [-1.0016,1.5109]
0.90 [-1.0258, 1.5006] [-1.0063, 1.5257 ] [-1.0105, 1.4785] [-0.9878,1.4572 ] [-1.0118, 1.5141]
1 [-0.9890, 1.4994] [-1.0095, 1.5348] [-0.9693, 1.4457 ] [-0.9972,1.4405 ] [-0.9933,1.5193]
21
0 6 7 8 9 10
0.05 [-1.0008, 1.5014] [-1.0004, 1.5007 ] [-1.0002,1.4980 ] [-1.0002, 1.5004 ] [-1.0010,1.5009]
0.15 [-0.9990, 1.4987] [-1.0025, 1.5008] [-1.0013,1.5011] [-0.9990, 1.5008] [-1.0013, 1.4960]
0.25 [-1.0044,1.5068] [-1.0021,1.4962 ] [-1.0077, 1.5027 ] [-0.9988, 1.4952] [-1.0057, 1.5039]
0.50 [-0.9913,1.4928] [-0.9897, 1.4779 ] [-1.0055, 1.5164] [-1.0016,1.5114] [-0.9781, 1.4829]
0.75 [-0.9617,1.4728 ] [-1.0263, 1.5103 ] [-0.9766, 1.4398] [-0.9944,1.4978] [-0.9754 1.4942]
0.90 [-1.0104, 1.5106 ] [-0.9903, 1.4662 ] [-1.0069,1.4690 ] [-0.9993, 1.5330] [-1.0339, 1.5274]
1 [-1.0486, 1.5269] [-1.0461,1.5561] [-0.9772,1.4513] [-0.9607,1.4570] [-1.0240,1.5488]
Πίνακας της µεθόδου Cauchy µε πολλαπλασιαστικό θόρυβο:
0 1 2 3 4 5
0.05 [ -1.0331, 1.5536 ] [-1.0033, 1.5054] [-1.0003, 1.5005] [-1.0000,1.5001 ] [-1.0000, 1.5000]
0.15 [ -1.0340, 1.5548] [-1.0034, 1.5054] [-1.0003, 1.5006] [-1.0000,1.5001] [-1.0000,1.5000]
0.25 [-1.0369, 1.5597 ] [-1.0037, 1.5060 ] [-1.0004, 1.5006] [-1.0000,1.5001] [-1.0000,1.5000]
0.50 [-1.0559,1.5914] [-1.0062,1.5101] [-1.0006,1.5010] [-1.0001, 1.5001] [-1.0000,1.5000]
0.75 [-1.0730,1.6189] [-1.0091,1.5151] [-1.0010,1.5017] [-1.0002, 1.5003 ] [-1.0000,1.5000]
0.90 [-1.0706, 1.6185 ] [-1.0113,1.5190 ] [-1.0009,1.5015] [-1.0001, 1.5001 ] [-1.0000, 1.5000]
1 [-1.1065, 1.6804] [-1.0096,1.5161] [-1.0007,1.5012] [-1.0001,1.5001] [-1.0000,1.5000]
0 6 7 8 9 10
0.05 [-1.0000,1.5000] [-1.0000,1.5000] [-1.0000,1.5000] [-1.0000,1.5000] [-1.0000, 1.5000]
0.15 [-1.0000, 1.5000] [-1.0000,1.5000] [-1.0000,1.5000] [-1.0000,1.5000] [-1.0000,1.5000]
0.25 [-1.0000,1.5000] [-1.0000,1.5000] [-1.0000,1.5000] [-1.0000,1.5000] [-1.0000,1.5000]
0.50 [-1.0000,1.5000] [-1.0000,1.5000] [-1.0000,1.5000] [-1.0000,1.5000] [-1.0000,1.5000]
0.75 [-1.0000,1.5000] [-1.0000,1.5000] [-1.0000,1.5000] [-1.0000,1.5000] [-1.0000,1.5000]
0.90 [-1.0000,1.5000] [-1.0000,1.5000] [-1.0000,1.5000] [-1.0000,1.5000] [-1.0000,1.5000]
1 [-1.0000,1.5000] [-1.0000,1.5000] [-1.0000,1.5000] [-1.0000,1.5000] [-1.0000,1.5000]
Παρατηρούµε οτι η µέθοδος συγκλίνει τόσο για προσθετικό
θόρυβο όσο και για πολλαπλασιαστικό θόρυβο.Δεν µπορούµε να
βρούµε κάποιο συγκεκριµένο ε και κάποια τυπική απόκλιση για
τα οποία να έχούµε την καλύτερη ακρίβεια.
6 ΄Ασκηση 6
6.1 Eρώτηµα 6α
Θεωρούµε τη συνάρτηση f : 2
→ µε τύπο
f(x1, x2) =
x3
1
3
− 9 ∗ x1 +
x3
2
3
− 4 ∗ x2
22
Εξετάζουµε το πιθανό ακρότατο (3,2) το οποίο γνωρίζουµε οτι
είναι ελάχιστο σηµείο διότι το εσσιανό µητρώο f(x1, x2) είναι
θετικά ορισµένο. Δηµιουργούµε τις αντίστοιχες functions στην
Matlab για τη συνάρτηση,τις µερικές παραγώγους,τη µέθοδο Cauchy−
Armijo και τη µέθοδο Cauchy:
1 function [ y ] =func( X )
2 function [ Df ] = Grad( X )
3 function [roots ]=Armijo( x0,h,epsh)
4 function [roots ]=Armijo( x0,h,epsh)
Συνθήκη του Armijo:
f(xk − η (f(xk) − f(xk) ≤ −
η
2
|| (f(xk)||2
Εαν ισχύει η παραπάνω ανισότητα κάνω αποδεκτό αυτό το η και
προχωράω στην επόµενη επανάληψη.Εαν δεν ισχύει η συνθήκη
υποδιπλασιάζουµε το η και εξετάζουµε αν ισχύει το νέο η.
Τα αποτελέσµατα που παίρνουµε εφαρµόζοντας τη µέθοδο Cauchy−
Armijo µε µεταβαλλόµενο βήµα είναι τα παρακάτω:
1 >> Armijo( [1,1],1,0.0001)
2 iter =19
3
4 ans =3.0000 2.0000
5
6 >> Armijo( [1,1],10,0.0001)
7 iter =14
8
9 ans =3.0000 2.0000
10
11 >> Armijo( [1,1],5,0.0001)
12 iter =32
13
14 ans = 3.0000 2.0000
15
16 >> Armijo( [−1,−1],10,0.0001)
17 iter =18
18
19 ans =3.0000 2.0000
Τα αντιστοιχα αποτελέσµατα εφαρµόζοντας τη µέθοδο Cauchy εί-
ναι:
1 >> Cauchy( [1,1],0.0001,0.1,100)
2 iter =22
3
4 ans =3.0000 2.0000
23
5
6 >> Cauchy( [1,1],0.0001,0.01,100)
7 iter =100
8
9 maximum iterations
10
11 ans =2.9937 1.9774
12
13 >> Cauchy( [1,1],0.0001,0.05,100)
14 iter =50
15
16 ans =3.0000 2.0000
17
18 >> Cauchy( [1,1],0.0001,0.3,100)
19
20 iter =47
21
22 ans =3.0000 2.0000
23
24 >> Cauchy( [−1,−1],0.0001,0.3,100)
25 iter =49
26
27 ans =3.0000 2.0000
Παρατηρούµε οτι µε τη µέθοδο Cauchy − Armijo προσεγγίζουµε
γρηγορότερα την λύση στις περισσότερες περιπτώσεις,διότι ο
αριθµός των επαναλήψεων είναι αισθητά µικρότερος.
6.2 Ερώτηµα 6β
Θεωρώ τη συνάρτηση συστολής F : D ⊂ → µε τύπο
ϕ(x) =
x
3
+ 5
Ορισµός:
΄Εστω µετρικός χώρος (Χ, ρ) και f : X → X είναι µία συνάρτηση.Η
f λέγεται συνάρτηση συστολής αν ικανοποιεί τη συνθήκη Lipschitz
µε 0 ≤ l ≤ 1 δηλαδή αν υπάρχει 0 ≤ l ≤ 1 ώστε για x, y ∈ X να ισχύει:
ρ(f(x), f(y)) ≤ lρ(x, y)
Θεώρηµα σταθερού σηµείου του Banach:
΄Εστω (X, ρ) είναι πλήρης µετρικός χώρος και η f : X → X είναι µία
συστολή.Τότε η f έχει µοναδικό σταθερό σηµείο x.Επιπλέον εαν
xD ∈ X και το x1 = f(x0),x2 = f(x2),...,xn = f(xn−1) τότε η ακολουθία
συγκλίνει σε αυτό το σηµείο ,xn → x..
24
Για τη συνάρτηση που επιλέχτηκε ισχύει:
|ϕ(x) − ϕ(y)| = |(
x
3
+ 5) − (
y
3
+ 5)| =
1
3
|x − y|
άρα είναι συστολή.
Για την εφαρµογή του θεωρήµατος στη Matlab δηµιουργούµε
δύο συναρτήσεις:
1 function [ func6b ] =f6b( X )
2 function [k,r ] = Banach(po,epsh,Max )
και τα αποτελέσµατα για διάφορες αρχικές τιµές είναι :
1 >> Banach([−2,−1],0.0001,100 )
2 l = 11
3
4 r =7.4998 7.4999
5
6 >> Banach([0,0],0.0001,100 )
7 l = 11
8
9 r = 7.4999 7.4999
10
11 >> Banach([3,2],0.0001,100 )
12 l =10
13
14 r =7.4998 7.4997
15
16 >> Banach([1,1],0.0001,100 )
17 l = 10
18
19 r =7.4997 7.4997
6.3 Eρώτηµα 6γ
Θεωρώ τη συνάρτηση F : D ⊂ 2
→ 2
µε τύπο
f(x1, x2) = x2
1 + x1 ∗ x2 − 6
f(x1, x2) = x2
2 + x1 ∗ x2 + 2
Δηµιουργώ τέσσερις functions στη Matlab:
1 function [ f ] = f6c( X )
2 function [ J ] = Jacob( X )
3 function [ roots,tot_iter ] = Newton( Xo,epsh,Max )
4 function [ roots ] = Broyden( Eo,Xo,epsh,Max )
25
Οι δύο µέθοδοι βρίσκουν ρίζες σε ένα σύστηµα.Υπολογίζοντας
όµως τις ρίζες βρίσκουµε ουσιαστικά τα σταθερά σηµεία.Δηλαδή,µπορούµε
να βρούµε ένα σταθερό σηµείο της συνάρτησης F επιλύοντας το
σύστηµα:
g1(x1, x2) = f1(x1, x2) − x1 = 0
g2(x1, x2) = f2(x1, x2) − x2 = 0
Eφαρµόζουµε και τις δύο µεθόδους για διάφορες αρχικές τιµές
και παίρνουµε τα παρακάτω αποτελέσµατα:
1 >> Newton( [−5,3],0.0001,100 )
2
3 tot_iter =2
4
5 ans =−3 1
6
7 >> Newton( [1,−2],0.0001,100 )
8
9 tot_iter =5
10
11 ans =−3.0000 1.0000
12
13 >> Newton( [1,1],0.01,100 )
14
15 tot_iter =2
16
17 ans =3 −1
18
19 >> Newton( [10,5],0.0001,100 )
20
21 tot_iter =7
22
23 ans =3.0000 −1.0000
1 >> Broyden( [1 0;0 1],[1,1],0.0001,100 )
2
3 tot_iter = 3
4
5 ans =3.0000 −1.0000
6
7 >> Broyden( [1 0;0 1],[−5,3],0.0001,100 )
8
9 tot_iter =3
10
11 ans =−3 1
12
26
13 >> Broyden( [1 0;0 1],[1,2],0.0001,100 )
14
15 tot_iter = 4
16
17 ans =−3.0000 1.0000
18
19 >> Broyden( [1 0;0 1],[10,5],0.0001,100 )
20
21 tot_iter =22
22
23 ans =3.0000 −1.0000
Tα σταθερά σηµεία του συστήµατος είναι (3,-1). Παρατηρείται
οτι η ταχύτητα της µεθόδου Newton είναι καλύτερη από αυτη της
µεθόδου Broyden.Γνωρίζουµε όµως οτι η µέθοδος Broyden υπερτ-
ερεί στο υπολογιστικό κόστος διότι δεν απαιτεί τον υπολογισµό
των µερικων παραγώγων σε κάθε επανάληψη.
7 ΄Ασκηση 9
7.1 Eρώτηµα 9β
Mε την εντολή sprand αποθηκεύουµε τα µητρώα σε αραιή µορφή.
Mε την εντολή tic−toc υπολογίζουµε το χρόνο που χρειάστηκε σε
κάθε περίπτωση.Το N δηλώνει το πλήθος των συνασρτησιακών
υπολογισµών µεχρι να επιτευχθελι η επιθυµητή ακρίβεια.
• H µέθοδος Jacobi είναι µία επαναληπτική µέθοδος και το επαναλη-
πτικό της σχήµα είναι:
xk+1
= −D−1
(L + U) ∗ xk
+ D−1
∗ b
όπου D διαγώνιο µητρώο και L και U είναι άνω και κάτω
τριγωνικό αντίστοιχα.
Με την παρακάτω function τρέχουµε κάθε φορά τη µέθοδο για τα
µητρώα που ζητούνται.
1 function [RR,N,iter ] = Jacobi(A,b,x0, e,max)
Για το µητρώο
A1 = toeplitz([2, −1, zeros(1, n − 2)])
και για n = 512 και n = 1024 δίνει τα ακόλουθα αποτελέσµατα:
1 max=1000
2 >> [RR,N,iter ] = Jacobi(A,b,x0, e,max)
27
3 Elapsed time is 0.348277 seconds.
4
5 RR = 0.0042
6
7 N = 4000
8
9 iter =1000
10
11 >> max=10000
12
13 max =10000
14
15 >> [RR,N,iter ] = Jacobi(A,b,x0, e,max)
16 Elapsed time is 0.857817 seconds.
17
18 RR =7.5114e−04
19
20 N =40000
21
22 iter =10000
1 >> [RR,N,iter ] = Jacobi(A,b,x0, e,max)
2 Elapsed time is 0.132119 seconds.
3
4 RR = 0.0042
5
6
7 N =4000
8
9
10 iter =1000
Για το µητρώο
A3 + 10 ∗ I
και για n = 512, 1024 αντίστοιχα.
1 max=1000
2 Elapsed time is 0.614030 seconds.
3
4 RR = 1.3187e−16
5
6 N = 4000
7
8
9 iter =1000
28
1 max=1000
2 Elapsed time is 0.637301 seconds.
3
4 RR =1.2744e−16
5
6 N = 4000
7
8
9 iter =1000
Για το µητρώο
A4 = gallery( wathen , 99, 9)
1 A=gallery('wathen',99,9)
2 max=10000
3 >> [RR,N,iter ] = Jacobi(A,b,x0, e,max)
4 Elapsed time is 87.477299 seconds.
5
6 RR =Inf
7
8 N =40000
9
10 iter =10000
Σε αυτή την περίπτωση η µέθοδος Jacobi αποκλίνει.
• Η µέθοδος Conjugate Gradient σε κάθε επανάληψη απαιτεί1MV +
2DOT + 3SAXPY πράξεις.
1 function [RR, N,iter , flag] = con_grad(A,x,b,max ,tol)
Για το µητρώο
A1 = toeplitz([2, −1, zeros(1, n − 2)])
και για n = 512 και n = 1024 δίνει τα ακόλουθα αποτελέσµατα:
1 A=toeplitz([2,−1,zeros(1,510)])
2 N = 1536
3
4 Elapsed time is 0.054437 seconds.
5
6 iter =256
7
8 relres=0.0000
29
9
10 A=toeplitz([2,−1,zeros(1,1022)])
11 N = 3072
12
13 Elapsed time is 0.050585 seconds.
14
15 iter = 512
16
17 relres=0.0000
Για το µητρώο
A3 + 10 ∗ I
1
2 B=sprand(512,512,0,01)
3 A3=B(1:512,1:512)
4 A=A3+10*eye(512,512)
5 tot=0.00000001
6
7 N = 6006
8
9 Elapsed time is 0.089261 seconds.
10
11 iter = 1000
12
13 relres=0.0001
14
15 B=sprand(1024,1024,0B=sprand(1024,1024,0.01)
16 A3=B(1:1024,1:1024)
17 A=A3+10*eye(1024,1024)
18 tot=0.000000001
19
20 relres=0.0021
21
22
23 N = 6006
24
25 Elapsed time is 3.593525 seconds.
26
27 iter = 1000
Για το µητρώο
A4 = gallery( wathen , 99, 9)
1 relres=0.0000
30
2
3 N =1332
4
5 Elapsed time is 0.106068 seconds.
6
7 iter =222
31
Αναφορές
[1] ΑΡΙΘΜΗΤΙΚΗ ΑΝΑΛΥΣΗ ,ΜΙΧΑΗΛ Ν.ΒΡΑΧΑΤΗΣ,5η
ΕΚΔΟΣΗ
[2] ΑΡΙΘΜΗΤΙΚΗ ΑΝΑΛΥΣΗ,ΔΗΜΗΤΡΗΣ Α.ΓΕΩΡΓΙΟΥ
[3] Νumerical Recipes in C,William H.Press,Second Edition
32

More Related Content

Similar to Numerical_Methods_and_Computational_Tools

λυγάτσικας ζήνων ασκήσεις άλγεβρας B΄λυκείου 2015-6
λυγάτσικας ζήνων   ασκήσεις άλγεβρας B΄λυκείου 2015-6λυγάτσικας ζήνων   ασκήσεις άλγεβρας B΄λυκείου 2015-6
λυγάτσικας ζήνων ασκήσεις άλγεβρας B΄λυκείου 2015-6
Christos Loizos
 
σχολικές σημειώσεις άλγεβρας α΄λυκείου
σχολικές σημειώσεις άλγεβρας α΄λυκείουσχολικές σημειώσεις άλγεβρας α΄λυκείου
σχολικές σημειώσεις άλγεβρας α΄λυκείου
keratea1
 
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3
Dimitris Psounis
 
Bézout matrices and their applications 31th October 2016 (master Thesis in gr...
Bézout matrices and their applications 31th October 2016 (master Thesis in gr...Bézout matrices and their applications 31th October 2016 (master Thesis in gr...
Bézout matrices and their applications 31th October 2016 (master Thesis in gr...
Pantelis Gryparis
 
Μαθηματικά Δ΄- 2η Ενότητα - φύλλο αξιολόγησης
Μαθηματικά Δ΄- 2η Ενότητα - φύλλο αξιολόγησης Μαθηματικά Δ΄- 2η Ενότητα - φύλλο αξιολόγησης
Μαθηματικά Δ΄- 2η Ενότητα - φύλλο αξιολόγησης
fotaolympia
 

Similar to Numerical_Methods_and_Computational_Tools (20)

ΠΛΗ30 ΜΑΘΗΜΑ 2.1
ΠΛΗ30 ΜΑΘΗΜΑ 2.1ΠΛΗ30 ΜΑΘΗΜΑ 2.1
ΠΛΗ30 ΜΑΘΗΜΑ 2.1
 
λυγάτσικας ζήνων ασκήσεις άλγεβρας B΄λυκείου 2015-6
λυγάτσικας ζήνων   ασκήσεις άλγεβρας B΄λυκείου 2015-6λυγάτσικας ζήνων   ασκήσεις άλγεβρας B΄λυκείου 2015-6
λυγάτσικας ζήνων ασκήσεις άλγεβρας B΄λυκείου 2015-6
 
Μαθηματικά Δ΄ 4. 26. ΄΄Διαχειρίζομαι δεκαδικούς αριθμούς΄΄
Μαθηματικά Δ΄ 4. 26. ΄΄Διαχειρίζομαι δεκαδικούς αριθμούς΄΄ Μαθηματικά Δ΄ 4. 26. ΄΄Διαχειρίζομαι δεκαδικούς αριθμούς΄΄
Μαθηματικά Δ΄ 4. 26. ΄΄Διαχειρίζομαι δεκαδικούς αριθμούς΄΄
 
σχολικές σημειώσεις άλγεβρας α΄λυκείου
σχολικές σημειώσεις άλγεβρας α΄λυκείουσχολικές σημειώσεις άλγεβρας α΄λυκείου
σχολικές σημειώσεις άλγεβρας α΄λυκείου
 
Κεφάλαιο 7o:Επαναληπτικό μάθημα 1ης ενότητας
Κεφάλαιο 7o:Επαναληπτικό μάθημα 1ης ενότηταςΚεφάλαιο 7o:Επαναληπτικό μάθημα 1ης ενότητας
Κεφάλαιο 7o:Επαναληπτικό μάθημα 1ης ενότητας
 
Φύλλο Εργασίας Α΄ Λυκείου: Μέτρηση Μεγεθών-Μονάδες-Μετατροπές Μονάδων
Φύλλο Εργασίας Α΄ Λυκείου: Μέτρηση Μεγεθών-Μονάδες-Μετατροπές ΜονάδωνΦύλλο Εργασίας Α΄ Λυκείου: Μέτρηση Μεγεθών-Μονάδες-Μετατροπές Μονάδων
Φύλλο Εργασίας Α΄ Λυκείου: Μέτρηση Μεγεθών-Μονάδες-Μετατροπές Μονάδων
 
Πολλαπλασιασμός, προπαίδεια (ΙΙ)
Πολλαπλασιασμός, προπαίδεια (ΙΙ)Πολλαπλασιασμός, προπαίδεια (ΙΙ)
Πολλαπλασιασμός, προπαίδεια (ΙΙ)
 
Απαλοιφή με οδήγηση - διανύσματα - πίνακες - πράξεις
Απαλοιφή με οδήγηση - διανύσματα - πίνακες - πράξειςΑπαλοιφή με οδήγηση - διανύσματα - πίνακες - πράξεις
Απαλοιφή με οδήγηση - διανύσματα - πίνακες - πράξεις
 
Τριγωνομετρικές εξισώσεις [2018]
Τριγωνομετρικές εξισώσεις [2018]Τριγωνομετρικές εξισώσεις [2018]
Τριγωνομετρικές εξισώσεις [2018]
 
4ο Επαναληπτικό στα Μαθηματικά, Δ΄ τάξη: Κεφ. 21 - 26
4ο Επαναληπτικό στα Μαθηματικά, Δ΄ τάξη: Κεφ. 21 - 264ο Επαναληπτικό στα Μαθηματικά, Δ΄ τάξη: Κεφ. 21 - 26
4ο Επαναληπτικό στα Μαθηματικά, Δ΄ τάξη: Κεφ. 21 - 26
 
Fortran notes panepistimio_kritis
Fortran notes panepistimio_kritisFortran notes panepistimio_kritis
Fortran notes panepistimio_kritis
 
Basiliki Strouthopoulou
Basiliki StrouthopoulouBasiliki Strouthopoulou
Basiliki Strouthopoulou
 
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3
 
Φύλλα εργασίας για τη διδασκαλια του μήκους -εμβαδού κύκλου-λογισμικό Geogebra
Φύλλα εργασίας για τη διδασκαλια του μήκους -εμβαδού κύκλου-λογισμικό GeogebraΦύλλα εργασίας για τη διδασκαλια του μήκους -εμβαδού κύκλου-λογισμικό Geogebra
Φύλλα εργασίας για τη διδασκαλια του μήκους -εμβαδού κύκλου-λογισμικό Geogebra
 
Bézout matrices and their applications 31th October 2016 (master Thesis in gr...
Bézout matrices and their applications 31th October 2016 (master Thesis in gr...Bézout matrices and their applications 31th October 2016 (master Thesis in gr...
Bézout matrices and their applications 31th October 2016 (master Thesis in gr...
 
Μαθηματικά Δ΄. Επανάληψη 4ης Ενότητας, κεφ. 21 - 26
Μαθηματικά Δ΄. Επανάληψη 4ης Ενότητας, κεφ. 21 - 26Μαθηματικά Δ΄. Επανάληψη 4ης Ενότητας, κεφ. 21 - 26
Μαθηματικά Δ΄. Επανάληψη 4ης Ενότητας, κεφ. 21 - 26
 
ΜΑΘΗΜΑΤΙΚΑ ΣΤ΄ 1η ΣΥΝΤΟΜΗ ΕΠΑΝΑΛΗΨΗ 1ης ΕΝΟΤΗΤΑΣ ΚΕΦ. 1-11
ΜΑΘΗΜΑΤΙΚΑ ΣΤ΄  1η ΣΥΝΤΟΜΗ ΕΠΑΝΑΛΗΨΗ 1ης ΕΝΟΤΗΤΑΣ ΚΕΦ. 1-11ΜΑΘΗΜΑΤΙΚΑ ΣΤ΄  1η ΣΥΝΤΟΜΗ ΕΠΑΝΑΛΗΨΗ 1ης ΕΝΟΤΗΤΑΣ ΚΕΦ. 1-11
ΜΑΘΗΜΑΤΙΚΑ ΣΤ΄ 1η ΣΥΝΤΟΜΗ ΕΠΑΝΑΛΗΨΗ 1ης ΕΝΟΤΗΤΑΣ ΚΕΦ. 1-11
 
Livadeia 2019
Livadeia 2019Livadeia 2019
Livadeia 2019
 
Mpourazanas eksetaseis g gymnasiou 15 16
Mpourazanas eksetaseis g gymnasiou 15 16Mpourazanas eksetaseis g gymnasiou 15 16
Mpourazanas eksetaseis g gymnasiou 15 16
 
Μαθηματικά Δ΄- 2η Ενότητα - φύλλο αξιολόγησης
Μαθηματικά Δ΄- 2η Ενότητα - φύλλο αξιολόγησης Μαθηματικά Δ΄- 2η Ενότητα - φύλλο αξιολόγησης
Μαθηματικά Δ΄- 2η Ενότητα - φύλλο αξιολόγησης
 

Numerical_Methods_and_Computational_Tools

  • 1. ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ Διατμηματικό Πρόγραμμα Μεταπτυχιακών Σπουδών Μαθηματικά των Υπολογιστών και των Αποφάσεων Αριθμητικές Μέθοδοι και Υπολογιστικά Εργαλεία Φοιτήτρια: Σοφία Τσιώπου 1
  • 2. Περιεχόμενα 1 ΄Ασκηση1 3 1.1 Ερώτημα 1α . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2 Eρώτηµα 1β . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.3 Eρώτηµα 1γ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2 ΄Ασκηση 2 6 2.1 Eρώτηµα 2α . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2 Eρώτηµα 2β . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.3 Eρώτηµα 2γ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3 ΄Ασκηση 3 13 3.1 Eρώτηµα 3α . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.2 Eρώτηµα 3β . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.3 Eρώτηµα 3γ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.4 Eρώτηµα 3δ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.5 Eρώτηµα 3ε . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 4 ΄Ασκηση 4 18 4.1 Eρώτηµα 4α . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 4.2 Eρώτηµα 4β . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 5 ΄Ασκηση 5 19 5.1 Eρώτηµα 5α . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 5.2 Ερώτηµα 5β . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 6 ΄Ασκηση 6 22 6.1 Eρώτηµα 6α . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 6.2 Ερώτηµα 6β . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 6.3 Eρώτηµα 6γ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 7 ΄Ασκηση 9 27 7.1 Eρώτηµα 9β . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2
  • 3. 1 ΄Ασκηση1 1.1 Ερώτημα 1α Η ακρίβεια του υπολογιστή είναι γνωστή ως το ῾ἑψιλον της μηχανής᾿᾿ και δίνεται από το παρακάτω πρόγραμμα στη Matlab: 1 %Akriveia ypologisth 2 acc=1.0; 3 while (acc+1.0>1.0); 4 acc=acc/2.0; 5 end 6 acc=2.0*acc; 7 disp('H akriveia toy ypologisth einai:') 8 disp(acc); 1 >> Akriveia 2 H akriveia toy ypologisth einai: 3 2.2204e−16 Ορισµός:Το εM της µηχανής είναι ο ελάχιστος θετικὀς αριθµός για τον οποίο ισχύει οτι το 1+ε είναι µεγαλύτερο του 1: εM := argminε 0{fl(1 + ε) 1} H Matlab διαθέτει τη µεταβλητή eps για τον υπολογισµό της ακρίβειας. 1.2 Eρώτηµα 1β Θεωρὠ τη συνάρτηση f : → µε τύπο: f(x) = x2 − 10 ∗ x + 16 Το γράφηµα της συνάρτηση είναι: 3
  • 4. Eφαρµόζω τη µέθοδο της διχοτόµησης στο διάστηµα [-7,3] (Bisection.m) και τα αποτελέσµατα που παίρνω παρουσιάζονται παρακάτω: 1 >> Bisection( −7,3,5 ) 2 iter =23 3 4 ans =2.0000 5 6 >> Bisection( −7,3,7 ) 7 iter =29 8 9 ans =2.0000 10 11 >> Bisection( −7,3,10 ) 12 iter =39 13 14 ans =2.0000 15 16 >> Bisection( −7,3,12 ) 17 iter =45 18 19 ans =2.0000 Στο script Εpanalhpsh υπολογίζεται το πλήθος των επαναλήψεων στο διάστηµα [-7,3] για τις διάφορες τιµές του ε από τον τύπο ρ = log2 (b − α) −1 . 1 >> Epanalhpsh( −7,3,5 ) 2 ans =22 4
  • 5. 3 4 >> Epanalhpsh( −7,3,7 ) 5 ans =29 6 7 >> Epanalhpsh( −7,3,10 ) 8 ans =39 9 10 >> Epanalhpsh( −7,3,12 ) 11 ans =45 Παρατηρείται οτι το πλήθος τον επαναλήψεων που απαιτειται συµφωνεί µε τον τύπο. 1.3 Eρώτηµα 1γ Η µέθοδος της διχοτόµησης βασίζεται στο θεώρηµα του Bolzano και αφορά συνεχείς µεταβλητές. Θεώρηµα Bolzano: Αν f(x) ∈ C[α, b] και αν f(α) ∗ f(b) 0 τότε για κάποιο ξ ∈ (a, b) ισχύει f(ξ) = 0 H µέθοδος της διχοτόµησης υποδιπλασιάζει κάθε φορά το διάστηµα για να βρεί µία προσέγγιση της ρίζας µε µία δεδοµένη ακρίβεια ε.Δηλαδή σε κάθε επανάληψη της µεθόδου το µήκος του διαστήµατος της ρίζας υπολογίζεται από τον τύπο: bk+1 − αk+1 = b − α 2k (1) για k = 1.2, .... και bk+1, αk+1 τα άκρα του τελευταίου διαστήµατος και α.b τα άκρα του αρχικού διαστήµατος.΄Εστω οτι στη ν-οστή επανάληψη το σφάλµα είναι |xk − ξ| = |αν +bν 2 − ξ|.To ξ είναι ένα εσωτερικό σηµείο του διαστήµατος [αν, bν] ,εποµένως η λύση ξ θα απέχει από το µέσο (αν +bv) 2 κατά µία απόσταση που είναι µικρότερη από το µισό του µήκους του διαστήµατος [αν, bν].΄Αρα, θα ισχύει |xν − ξ| ≤ bv−αν 2 .Aπό τη σχέση (1) θα ισχύει: |xv − ξ| ≤ b − α 2ν Για δεδοµένη ακρίβεια θα πρέπει να ισχύει : b − α 2ν ≤ ε ⇒ 2v ≥ (b − α) ∗ ε−1 ⇒ v ≥ log((b − α)ε−1 log2 ⇒ v ≥ log2((b − α)ε−1 ) Eποµένως,το ελάχιστο πλήθος επαναλήψεων που απαιτούνται για να βρούµε µία προσέγγιση της λύσης είναι: ρ = log2 (α − b) −1 5
  • 6. 2 ΄Ασκηση 2 2.1 Eρώτηµα 2α Θεωρώ µία συνάρτηση f : → µε τύπο: f(x) = x2 − 2 ∗ x − 35 µε την αντίστοιχη function: 1 function [y] = func( x ) Παρακάτω δίνεται το γράφηµα της συνάρτησης µε προσθετικό και πολλαπλασι- αστικό θόρυβο απο κανονική µε τυπική απόκλιση 0.75 και 1 αντίστοιχα. 6
  • 7. Στη συνέχεια µε τις παρακάτω συναρτἠσεις τρέχουµε τη µέθοδο της διχοτόµησης µε προσθετικό και πολλαπλασιαστικό θόρυβο αντίστοιχα. 1 function [ root,iter]=BIS1( a,b,k,s ) 2 function [ root,iter] = BIS2( a,b,k,s ) 7
  • 8. H κάθε συνάρτηση παίρνει σαν όρισµα τα άκρα του διαστήµατος,την ακρίβεια και την τυπική απόκλιση. Με τα script epanbis1 και epanbis2 τρέχω την κάθε µέθοδο για µία συγκεκριµένη ακρίβεια και τυπική απόκλιση 50 φορές ώστε να πάρω ένα δείγµα τιµών για αυτό το ζεύγος και στη συνέχεια βρίσκω το δειγµατικό µέσο.Η κάθε µέθοδος εκτελείται για 7 διαφορετικές τυπικές αποκλίσεις και ακρίβεια 0.5 ∗ 10(−k) µε k = 1, 2..., 10. Πίνακας της Διχοτόµησης µε προσθετικό θόρυβο: 0 1 2 3 4 5 0.05 6.9982 6.9961 6.9954 6.9933 6.9949 0.15 6.9828 6.9753 6.9821 6.9757 6.9801 0.25 6.9861 6.9676 6.9731 6.9592 6.9672 0.50 6.9681 6.9777 6.9812 6.9791 6.9672 0.75 6.9358 6.9852 6.9553 6.9775 6.9529 0.90 6.9567 6.9118 6.9463 6.9609 6.8502 1 6.9513 6.8698 6.8328 6.9475 6.9554 0 6 7 8 9 10 0.05 6.9952 6.9971 6.9948 6.9971 6.9963 0.15 6.9821 6.9760 6.9823 6.9753 6.9870 0.25 6.9671 6.9685 6.9778 6.9758 6.9677 0.50 6.9856 6.9854 6.9668 6.9743 6.9664 0.75 6.9944 6.9432 6.9843 6.9536 6.9616 0.90 6.9449 6.9137 6.9637 6.9142 6.9072 1 6.9101 6.9971 6.9323 6.9355 6.9046 Πίνακας της Διχοτοµησης µε πολλαπλασιαστικό θόρυβο: 0 1 2 3 4 5 0.05 6.9980 7.0002 7.0000 7.0000 7.0000 0.15 6.9980 7.0002 7.0000 7.0000 7.0000 0.25 6.9970 7.0002 7.0000 7.0000 7.0000 0.50 6.9953 7.0004 7.0000 7.0000 7.0000 0.75 7.0007 7.0010 6.9999 7.0000 7.0000 0.90 7.0005 7.0004 6.9999 7.0000 7.0000 1 7.0001 7.0017 7.0001 7.0000 7.0000 8
  • 9. 0 6 7 8 9 10 0.05 7.0000 7.0000 7.0000 7.0000 7.0000 0.15 7.0000 7.0000 7.0000 7.0000 7.0000 0.25 7.0000 7.0000 7.0000 7.0000 7.0000 0.50 7.0000 7.0000 7.0000 7.0000 7.0000 0.75 7.0000 7.0000 7.0000 7.0000 7.0000 0.90 7.0000 7.0000 7.0000 7.0000 7.0000 1 7.0000 7.0000 7.0000 7.0000 7.0000 2.2 Eρώτηµα 2β Δηµιουργώ 2 function για τη Newton µία για προσθετικό και µία για πολλαπλασιαστικό και αντίστοιχα για τη µέθοδο Secant και επαναλαµβάνεται η διαδικασία που περιγράφηκε στο Ερώτηµα α. 1 function [ root,tot] = New_noise1(x0,e,s,MIT ) 2 function [ root,tot] = New_noise2(x0,e,s,MIT ) 3 function[root]=sec_noise1(x0,x1,e,s,MIT) 4 function[root]=sec_noise2(x0,x1,e,s,MIT) Πίνακας για τη µέθοδο Newton µε προσθετικό θόρυβο: 0 1 2 3 4 5 0.05 6.9995 6.9997 6.9996 6.9997 6.9998 0.15 6.9996 7.0015 7.0018 7.0002 7.0013 0.25 7.0012 6.9972 7.0006 7.0011 6.9966 0.50 7.0096 6.9979 7.0060 7.0028 6.9910 0.75 6.9970 7.0142 7.0059 7.0056 7.0093 0.90 7.0148 7.0050 7.0041 6.9828 7.0031 1 7.0065 6.9964 7.0003 7.0104 6.9944 0 6 7 8 9 10 0.05 7.0004 6.9999 7.0000 7.0008 6.9998 0.15 7.0012 6.9972 7.0011 7.0016 7.0021 0.25 7.0066 7.0029 7.0011 6.9994 7.0021 0.50 7.0043 6.9886 7.0113 7.0014 6.9973 0.75 6.9751 7.0057 7.0010 7.0104 6.9999 0.90 7.0049 7.0025 6.9977 6.9963 7.0209 1 7.0056 7.0238 7.0087 7.0133 6.9925 Πίνακας για τη µέθοδο Newton µε πολλαπλασιαστικό θόρυβο: 9
  • 10. 0 1 2 3 4 5 0.05 7.0000 7.0000 7.0000 7.0000 7.0000 0.15 6.9992 6.9999 7.0000 7.0000 7.0000 0.25 7.0014 7.0001 7.0000 7.0000 7.0000 0.50 7.0068 6.7614 6.9999 6.7600 6.7600 0.75 6.7654 5.8001 6.5224 6.7600 6.7600 0.90 6.3084 6.0442 5.5598 5.3199 6.0400 1 6.3267 5.5489 5.5628 5.8000 5.3200 0 6 7 8 9 10 0.05 7.0000 7.0000 7.0000 7.0000 7.0000 0.15 7.0000 7.0000 7.0000 7.0000 7.0000 0.25 7.0000 7.0000 7.0000 7.0000 7.0000 0.50 6.5200 7.0000 6.7600 7.0000 7.0000 0.75 6.5200 5.5600 6.5200 6.2800 6.5200 0.90 5.3200 4.8400 5.5600 6.5200 5.3200 1 5.0800 6.0400 6.0400 4.8400 6.2800 Πίνακας για τη µέθοδο Secant µε προσθετικό θόρυβο: 0 1 2 3 4 5 0.05 6.9992 7.0009 7.0003 6.9998 7.0003 0.15 6.9959 6.9989 7.0009 7.0002 6.9986 0.25 6.9957 6.9976 6.9980 7.0007 6.9991 0.50 6.9831 6.9925 6.9947 7.0000 6.9946 0.75 6.9764 6.9781 6.9915 6.9939 6.9982 0.90 6.9824 6.9914 7.0001 6.9990 6.9957 1 6.9763 6.9967 7.0039 6.9952 6.9942 0 6 7 8 9 10 0.05 6.9998 6.9999 6.9999 7.0000 7.0001 0.15 6.9999 6.9999 7.0003 7.0006 6.9997 0.25 6.9996 7.0031 6.9995 6.9979 6.9997 0.50 6.9995 6.9973 6.9966 7.0004 7.0013 0.75 7.0039 6.9993 6.9991 6.9981 7.0023 0.90 6.9923 6.9989 6.9966 6.9935 6.9963 1 6.9998 6.9955 6.9889 7.0018 7.0021 Πίνακας για τη µέθοδο Secant µε πολλαπλασιαστικό θόρυβο: 10
  • 11. 0 1 2 3 4 5 0.05 6.9997 7.0000 7.0000 7.0000 7.0000 0.15 6.9980 6.9998 7.0000 7.0000 7.0000 0.25 6.9965 6.9979 7.0000 7.0000 7.0000 0.50 7.0080 6.9947 7.0008 6.7596 6.7600 0.75 6.7578 6.9755 6.5204 6.9980 6.9997 0.90 6.5631 6.9768 6.5228 6.7339 6.5205 1 6.7468 7.0842 6.8067 7.0130 6.7627 0 6 7 8 9 10 0.05 7.0000 7.0000 7.0000 7.0000 7.0000 0.15 7.0000 7.0000 7.0000 7.0000 7.0000 0.25 6.7600 7.0000 7.0000 7.0000 7.0000 0.50 7.0000 6.7600 7.0000 7.0000 7.0000 0.75 7.0000 7.0000 7.0000 7.0000 6.7600 0.90 6.2822 6.5200 6.7600 6.7600 7.0000 1 6.5196 6.2637 6.7600 6.2800 6.9999 Παρατηρούµε οτι µε τη µέθοδο Newton παιρνουµε καλές προσ- εγγισεις της ρίζας µε τον προσθετικό θόρυβο και µε τον πολ- λαπλασιαστικό όσο µεγαλώνει η τυπική απόκλιση οι προσεγγί- σεις αποκλίνουν από τη ρίζα.Αντίστοιχα µε τη µέθοδο Secant και µε προσθετικό θόρυβο για ακρίβεια δυο δεκαδικών ψηφίων οι µέσοι συγκλίνουν στη ρίζα ένω µεταβαλλόµενη από τον πολλαπλασι- αστικό θόρυβο αρκετές φορές αποκλίνει.Συγκρίνοντας τις παρα- πάνω µεθόδους µε τη µέθοδο της διχοτόµησης συµπεραίνουµε οτι είναι η µέθοδος που επηρεάζεται λιγότερο. 2.3 Eρώτηµα 2γ Θεωρούµε τη συνάρτηση: f(x) = x4 − 25 ∗ x3 + 200 ∗ x.2 − 560 ∗ x + 384 Το πλήθος ριζών της παραπάνω εξίσωσης είναι 4 ,συνεπώς εφαρµόζω τη µέθοδο Newton τέσσερις φορές για τυχαίες αρχικές τιµές.(script : NewRap.m) 1 2 >> New_Rap(0,10,100 ) 3 N =12 4 5 tot =6 6 11
  • 12. 7 ans =1 8 9 >> New_Rap(3,10,100 ) 10 N =10 11 12 tot =5 13 14 ans =4.0000 15 16 >> New_Rap(7,10,100 ) 17 N =12 18 19 tot =6 20 21 ans =8.0000 22 23 >> New_Rap(11,10,100 ) 24 N =14 25 26 tot =7 27 28 ans =12.0000 Το πλήθος των επαναλήψεων που απαιτήθηκαν για των υπολο- γισµό και των τεσσάρων ριζών ήταν 48. Στη συνέχεια εφαρµόζεται η τεχνική της υποτίµησης.Η µέθοδος αυτή βασίζεται στην απλοποίηση της αρχικής συνάρτησης όταν βρεθεί µία ρίζα.Σε κάθε επανάλ- ηψη της µεθόδου Newton − Raphson αντί της αρχικής συνάρτησης f(x) παίρνουµε τη συνάρτηση g(x) = f(x) x−ρk όπου ρk είναι η ρίζα που υπολογίστηκε προηγουµένως. 1 >> Deflation(0,10,100 ) 2 3 root1 = 4 5 1 6 7 8 root2 = 9 10 4.0000 11 12 13 root3 = 14 12
  • 13. 15 8.0000 16 17 18 root4 = 19 20 12 21 22 23 ans = 24 25 44 Παρατηρούµε οτι το πλήθος των συναρτησιακών υπολογισµών στη µέθοδο της υποτίµησης είναι µικρότερο από τη µέθοδο Newton− Raphson. 3 ΄Ασκηση 3 3.1 Eρώτηµα 3α Θεώρηµα de Moivre: ΄Εστω α ∈ C,α = 0.H εξίσωση xn = α έχει n διακεκριµένες λύσεις που δίνονται από τον τύπο: zk = n √ p(cos θ + 2kπ n + isin θ + 2kπ n ) ΄Οπου p είναι το µέτρο του α. Για την εξίσωση z3 − 1 = 0 ισχύει: |1 + 0 ∗ i| = 1 = p cos(θ) = 1, sin(θ) = 0 ⇒ θ = 0 Oι τρείς λύσεις που προκύπτουν είναι οι εξής: z0 = cos0 + isin0 = 1 z1 = cos( 0 + 2π 3 ) + isin( 0 + 2π 3 ) = − 1 2 + i √ 3 2 z2 = cos( 4π 3 ) + isin( 4π 3 ) = − 1 2 − i √ 3 2 Δηµιουργώ στη Matlab τις ακόλουθες function: 1 function [ root,N,tot] = New_Rap(x0,e,MIT ) 2 function [ f ] = fun( z ) 3 function [ df ] = dfun( z ) 13
  • 14. Tα αποτελέσµατα που παίρνω τρέχοντας τη µέθοδο Newton είναι: 1 >> New_Rap(2,5,100 ) 2 3 tot = 6 4 5 ans = 1.0000 6 7 >> New_Rap(0.5−0.5i,5,100 ) 8 9 tot = 9 10 11 ans =−0.5000 − 0.8660i 12 13 >> New_Rap(0.5+0.5i,5,100 ) 14 15 tot =9 16 17 ans =−0.5000 + 0.8660i 3.2 Eρώτηµα 3β Aντίστοιχα για τη µέθοδο Secant δηµιουργώ τη function: 1 function[root]=secant(x0,x1,e,MIT) 1 >> secant(2,−1,5,100) 2 3 k =17 4 5 ans = 1.0000 6 7 >> secant(0.5+0.5i,0.5+0.9i,5,100) 8 9 k = 15 10 11 ans = −0.5000 − 0.8660i 12 13 >> secant(−0.5−0.5i,0.5+0.9i,5,100) 14 15 k =24 16 17 ans =−0.5000 + 0.8660i H ταχύτητα της σύγκλισης της µεθόδου της τέµνουσας είναι πιο αργή από την ταχύτητα της Newton.Aυτό φαίνεται από το 14
  • 15. πλήθος των επαναλήψεων που είναι µεγαλύτερο συγκριτικά µε της Newton. 3.3 Eρώτηµα 3γ Θεωρώ τη µιγαδική συνάρτηση f : C → C µε f(z) = z3 − 1 και θέτω z = x + iy όπου x, y ∈ .Διαχωρίζω το πραγµατικό µέρος µε το φαναστικό µέρος. f(x) = (x + iy)3 − 1 = x3 + 3 ∗ x2 yi − 3xy2 + i3 y3 − 1 Ref(x) = x3 − 3xy3 − 1 Imf(x) = 3x2 y + y3 Eφαρµόζω τη µέθοδο Newton για συναρτήσεις πολλών µεταβλητών στο σύστηµα: f1(x, y) = Ref(x) = 0 f2(x, y) = Imf(x) = 0 Oι function στην Matlab είναι: 1 function [ root ] = Newton_z( X0,epsh,mit ) 2 function [ F ] = Fun_z( X ) Tρέχοντας τη µέθοδο Newton για διάφορες αρχικές τιµές προκύπ- τουν τα αποτελέσµατα: 1 >> Newton_z( [−2,2],0.0000001,100 ) 2 3 tot_iter = 7 4 5 ans =−0.5000 0.8660 6 7 >> Newton_z( [−1,0],0.0000001,100 ) 8 9 tot_iter =9 10 11 ans = 1 0 12 13 14 >> Newton_z( [−1,−1],0.0000001,100 ) 15 16 tot_iter =6 17 18 ans =−0.5000 −0.8660 19 20 >> Newton_z( [−1,1],0.0000001,100 ) 21 22 tot_iter =6 15
  • 16. 23 24 ans =−0.5000 0.8660 Oι λύσεις του συστήµατος είναι: • r1 = (−1/2, − √ 3/2) • r2 = (−1/2, − √ 3/2 • r3 = (1, 0) Για τις λύσεις αυτές ισχύει: (f1(x, y))2 + (f2(x, y))2 = 0 το οποίο είναι ισοδύναµο µε την επίλυση της εξισωσης z3 − 1 = 0. 3.4 Eρώτηµα 3δ Τρέχοντας τη µέθοδο Broyden για διάφορα αρχικά µητρώα έχουµε τα ακόλουθα αποτελέσµατα: 1 function [ roots ] = Broyden( Eo,Xo,epsh,Max ) 1 >> Broyden( [−1 0;−1 1],[1,1],0.0001,100 ) 2 3 tot_iter = 100 4 5 ans =−0.5004 −0.8658 6 7 >> Broyden( [−1 0;0 1],[1,1],0.0001,100 ) 8 9 tot_iter =14 10 11 ans = 1.0000 0.0000 12 13 >> Broyden( [1 0;0 −1],[1,1],0.0001,100 ) 14 15 tot_iter =41 16 17 ans =−0.5000 0.8660 18 19 >> Broyden( [−2 0;−1 1],[1,1],0.0001,100 ) 20 21 tot_iter = 45 22 23 ans =−0.5000 −0.8660 16
  • 17. Παρατηρείται οτι η µέθοδος Broyden υπολείπεται της µεθόδου Newton στην ταχύτητα σύγκλισης.Είναι φανερό από τις επαναλήψεις που απαιτούνται σε κάθε µέθοδο για να επιτύχουµε την επιθυµητή ακρίβεια. 3.5 Eρώτηµα 3ε Στα παρακάτω script γίνονται οι επαναλήψεις µε το θόρυβο για τις δύο µεθόδους: 1 epan_br_pros 2 epan_new_poll 3 epan_new_pros H µέθοδος Broyden µε προσθετικό θόρυβο: 0 1 2 3 4 5 0.50 [0.7899,-0.0888 ] [0.8588,0.0197] [0.7145, -0.0061 ] [0.7262, 0.5547] [0.7384,0.0679] 0.15 [0.4284,-0.0625] [0.6082, 0.1360] [0.5687, 0.0331] [0.5102, 0.0733] [0.8413, 0.0925] 0.25 [0.2338 ,-0.2440] [0.1996, 0.0068] [0.3768,0.2767 ] [0.5384,0.1008] [0.3608,0.1710] 0.5 [-0.2398, 0.4099] [0.2581, 0.1533] [0.1685, 0.2010] [0.4619, 0.1044 ] [0.1909, 0.0854] 0.75 [-0.2795,0.2122] [-0.1063,-0.1909] [-0.1383, 0.0207 ] [0.1015, -0.0412 ] [0.0503,-0.1007] 0.90 [-0.1175, 0.4018 ] [0.3421, 0.3191] [ 0.0406, 0.0608 ] [0.1125,0.1859] [0.1692, -0.0940] 1 [0.1775, 2.6620] [0.1701, 0.1799] [0.0736, -0.0274] [0.1718, -0.1224] [0.1743, 0.0686] H µέθοδος Newton για συναρτήσεις πολλών µεταβλητών µε προσθετικό θόρυβο: 0 1 2 3 4 5 0.50 [ 0.9982,0.0006] [1.0018, -0.0024] [0.9983,0.0023] [0.9996,-0.0017] [0.9970, 0.0012] 0.15 [0.9938, -0.0024] [0.9754,0.0290 ] [1.0090,-0.0058] [1.0040,0.0028] [0.9629,-0.0134] 0.25 [0.7610,-0.0635 ] [0.8768,-0.0014] [ 0.8877, -0.0067] [0.7067,0.0335] [0.8007,0.0199] 0.5 [0.0234, -0.0503] [-0.0494,-0.0550] [-0.1459,0.1858] [0.1127, -0.1055] [0.2029,0.0129] 0.75 [2.1326, -1.4406] [0.0180, -0.1862] [-0.0933,-0.1136] [-0.0178,-0.2648] [-0.0915,0.2021] 0.90 [-0.5409,-0.4250] [-1.9573,-1.4596] [-0.1059,-0.2273] [-0.1722,-1.7948] [0.1931,-0.4543] 1 [-0.2468 ,0.0714] [-0.0587, -0.9981] [-1.5180, 2.3552 ] [4.6857, -0.3407] [ 0.2845, -0.1467] Η µέθοδος Newton µε πολλαπλασιαστικό θόρυβο: 17
  • 18. 0 1 2 3 4 5 0.50 [1.0005 ,0] [1.0000,0] [1.0000,0] [1.0000,0] [1.0000,0] 0.15 [1.0006,0] [1.0000,0] [1.0000,0] [1.0000,0] [1.0000,0] 0.25 [1.0021,0] [1.0001,0] [1.0000,0] [1.0000,0] [1.0000,0] 0.5 [1.1682,0] [0.9720,0] [1.0024,0] [0.9999,0] [1.0000,0] 0.75 [0.9262,0] [0.9616,0] [0.9976,0] [1.0000,0] [1.0000,0] 0.90 [0.9836,0] [0.9706,0] [1.0006,0] [1.0000,0] [1.0000,0] 1 [0.9489,0] [1.0073,0] [0.9997,0] [0.9999,0] [1.0000,0] 4 ΄Ασκηση 4 4.1 Eρώτηµα 4α Θεωρούµε µία συνάρτηση f : 2 → : f(x1, x2) = 2 ∗ x1 + 2 ∗ x1 ∗ x2 + x2 2 + x1 − x2 Δηµιουργώ τρείς function στη Matlab: 1 function [ F ] = fun( X ) 2 function [ DF ] = Grad( X ) 3 function [ JF ] = jacob( x ) Στην πρώτη έχουµε τη συνάρτηση που µελετάµε,στην δεύτερη είναι οι µερικές παράγωγοι της συνάρτησης και στην τρίτη το Εσσιανό µητρώο. Στη συνέχεια δηµιουργώ τη function για την επίλυση του συστήµατος των µερικών παραγώγων µε τη µέθοδο της Newton: 1 function [ root ] = Newton( X0,epsh,mit ) Tρέχοντας τη µέθοδο Newton για αρχικές τιµές [-2,2] και αναζη- τούµε για ποιες τιµές οι µερικές παράγωγοι µηδενίζονται. 1 >> Newton( [−2,2],0.0001,100 ) 2 3 ans = 4 5 −1.0000 1.5000 Συµπεραίνουµε οτι οι µερικές παράγωγοι µηδενίζονται για x1 = −1 και x2 = 1.5.Η παραπάνω λύση του συστήµατος είναι και ακρό- τατα της f(x) διότι αποτελούν τα σηµεία στα οποία οι µερικές παράγωγοι της f µηδενίζονται. 18
  • 19. 4.2 Eρώτηµα 4β Το θεώρηµα του Taylor για πολλές µεταβλητές είναι: f(x∗ + s) = f(x∗ )+ < f(x∗ ), s > + 1 2 ∗ sT 2 f(x∗ ) ∗ s όπου x είναι η ρίζα, f(x∗ ) η κλίση και 2 f(x∗ ) είναι το Ιακω- βιανό µητρώο και s ένα τυχαίο διάνυσµα. Γνωρίζουµε ότι όταν < f(x∗ ), s > 0 είναι σηµείο ακροτάτου. • Εαν ισχύει sT 2 f(x∗ )∗s > 0 τότε το x∗ είναι ελαχιστοποιητής της συνάρτησης και η f(x∗) το ελάχιστο. • Εαν sT 2 f(x∗ ) ∗ s < 0 τότε το x∗ είναι µεγιστοποιητής της συνάρτησης και η f(x∗ ) το µέγιστο. • Εαν το sT 2 f(x∗ )∗s είναι πότε θετικά ορισµένο και πότε αρν- ητικά τότε το x∗ είναι σαγµατικό σηµείο και δε µπορούµε να βγάλουµε συµπέρασµα για την f(x∗ ).Σε αυτή την περίπτωση το x∗ αποτελεί µεγιστοποιητή σε ορισµένες κατευθύνσης και ελαχιστοποιητή σε άλλες. ΄Εστω τυχαίο διάνυσµα s = [1, 1, 1]T και το Εσιανό µητρώο στη συγκεκριµένη περίπτωση είναι: JF = 4 2 2 2 sT JFs = 10 > 0 Συνεπάγεται οτι το σηµείο x∗ είναι ελαχιστοποιητής της συνάρτησης. 5 ΄Ασκηση 5 5.1 Eρώτηµα 5α Θεωρούµε την ίδια συνάρτηση µε την άσκηση 4,δηλαδή f(x1, x2) = 2 ∗ x1 + 2 ∗ x1 ∗ x2 + x2 2 + x1 − x2 Δηµιουργούµε την function για τη µέθοδο Cauchy και την τρέχω στη Matlab για διάφορα λ. 1 function [ roots,iter] = Cauchy( X0,epsh,h,max) Τα ορίσµατά της είναι οι αρχικέ τιµές,η ακρίβεια µε την οποία επιθυµώ να βρώ την προσεγγιστική λύση και ο µέγιστος αριθµός επαναλήψεων που θέλω να κάνει και επιστρέφει το διάνυσµα των λύσεων και τον αριθµό των επαναλήψεων. 19
  • 20. 1 >> Cauchy( [−2,3],0.0001,0.1,300) 2 iter =120 3 ans =−1.0001 1.5001 4 5 >> Cauchy( [−2,3],0.0001,0.01,300) 6 iter =300 7 maximum iterations 8 ans = −1.0949 1.6536 9 10 >> Cauchy( [−2,3],0.0001,0.001,300) 11 iter =300 12 maximum iterations 13 ans =−1.7641 2.7119 14 15 >> Cauchy( [−10,10],0.0001,0.1,300) 16 iter =144 17 ans =−1.0001 1.5001 18 19 >> Cauchy( [−10,10],0.0001,0.01,300) 20 iter =300 21 maximum iterations 22 ans =−1.6301 2.5196 23 24 >> Cauchy( [−50,50],0.0001,0.1,300) 25 iter =166 26 ans =−1.0001 1.5001 Παρατηρούµε οτι για κατάλληλη επιλογή του λ η µέθοδος συγκλίνει.Και επίσης αν οι αρχικές συνθήκες είναι πιο µακρυά από το πραγµατικό ελάχιστο η µέθοδος χρειάζεται περισσότερες επαναλήψεις για να συγκλίνει.Μπορούµε να επιταχύνουµε γρηγορότερη σύγκλιση παίρνοντας µεταβαλλόµενο βήµα µε τη µέθοδο του Armijo. Δηµιουργούµε µία καινούργια function: 1 function [roots ]=Armijo( x0,h,epsh) Παίρνει σαν ορίσµατα τις αρχικές τιµές,την αρχική τιµή του µεταβαλλόµενου βήµατος που είναι ένας αυθέραιτα επιλεγµένος θετικός αριθµός και την επιθυµητή ακρίβεια. 1 >> Armijo( [−2,3],1,0.0001) 2 iter =91 3 ans =−1.0001 1.5001 4 5 >> Armijo( [−2,3],2,0.0001) 6 iter = 47 7 ans =−1.0001 1.5001 20
  • 21. 8 9 >> Armijo( [−50,50],2,0.0001) 10 iter =547 11 ans =−1.0001 1.5001 Παρατηρούµε οτι ο αριθµός των επαναλήψεων είναι αισθητά µικρότερος,άρα και η µέθοδος συγκλίνει γρηγορότερα. • Aν θέλουµε να υπολογίσουµε το µεγιστοποιητή µίας συνάρτησης f(x) θέτουµε h(x) = −f(x) και εφαρµόζουµε τη µέθοδο Cauchy.Δηλαδή το τοπικό µέγιστο της f(x) είναι τοπικό ελάχιστο για την h(x). • Εαν θεωρήσουµε τη συνάρτηση G(x, y) = ϕ2 1(x, y) + ϕ2 2(x, y) = 0 και εφαρµόσουµε τη µέθοδο Cauchy τότε θα βρούµε τους ελαχιστοποιητές της.Δηλαδή θα βρούµε τις τιµές των (x, y) για τις οποίες ισχύει ϕ1(x, y) = ϕ2(x, y) = 0. 5.2 Ερώτηµα 5β Για να εφαρµόσουµε τη µέθοδο Cauchy µε πολλαπλασιαστικό και προθετικό θόρυβο χρειαζόµαστε δύο επιπλέον συναρτήσεις: 1 function [ roots,iter] = Cau_pros( X0,k,s,h,max) 2 function [ roots,iter] = Cau_poll( X0,epsh,s,h,max) Και στη συνέχεια τρέχουµε την κάθε µέθοδο για διαφορετικά ε και διαφορετικές τυπικές αποκλίσης s.Για τον κάθε συνδιασµό τρέχουµε τη µέθοδο 50 φορές και κρατάµε το µέσο των πενήντα προσεγγιστικών τιµών.Αυτή η διαδικασία πραγµατοποιείται στα script epanpros και epanpoll. Πίνακας αποτελεσµάτων της µεθόδου Cauchy µε προσθετικό θόρυβο: 0 1 2 3 4 5 0.05 [-1.0532, 1.5838] [-1.0019, 1.5021] [-1.0002,1.4989] [-0.9986, 1.4975] [-0.9996, 1.5006] 0.15 [-1.0548,1.5875] [-0.9959, 1.4939 ] [-0.9985,1.4945] [-1.002,1.5022] [-1.0010,1.5047] 0.25 [-1.0176, 1.5431] [ -0.9995, 1.5013 ] [-1.0035, 1.5045] [-1.0063,1.5051] [-1.0001,1.4996] 0.50 [-1.0323, 1.5370] [-0.9921,1.5032] [-0.9913, 1.4821 ] [-0.9920, 1.5053 ] [-0.9875,1.4765] 0.75 [-1.0175, 1.5207] [-0.9917, 1.5302 ] [-0.9977, 1.5110 ] [-0.9778, 1.4876 ] [-1.0016,1.5109] 0.90 [-1.0258, 1.5006] [-1.0063, 1.5257 ] [-1.0105, 1.4785] [-0.9878,1.4572 ] [-1.0118, 1.5141] 1 [-0.9890, 1.4994] [-1.0095, 1.5348] [-0.9693, 1.4457 ] [-0.9972,1.4405 ] [-0.9933,1.5193] 21
  • 22. 0 6 7 8 9 10 0.05 [-1.0008, 1.5014] [-1.0004, 1.5007 ] [-1.0002,1.4980 ] [-1.0002, 1.5004 ] [-1.0010,1.5009] 0.15 [-0.9990, 1.4987] [-1.0025, 1.5008] [-1.0013,1.5011] [-0.9990, 1.5008] [-1.0013, 1.4960] 0.25 [-1.0044,1.5068] [-1.0021,1.4962 ] [-1.0077, 1.5027 ] [-0.9988, 1.4952] [-1.0057, 1.5039] 0.50 [-0.9913,1.4928] [-0.9897, 1.4779 ] [-1.0055, 1.5164] [-1.0016,1.5114] [-0.9781, 1.4829] 0.75 [-0.9617,1.4728 ] [-1.0263, 1.5103 ] [-0.9766, 1.4398] [-0.9944,1.4978] [-0.9754 1.4942] 0.90 [-1.0104, 1.5106 ] [-0.9903, 1.4662 ] [-1.0069,1.4690 ] [-0.9993, 1.5330] [-1.0339, 1.5274] 1 [-1.0486, 1.5269] [-1.0461,1.5561] [-0.9772,1.4513] [-0.9607,1.4570] [-1.0240,1.5488] Πίνακας της µεθόδου Cauchy µε πολλαπλασιαστικό θόρυβο: 0 1 2 3 4 5 0.05 [ -1.0331, 1.5536 ] [-1.0033, 1.5054] [-1.0003, 1.5005] [-1.0000,1.5001 ] [-1.0000, 1.5000] 0.15 [ -1.0340, 1.5548] [-1.0034, 1.5054] [-1.0003, 1.5006] [-1.0000,1.5001] [-1.0000,1.5000] 0.25 [-1.0369, 1.5597 ] [-1.0037, 1.5060 ] [-1.0004, 1.5006] [-1.0000,1.5001] [-1.0000,1.5000] 0.50 [-1.0559,1.5914] [-1.0062,1.5101] [-1.0006,1.5010] [-1.0001, 1.5001] [-1.0000,1.5000] 0.75 [-1.0730,1.6189] [-1.0091,1.5151] [-1.0010,1.5017] [-1.0002, 1.5003 ] [-1.0000,1.5000] 0.90 [-1.0706, 1.6185 ] [-1.0113,1.5190 ] [-1.0009,1.5015] [-1.0001, 1.5001 ] [-1.0000, 1.5000] 1 [-1.1065, 1.6804] [-1.0096,1.5161] [-1.0007,1.5012] [-1.0001,1.5001] [-1.0000,1.5000] 0 6 7 8 9 10 0.05 [-1.0000,1.5000] [-1.0000,1.5000] [-1.0000,1.5000] [-1.0000,1.5000] [-1.0000, 1.5000] 0.15 [-1.0000, 1.5000] [-1.0000,1.5000] [-1.0000,1.5000] [-1.0000,1.5000] [-1.0000,1.5000] 0.25 [-1.0000,1.5000] [-1.0000,1.5000] [-1.0000,1.5000] [-1.0000,1.5000] [-1.0000,1.5000] 0.50 [-1.0000,1.5000] [-1.0000,1.5000] [-1.0000,1.5000] [-1.0000,1.5000] [-1.0000,1.5000] 0.75 [-1.0000,1.5000] [-1.0000,1.5000] [-1.0000,1.5000] [-1.0000,1.5000] [-1.0000,1.5000] 0.90 [-1.0000,1.5000] [-1.0000,1.5000] [-1.0000,1.5000] [-1.0000,1.5000] [-1.0000,1.5000] 1 [-1.0000,1.5000] [-1.0000,1.5000] [-1.0000,1.5000] [-1.0000,1.5000] [-1.0000,1.5000] Παρατηρούµε οτι η µέθοδος συγκλίνει τόσο για προσθετικό θόρυβο όσο και για πολλαπλασιαστικό θόρυβο.Δεν µπορούµε να βρούµε κάποιο συγκεκριµένο ε και κάποια τυπική απόκλιση για τα οποία να έχούµε την καλύτερη ακρίβεια. 6 ΄Ασκηση 6 6.1 Eρώτηµα 6α Θεωρούµε τη συνάρτηση f : 2 → µε τύπο f(x1, x2) = x3 1 3 − 9 ∗ x1 + x3 2 3 − 4 ∗ x2 22
  • 23. Εξετάζουµε το πιθανό ακρότατο (3,2) το οποίο γνωρίζουµε οτι είναι ελάχιστο σηµείο διότι το εσσιανό µητρώο f(x1, x2) είναι θετικά ορισµένο. Δηµιουργούµε τις αντίστοιχες functions στην Matlab για τη συνάρτηση,τις µερικές παραγώγους,τη µέθοδο Cauchy− Armijo και τη µέθοδο Cauchy: 1 function [ y ] =func( X ) 2 function [ Df ] = Grad( X ) 3 function [roots ]=Armijo( x0,h,epsh) 4 function [roots ]=Armijo( x0,h,epsh) Συνθήκη του Armijo: f(xk − η (f(xk) − f(xk) ≤ − η 2 || (f(xk)||2 Εαν ισχύει η παραπάνω ανισότητα κάνω αποδεκτό αυτό το η και προχωράω στην επόµενη επανάληψη.Εαν δεν ισχύει η συνθήκη υποδιπλασιάζουµε το η και εξετάζουµε αν ισχύει το νέο η. Τα αποτελέσµατα που παίρνουµε εφαρµόζοντας τη µέθοδο Cauchy− Armijo µε µεταβαλλόµενο βήµα είναι τα παρακάτω: 1 >> Armijo( [1,1],1,0.0001) 2 iter =19 3 4 ans =3.0000 2.0000 5 6 >> Armijo( [1,1],10,0.0001) 7 iter =14 8 9 ans =3.0000 2.0000 10 11 >> Armijo( [1,1],5,0.0001) 12 iter =32 13 14 ans = 3.0000 2.0000 15 16 >> Armijo( [−1,−1],10,0.0001) 17 iter =18 18 19 ans =3.0000 2.0000 Τα αντιστοιχα αποτελέσµατα εφαρµόζοντας τη µέθοδο Cauchy εί- ναι: 1 >> Cauchy( [1,1],0.0001,0.1,100) 2 iter =22 3 4 ans =3.0000 2.0000 23
  • 24. 5 6 >> Cauchy( [1,1],0.0001,0.01,100) 7 iter =100 8 9 maximum iterations 10 11 ans =2.9937 1.9774 12 13 >> Cauchy( [1,1],0.0001,0.05,100) 14 iter =50 15 16 ans =3.0000 2.0000 17 18 >> Cauchy( [1,1],0.0001,0.3,100) 19 20 iter =47 21 22 ans =3.0000 2.0000 23 24 >> Cauchy( [−1,−1],0.0001,0.3,100) 25 iter =49 26 27 ans =3.0000 2.0000 Παρατηρούµε οτι µε τη µέθοδο Cauchy − Armijo προσεγγίζουµε γρηγορότερα την λύση στις περισσότερες περιπτώσεις,διότι ο αριθµός των επαναλήψεων είναι αισθητά µικρότερος. 6.2 Ερώτηµα 6β Θεωρώ τη συνάρτηση συστολής F : D ⊂ → µε τύπο ϕ(x) = x 3 + 5 Ορισµός: ΄Εστω µετρικός χώρος (Χ, ρ) και f : X → X είναι µία συνάρτηση.Η f λέγεται συνάρτηση συστολής αν ικανοποιεί τη συνθήκη Lipschitz µε 0 ≤ l ≤ 1 δηλαδή αν υπάρχει 0 ≤ l ≤ 1 ώστε για x, y ∈ X να ισχύει: ρ(f(x), f(y)) ≤ lρ(x, y) Θεώρηµα σταθερού σηµείου του Banach: ΄Εστω (X, ρ) είναι πλήρης µετρικός χώρος και η f : X → X είναι µία συστολή.Τότε η f έχει µοναδικό σταθερό σηµείο x.Επιπλέον εαν xD ∈ X και το x1 = f(x0),x2 = f(x2),...,xn = f(xn−1) τότε η ακολουθία συγκλίνει σε αυτό το σηµείο ,xn → x.. 24
  • 25. Για τη συνάρτηση που επιλέχτηκε ισχύει: |ϕ(x) − ϕ(y)| = |( x 3 + 5) − ( y 3 + 5)| = 1 3 |x − y| άρα είναι συστολή. Για την εφαρµογή του θεωρήµατος στη Matlab δηµιουργούµε δύο συναρτήσεις: 1 function [ func6b ] =f6b( X ) 2 function [k,r ] = Banach(po,epsh,Max ) και τα αποτελέσµατα για διάφορες αρχικές τιµές είναι : 1 >> Banach([−2,−1],0.0001,100 ) 2 l = 11 3 4 r =7.4998 7.4999 5 6 >> Banach([0,0],0.0001,100 ) 7 l = 11 8 9 r = 7.4999 7.4999 10 11 >> Banach([3,2],0.0001,100 ) 12 l =10 13 14 r =7.4998 7.4997 15 16 >> Banach([1,1],0.0001,100 ) 17 l = 10 18 19 r =7.4997 7.4997 6.3 Eρώτηµα 6γ Θεωρώ τη συνάρτηση F : D ⊂ 2 → 2 µε τύπο f(x1, x2) = x2 1 + x1 ∗ x2 − 6 f(x1, x2) = x2 2 + x1 ∗ x2 + 2 Δηµιουργώ τέσσερις functions στη Matlab: 1 function [ f ] = f6c( X ) 2 function [ J ] = Jacob( X ) 3 function [ roots,tot_iter ] = Newton( Xo,epsh,Max ) 4 function [ roots ] = Broyden( Eo,Xo,epsh,Max ) 25
  • 26. Οι δύο µέθοδοι βρίσκουν ρίζες σε ένα σύστηµα.Υπολογίζοντας όµως τις ρίζες βρίσκουµε ουσιαστικά τα σταθερά σηµεία.Δηλαδή,µπορούµε να βρούµε ένα σταθερό σηµείο της συνάρτησης F επιλύοντας το σύστηµα: g1(x1, x2) = f1(x1, x2) − x1 = 0 g2(x1, x2) = f2(x1, x2) − x2 = 0 Eφαρµόζουµε και τις δύο µεθόδους για διάφορες αρχικές τιµές και παίρνουµε τα παρακάτω αποτελέσµατα: 1 >> Newton( [−5,3],0.0001,100 ) 2 3 tot_iter =2 4 5 ans =−3 1 6 7 >> Newton( [1,−2],0.0001,100 ) 8 9 tot_iter =5 10 11 ans =−3.0000 1.0000 12 13 >> Newton( [1,1],0.01,100 ) 14 15 tot_iter =2 16 17 ans =3 −1 18 19 >> Newton( [10,5],0.0001,100 ) 20 21 tot_iter =7 22 23 ans =3.0000 −1.0000 1 >> Broyden( [1 0;0 1],[1,1],0.0001,100 ) 2 3 tot_iter = 3 4 5 ans =3.0000 −1.0000 6 7 >> Broyden( [1 0;0 1],[−5,3],0.0001,100 ) 8 9 tot_iter =3 10 11 ans =−3 1 12 26
  • 27. 13 >> Broyden( [1 0;0 1],[1,2],0.0001,100 ) 14 15 tot_iter = 4 16 17 ans =−3.0000 1.0000 18 19 >> Broyden( [1 0;0 1],[10,5],0.0001,100 ) 20 21 tot_iter =22 22 23 ans =3.0000 −1.0000 Tα σταθερά σηµεία του συστήµατος είναι (3,-1). Παρατηρείται οτι η ταχύτητα της µεθόδου Newton είναι καλύτερη από αυτη της µεθόδου Broyden.Γνωρίζουµε όµως οτι η µέθοδος Broyden υπερτ- ερεί στο υπολογιστικό κόστος διότι δεν απαιτεί τον υπολογισµό των µερικων παραγώγων σε κάθε επανάληψη. 7 ΄Ασκηση 9 7.1 Eρώτηµα 9β Mε την εντολή sprand αποθηκεύουµε τα µητρώα σε αραιή µορφή. Mε την εντολή tic−toc υπολογίζουµε το χρόνο που χρειάστηκε σε κάθε περίπτωση.Το N δηλώνει το πλήθος των συνασρτησιακών υπολογισµών µεχρι να επιτευχθελι η επιθυµητή ακρίβεια. • H µέθοδος Jacobi είναι µία επαναληπτική µέθοδος και το επαναλη- πτικό της σχήµα είναι: xk+1 = −D−1 (L + U) ∗ xk + D−1 ∗ b όπου D διαγώνιο µητρώο και L και U είναι άνω και κάτω τριγωνικό αντίστοιχα. Με την παρακάτω function τρέχουµε κάθε φορά τη µέθοδο για τα µητρώα που ζητούνται. 1 function [RR,N,iter ] = Jacobi(A,b,x0, e,max) Για το µητρώο A1 = toeplitz([2, −1, zeros(1, n − 2)]) και για n = 512 και n = 1024 δίνει τα ακόλουθα αποτελέσµατα: 1 max=1000 2 >> [RR,N,iter ] = Jacobi(A,b,x0, e,max) 27
  • 28. 3 Elapsed time is 0.348277 seconds. 4 5 RR = 0.0042 6 7 N = 4000 8 9 iter =1000 10 11 >> max=10000 12 13 max =10000 14 15 >> [RR,N,iter ] = Jacobi(A,b,x0, e,max) 16 Elapsed time is 0.857817 seconds. 17 18 RR =7.5114e−04 19 20 N =40000 21 22 iter =10000 1 >> [RR,N,iter ] = Jacobi(A,b,x0, e,max) 2 Elapsed time is 0.132119 seconds. 3 4 RR = 0.0042 5 6 7 N =4000 8 9 10 iter =1000 Για το µητρώο A3 + 10 ∗ I και για n = 512, 1024 αντίστοιχα. 1 max=1000 2 Elapsed time is 0.614030 seconds. 3 4 RR = 1.3187e−16 5 6 N = 4000 7 8 9 iter =1000 28
  • 29. 1 max=1000 2 Elapsed time is 0.637301 seconds. 3 4 RR =1.2744e−16 5 6 N = 4000 7 8 9 iter =1000 Για το µητρώο A4 = gallery( wathen , 99, 9) 1 A=gallery('wathen',99,9) 2 max=10000 3 >> [RR,N,iter ] = Jacobi(A,b,x0, e,max) 4 Elapsed time is 87.477299 seconds. 5 6 RR =Inf 7 8 N =40000 9 10 iter =10000 Σε αυτή την περίπτωση η µέθοδος Jacobi αποκλίνει. • Η µέθοδος Conjugate Gradient σε κάθε επανάληψη απαιτεί1MV + 2DOT + 3SAXPY πράξεις. 1 function [RR, N,iter , flag] = con_grad(A,x,b,max ,tol) Για το µητρώο A1 = toeplitz([2, −1, zeros(1, n − 2)]) και για n = 512 και n = 1024 δίνει τα ακόλουθα αποτελέσµατα: 1 A=toeplitz([2,−1,zeros(1,510)]) 2 N = 1536 3 4 Elapsed time is 0.054437 seconds. 5 6 iter =256 7 8 relres=0.0000 29
  • 30. 9 10 A=toeplitz([2,−1,zeros(1,1022)]) 11 N = 3072 12 13 Elapsed time is 0.050585 seconds. 14 15 iter = 512 16 17 relres=0.0000 Για το µητρώο A3 + 10 ∗ I 1 2 B=sprand(512,512,0,01) 3 A3=B(1:512,1:512) 4 A=A3+10*eye(512,512) 5 tot=0.00000001 6 7 N = 6006 8 9 Elapsed time is 0.089261 seconds. 10 11 iter = 1000 12 13 relres=0.0001 14 15 B=sprand(1024,1024,0B=sprand(1024,1024,0.01) 16 A3=B(1:1024,1:1024) 17 A=A3+10*eye(1024,1024) 18 tot=0.000000001 19 20 relres=0.0021 21 22 23 N = 6006 24 25 Elapsed time is 3.593525 seconds. 26 27 iter = 1000 Για το µητρώο A4 = gallery( wathen , 99, 9) 1 relres=0.0000 30
  • 31. 2 3 N =1332 4 5 Elapsed time is 0.106068 seconds. 6 7 iter =222 31
  • 32. Αναφορές [1] ΑΡΙΘΜΗΤΙΚΗ ΑΝΑΛΥΣΗ ,ΜΙΧΑΗΛ Ν.ΒΡΑΧΑΤΗΣ,5η ΕΚΔΟΣΗ [2] ΑΡΙΘΜΗΤΙΚΗ ΑΝΑΛΥΣΗ,ΔΗΜΗΤΡΗΣ Α.ΓΕΩΡΓΙΟΥ [3] Νumerical Recipes in C,William H.Press,Second Edition 32