-
Notifications
You must be signed in to change notification settings - Fork 9
/
ex5.py
57 lines (45 loc) · 1.17 KB
/
ex5.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
import math
import numpy as np
import numpy.random as rnd
import matplotlib.pyplot as plt
np.set_printoptions(precision=5)
print(f"Exercise 5::")
print(f" 5.1:")
x = np.arange(1,7)
print(f" x:\n{x}\n")
print(f" Solution 1:")
y = np.power(3,x)
print(f" y:\n{y}\n")
print(f" Solution 2:")
y = 3**x
print(f" y:\n{y}\n")
print(f" 5.2:")
A = rnd.random((5,10))
print(f" A:\n{A}\n")
max_val = A.max()
print(f" Max val for all of A:\n{max_val}\n")
min_val_eachcol = A.min(axis=0)
print(f" Min. val in each column:\n{min_val_eachcol}\n")
min_val_fourthrow = A[3,:].min()
print(f" Min. val in fourth row:\n{min_val_fourthrow}\n")
bool_mat = (A < 0.02) | (A > 0.98)
print(f" Boolean Matrix:\n{bool_mat}\n".format(bool_mat))
print(f" Any val <0.02 or >0.98? {bool_mat.any()}\n")
print(f" Corresponding values:\n{A[bool_mat]}\n")
print(f" 5.3:")
def calc_sn(n):
"""
Function which returns an array of
partial sums
"""
k = np.arange(1,n+1)
nom = np.sin(k)
denom = k**2
return np.cumsum(nom/denom)
N = 100
k = np.arange(1,N+1)
Sk = calc_sn(N)
plt.xlabel("$n$")
plt.ylabel("$S_n$")
plt.title("Convergence of the Partial Sum $S_n$")
plt.plot(k,Sk);