This repository has been archived on 2020-02-10. You can view files and clone it, but cannot push or open issues or pull requests.
tpmni/1/ok.py

41 lines
1.1 KiB
Python
Raw Permalink Normal View History

#!/usr/bin/env python3
"""
1) créer 2 vecteurs et calculer le produit scalaire entre les 2 vecteurs
comparer avec dot
2) calculer l'angle entre 2 vecteurs
3) afficher les vecteurs
Pour l'affichage → utilisation de matplotlib
exemple
plt.plot([0, 1, 2], [4, 8, 16], "r+")
plt.show()
"""
import numpy as np
def truc1():
a = np.random.random(2)
b = np.random.random(2)
print(a, b, a.shape)
print(f"{(a*b).sum()=} \n{np.dot(a, b)=}")
# truc1()
import matplotlib.pyplot as plt
def truc2():
a = np.array([0, 1]) #np.random.random(2)
b = np.array([1, 1]) #np.random.random(2)
alpha = np.math.degrees(np.math.acos(np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))))
print(f"{a=} {b=} {alpha=}")
n = 500
x = a.dot(b) / (np.linalg.norm(a) * np.linalg.norm(b))
new_a = np.math.pi / 2 - sum(np.math.factorial(2*n) / (2**n * np.math.factorial(n))**2 * (x**(2*n+1)) / (2*n+1) for _ in range(n))
print(np.math.degrees(new_a))
# print(np.linalg.norm(a) == (a**2).sum() ** .5)
plt.plot(a/np.linalg.norm(a), b/np.linalg.norm(b), "r+")
plt.show()
truc2()