Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. # -*- coding: utf-8 -*-
  2. """
  3. Created on Tue Oct 26 17:53:54 2021
  4. @author: virgi
  5. """
  6. import numpy as np
  7. import math as ma
  8. len_seq = 10
  9. def creation_sin_RNN(len_seq,tmin,tmax,n,w,a=1,b=0):
  10. Datax, Datay = [], []
  11. t = np.linspace(tmin,tmax,n)
  12. x =a* np.sin(2*ma.pi*w*t)+b
  13. for i in range(len(x)-len_seq):
  14. Datax.append([x[i:i+len_seq]])
  15. Datay.append([x[i+1:i+len_seq+1]])
  16. Datax = np.array(Datax)
  17. Datay = np.array(Datay)
  18. return(Datax,Datay)
  19. def creation_x_sin_RNN(len_seq,tmin,tmax,n,w,a=1,b=1,c=0):
  20. Datax, Datay = [], []
  21. t = np.linspace(tmin,tmax,n)
  22. x=[]
  23. for i in t:
  24. x.append(a*i+b* np.sin(2*ma.pi*w*i)+c)
  25. for i in range(len(x)-len_seq):
  26. Datax.append([x[i:i+len_seq]])
  27. Datay.append([x[i+1:i+len_seq+1]])
  28. Datax = np.array(Datax)
  29. Datay = np.array(Datay)
  30. return(Datax,Datay)
  31. def creation_x_sin2_RNN(len_seq,tmin,tmax,n,w,a=1,b=1,c=0):
  32. Datax, Datay = [], []
  33. t = np.linspace(tmin,tmax,n)
  34. x=[]
  35. for i in t:
  36. x.append(a*i+b*np.sin(2*ma.pi*w*i)*np.sin(2*ma.pi*w*i)+c)
  37. for i in range(len(x)-len_seq):
  38. Datax.append([x[i:i+len_seq]])
  39. Datay.append([x[i+1:i+len_seq+1]])
  40. Datax = np.array(Datax)
  41. Datay = np.array(Datay)
  42. return(Datax,Datay)
  43. def creation_sin(tmin,tmax,n,w,a=1,c=0):
  44. ## [tmin,tmax] intervalle de création
  45. ## n nombre de poins
  46. ## w pulsation
  47. ## Lx= a*sin+c coordonné y des points
  48. ## t coordonné x des points
  49. Lx=[]
  50. t = np.linspace(tmin,tmax,n)
  51. for i in t:
  52. Lx.append(a*np.sin(w*i)+c)
  53. Lx=np.array(Lx)
  54. return(t,Lx)
  55. def creation_x_sin(tmin,tmax,n,w,a=1,b=0,c=0):
  56. ## [tmin,tmax] intervalle de création
  57. ## n nombre de poins
  58. ## w pulsation
  59. ## Lx= a*x+b*sin(x)+c coordonné y des points
  60. ## t coordonné x des points
  61. Lx=[]
  62. t = np.linspace(tmin,tmax,n)
  63. for i in t:
  64. Lx.append(a*i+b* np.sin(2*ma.pi*w*i)+c)
  65. Lx=np.array(Lx)
  66. return(t,Lx)
  67. def creation_x_sin2(tmin,tmax,n,w,a=1,b=1,c=0):
  68. ## n nombre de poins
  69. ## w pulsation
  70. ## Lx= a*x+b*sin(x)²+c coordonné y des points
  71. ## t coordonné x des points
  72. Lx=[]
  73. t = np.linspace(tmin,tmax,n)
  74. for i in t:
  75. Lx.append(a*i+b*np.sin(2*ma.pi*w*i)*np.sin(2*ma.pi*w*i)+c)
  76. Lx=np.array(Lx)
  77. return(t,Lx)
  78. def creation_x(tmin,tmax,n):
  79. ## n nombre de poins
  80. ## w pulsation
  81. ## Lx= x coordonné y des points
  82. ## t coordonné x des points
  83. Lx=[]
  84. t= np.linspace(tmin,tmax,n)
  85. for i in t:
  86. Lx.append(i)
  87. return(t,np.array(Lx))
  88. def creation_arctan(tmin,tmax,n):
  89. ## n nombre de poins
  90. ## w pulsation
  91. ## Lx= arxtan(x) coordonné y des points
  92. ## t coordonné x des points
  93. Lx=[]
  94. t= np.linspace(tmin,tmax,n)
  95. for i in t:
  96. Lx.append(np.arctan(i))
  97. return(t,np.array(Lx))
  98. def creation_x2(tmin,tmax,n):
  99. ## n nombre de poins
  100. ## w pulsation
  101. ## Lx= x² coordonné y des points
  102. ## t coordonné x des points
  103. Lx=[]
  104. t= np.linspace(tmin,tmax,n)
  105. for i in t:
  106. Lx.append(i**2)
  107. return(t,np.array(Lx))