-
Notifications
You must be signed in to change notification settings - Fork 40
/
Copy pathtask1.py
67 lines (62 loc) · 3.73 KB
/
task1.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
x = [1.49066127e-06, 1.00024454e-02, 2.00039718e-02, 3.00063867e-02,
4.00101677e-02, 5.00160261e-02, 6.00250086e-02, 7.00386374e-02,
8.00590993e-02, 9.00894983e-02, 1.00134185e-01, 1.10199182e-01,
1.20292721e-01, 1.30425906e-01, 1.40613524e-01, 1.50874996e-01,
1.61235486e-01, 1.71727136e-01, 1.82390409e-01, 1.93275480e-01,
2.04443599e-01, 2.15968314e-01, 2.27936438e-01, 2.40448564e-01,
2.53618982e-01, 2.67574773e-01, 2.82453905e-01, 2.98402141e-01,
3.15568647e-01, 3.34100210e-01, 3.54134113e-01, 3.75789783e-01,
3.99159480e-01, 4.24298431e-01, 4.51214920e-01, 4.79860987e-01,
5.10124440e-01, 5.41822943e-01, 5.74700902e-01, 6.08429771e-01,
6.42612264e-01, 6.76790724e-01, 7.10459615e-01, 7.43081815e-01,
7.74108085e-01, 8.02998761e-01, 8.29246539e-01, 8.52398993e-01,
8.72079469e-01, 8.88004992e-01, 9.00000000e-01, 9.08004992e-01,
9.12079469e-01, 9.12398993e-01, 9.09246539e-01, 9.02998761e-01,
8.94108085e-01, 8.83081815e-01, 8.70459615e-01, 8.56790724e-01,
8.42612264e-01, 8.28429771e-01, 8.14700902e-01, 8.01822943e-01,
7.90124440e-01, 7.79860987e-01, 7.71214920e-01, 7.64298431e-01,
7.59159480e-01, 7.55789783e-01, 7.54134113e-01, 7.54100210e-01,
7.55568647e-01, 7.58402141e-01, 7.62453905e-01, 7.67574773e-01,
7.73618982e-01, 7.80448564e-01, 7.87936438e-01, 7.95968314e-01,
8.04443599e-01, 8.13275480e-01, 8.22390409e-01, 8.31727136e-01,
8.41235486e-01, 8.50874996e-01, 8.60613524e-01, 8.70425906e-01,
8.80292721e-01, 8.90199182e-01, 9.00134185e-01, 9.10089498e-01,
9.20059099e-01, 9.30038637e-01, 9.40025009e-01, 9.50016026e-01,
9.60010168e-01, 9.70006387e-01, 9.80003972e-01, 9.90002445e-01]
u = [3.72665317e-06, 6.11356797e-06, 9.92950431e-06, 1.59667839e-05,
2.54193465e-05, 4.00652974e-05, 6.25215038e-05, 9.65934137e-05,
1.47748360e-04, 2.23745794e-04, 3.35462628e-04, 4.97955422e-04,
7.31802419e-04, 1.06476624e-03, 1.53381068e-03, 2.18749112e-03,
3.08871541e-03, 4.31784001e-03, 5.97602290e-03, 8.18870101e-03,
1.11089965e-02, 1.49207861e-02, 1.98410947e-02, 2.61214099e-02,
3.40474547e-02, 4.39369336e-02, 5.61347628e-02, 7.10053537e-02,
8.89216175e-02, 1.10250525e-01, 1.35335283e-01, 1.64474457e-01,
1.97898699e-01, 2.35746077e-01, 2.78037300e-01, 3.24652467e-01,
3.75311099e-01, 4.29557358e-01, 4.86752256e-01, 5.46074427e-01,
6.06530660e-01, 6.66976811e-01, 7.26149037e-01, 7.82704538e-01,
8.35270211e-01, 8.82496903e-01, 9.23116346e-01, 9.55997482e-01,
9.80198673e-01, 9.95012479e-01, 1.00000000e+00, 9.95012479e-01,
9.80198673e-01, 9.55997482e-01, 9.23116346e-01, 8.82496903e-01,
8.35270211e-01, 7.82704538e-01, 7.26149037e-01, 6.66976811e-01,
6.06530660e-01, 5.46074427e-01, 4.86752256e-01, 4.29557358e-01,
3.75311099e-01, 3.24652467e-01, 2.78037300e-01, 2.35746077e-01,
1.97898699e-01, 1.64474457e-01, 1.35335283e-01, 1.10250525e-01,
8.89216175e-02, 7.10053537e-02, 5.61347628e-02, 4.39369336e-02,
3.40474547e-02, 2.61214099e-02, 1.98410947e-02, 1.49207861e-02,
1.11089965e-02, 8.18870101e-03, 5.97602290e-03, 4.31784001e-03,
3.08871541e-03, 2.18749112e-03, 1.53381068e-03, 1.06476624e-03,
7.31802419e-04, 4.97955422e-04, 3.35462628e-04, 2.23745794e-04,
1.47748360e-04, 9.65934137e-05, 6.25215038e-05, 4.00652974e-05,
2.54193465e-05, 1.59667839e-05, 9.92950431e-06, 6.11356797e-06]
for i in range(len(x)-1):
if x[i+1] < x[i]:
i_end = i
break
for i in range(i_end, len(x)-1):
if x[i+1] > x[i]:
i_start = i
break
print(f"ambiguous region: [{x[i_start]}, {x[i_end]}]")
print(f"ambiguous indices are between {i_end} and {i_start}")
# todo: find x0 between x[i_start], x[i_end]
# e.g. brute-force search