forked from GuilhermeBianeck/AnaliseNumerica
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathExercicio8_Aprox.py
216 lines (173 loc) · 4.12 KB
/
Exercicio8_Aprox.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
import math
def F1(x0, h, f):
return (f(x0) - f(x0 - h)) / h
def F2(x0, h, f):
return (f(x0 + h) - f(x0 - h)) / 2*h
def F3(x0, h, f):
return (f(x0 - 2*h) - 8*f(x0 - h) + 8*f(x0 + h) - f(x0 + 2*h)) / (12 * h)
hs = [.1, .05, .025, .0125]
x0 = 1 # p
def f1(x):
return math.cos(x**x)
def f2(x):
return math.sin(x)
def f3(x):
return x**math.cos(x)
def f4(x):
return math.exp(-x**2)
print('Questão 8 - EX - 1)')
for h in hs:
print(' Aproximacao F1 com H =', h)
print(" ",F1(x0, h, f1))
print()
for h in hs:
print(' Aproximacao F2 com h =', h)
print(F2(x0, h, f1))
print()
for h in hs:
print(' Aproximacao F3 com h =', h)
print(F3(x0, h, f1))
print('\nQuestão 8 - EX - 2)')
for h in hs:
print(' Aproximacao F1 com h =', h)
print(F1(x0, h, f2))
print()
for h in hs:
print(' Aproximacao F2 com h =', h)
print(F2(x0, h, f2))
print()
for h in hs:
print(' Aproximacao F3 com h =', h)
print(F3(x0, h, f2))
print('\nQuestão 8 - EX - 3)')
for h in hs:
print(' Aproximacao F1 com h =', h)
print(F1(x0, h, f3))
print()
for h in hs:
print(' Aproximacao F2 com h =', h)
print(F2(x0, h, f3))
print()
for h in hs:
print(' Aproximacao F3 com h =', h)
print(F3(x0, h, f3))
print('\nQuestão 8 - EX - 4)')
for h in hs:
print(' Aproximacao F1 com h =', h)
print(F1(x0, h, f4))
print()
for h in hs:
print(' Aproximacao F2 com h =', h)
print(F2(x0, h, f4))
print()
for h in hs:
print(' Aproximacao F3 com h =', h)
print(F3(x0, h, f4))
# import sympy as sy
# x = sy.Symbol('x')
# string = 'x ** x'
# f = sy.sympify(string)
# df = sy.diff(f, x, 2).subs(x, x0)
# print('exact:', df.evalf())
"""
Questão 8 - EX - 1)
Aproximacao F1 com H = 0.1
-0.7381240949060053
Aproximacao F1 com H = 0.05
-0.7878935990431524
Aproximacao F1 com H = 0.025
-0.8141874565698748
Aproximacao F1 com H = 0.0125
-0.8277032149599695
Aproximacao F2 com h = 0.1
-0.008496589053044502
Aproximacao F2 com h = 0.05
-0.002108804363901572
Aproximacao F2 com h = 0.025
-0.0005262399402257812
Aproximacao F2 com h = 0.0125
-0.00013149987951936864
Aproximacao F3 com h = 0.1
-0.8415612982761268
Aproximacao F3 com h = 0.05
-0.8414760256460218
Aproximacao F3 com h = 0.025
-0.8414712906281226
Aproximacao F3 com h = 0.0125
-0.841471003778195
Questão 8 - EX - 2)
Aproximacao F1 com h = 0.1
0.5814407518041309
Aproximacao F1 com h = 0.05
0.5611096003704552
Aproximacao F1 com h = 0.025
0.5507638656255542
Aproximacao F1 com h = 0.0125
0.5455473607818373
Aproximacao F2 com h = 0.1
0.0053940225216976
Aproximacao F2 com h = 0.05
0.0013501930201160806
Aproximacao F2 com h = 0.025
0.00033765376633544675
Aproximacao F2 com h = 0.0125
8.442003681336172e-05
Aproximacao F3 com h = 0.1
0.5403005070032606
Aproximacao F3 com h = 0.05
0.540302193338656
Aproximacao F3 com h = 0.025
0.5403022988334759
Aproximacao F3 com h = 0.0125
0.540302305428446
Questão 8 - EX - 3)
Aproximacao F1 com h = 0.1
0.6339453451314703
Aproximacao F1 com h = 0.05
0.5879145857912582
Aproximacao F1 com h = 0.025
0.564283765667799
Aproximacao F1 com h = 0.0125
0.552334003349344
Aproximacao F2 com h = 0.1
0.005378749671497829
Aproximacao F2 com h = 0.05
0.0013492344380143491
Aproximacao F2 com h = 0.025
0.0003375937918925959
Aproximacao F2 com h = 0.0125
8.441628742492102e-05
Aproximacao F3 com h = 0.1
0.5402663631130586
Aproximacao F3 com h = 0.05
0.5403000445577247
Aproximacao F3 com h = 0.025
0.5403021643022908
Aproximacao F3 com h = 0.0125
0.5403022970166111
Questão 8 - EX - 4)
Aproximacao F1 com h = 0.1
-0.7697862505149877
Aproximacao F1 com h = 0.05
-0.7535012778375649
Aproximacao F1 com h = 0.025
-0.7447977865208766
Aproximacao F1 com h = 0.0125
-0.7403184552503506
Aproximacao F2 com h = 0.1
-0.007333039339652689
Aproximacao F2 com h = 0.05
-0.0018378639929664986
Aproximacao F2 com h = 0.025
-0.0004597534935440434
Aproximacao F2 com h = 0.0125
-0.00011495633765142635
Aproximacao F3 com h = 0.1
-0.7357680241529193
Aproximacao F3 com h = 0.05
-0.7357594849270432
Aproximacao F3 com h = 0.025
-0.7357589204984263
Aproximacao F3 com h = 0.0125
-0.7357588847353493
"""