Topic de LeGrandJuda :

[AIDE] J'AI BESOIN D'UN KHEY FORT EN PYTHON

Le 29 avril 2023 à 21:40:42 :

Le 29 avril 2023 à 21:39:09 :

Le 29 avril 2023 à 21:36:54 :

Le 29 avril 2023 à 21:35:20 :

Le 29 avril 2023 à 21:34:18 :

> Le 29 avril 2023 à 21:32:56 :

>C'est quoi la méthode des éléments finis qu'on t'a enseigné l'OP ? De mémoire y'en a 2

on m'a pas enseigné https://image.noelshack.com/fichiers/2020/50/2/1607386908-enxt.png
dis toi qu'on m'a même pas dit que ce que je devais résoudre était une équation de burgers https://image.noelshack.com/fichiers/2020/50/2/1607386908-enxt.png

Ah put1... Chox

C'est quoi ton équation de Burgers exactement ?

https://image.noelshack.com/fichiers/2023/17/6/1682796976-capture-d-ecran-2023-04-29-212050.jpg
https://image.noelshack.com/fichiers/2023/17/6/1682796988-capture-d-ecran-2023-04-29-212126.jpg
voilà le but c'est de modéliser le trafic routier https://image.noelshack.com/fichiers/2020/50/2/1607386908-enxt.png

Oh bordel, ça me rappelle des souvenirs. Y'avait une matrice à l'aide des approximations proposées par ton énoncé. (Tout comme avec Newton on fait l'approximation f(x+h)=f(x)+hf'(x))
Mais je me souviens plus lol

Le 29 avril 2023 à 21:39:31 :

Le 29 avril 2023 à 21:36:54 :

Le 29 avril 2023 à 21:35:20 :

Le 29 avril 2023 à 21:34:18 :

> Le 29 avril 2023 à 21:32:56 :

>C'est quoi la méthode des éléments finis qu'on t'a enseigné l'OP ? De mémoire y'en a 2

on m'a pas enseigné https://image.noelshack.com/fichiers/2020/50/2/1607386908-enxt.png
dis toi qu'on m'a même pas dit que ce que je devais résoudre était une équation de burgers https://image.noelshack.com/fichiers/2020/50/2/1607386908-enxt.png

Ah put1... Chox

C'est quoi ton équation de Burgers exactement ?

https://image.noelshack.com/fichiers/2023/17/6/1682796976-capture-d-ecran-2023-04-29-212050.jpg
https://image.noelshack.com/fichiers/2023/17/6/1682796988-capture-d-ecran-2023-04-29-212126.jpg
voilà le but c'est de modéliser le trafic routier https://image.noelshack.com/fichiers/2020/50/2/1607386908-enxt.png

Ayaa les schemas d'Euler implicites et explicites https://image.noelshack.com/fichiers/2020/31/4/1596129454-ahi-fondu.png

je suis obligé d'utiliser un array pour faire ça je vois pas commement m'y prendre, vous me parlez d'euler
la méthode d'euler je comprends https://image.noelshack.com/fichiers/2022/24/6/1655577587-ahi-triangle-clopent.png

Premier PolytechNice :)

Le 29 avril 2023 à 21:44:21 :
Ah put1, je crois que ça commence à refaire sens dans ma tête.
Faut faire un réseau style Z^2

Ton axe des abscisses c'est x (par exemple). Ton axe des ordonnées c'est t.
Si tu prends un point au pif de ton réseau (je t'invite à faire un dessin de Z^2 pour comprendre pourquoi ça s'appelle réseau), alors ta dérivée en x va être approximée par les 2 points à gauche et à droite (c'est ton approximation).

Ah merde, il manque des trucs :rire:

Z^2 ? je ne suis pas sûr de comprendre https://image.noelshack.com/fichiers/2022/24/6/1655577587-ahi-triangle-clopent.png

Le 29 avril 2023 à 21:43:49 LeGrandJuda a écrit :

Le 29 avril 2023 à 21:41:49 :

Le 29 avril 2023 à 21:41:31 LeGrandJuda a écrit :

Le 29 avril 2023 à 21:40:06 :
Demande a chat gpt

non c'est de la merde et je veux comprendre ce que je fais d'autant plus que je devrai expliquer mon code https://image.noelshack.com/fichiers/2022/24/6/1655577587-ahi-triangle-clopent.png

chatgpt t'explique le code aussi ligne par ligne ahurin https://image.noelshack.com/fichiers/2022/37/1/1663014384-ahi-pince-mais.png

non vraiment pas https://image.noelshack.com/fichiers/2022/24/6/1655577587-ahi-triangle-clopent.png
il met certes des commentaires mais c'est pour dire ce qu'il calcule et il n'explique pas la commande ni la réflexion qu'il y a derrière https://image.noelshack.com/fichiers/2022/24/6/1655577587-ahi-triangle-clopent.png
plus sa méthode de résolution ne semble pas être celle attendue https://image.noelshack.com/fichiers/2022/24/6/1655577587-ahi-triangle-clopent.png

Mais t'as le droit de lui demander d'expliquer exactement tu sais ça ? Il te fait tout de A à Z, t'expliques étape par étape comment arriver à ce raisonnement et si tu lui demandes chaque ligne est expliquée https://image.noelshack.com/fichiers/2022/37/1/1663014384-ahi-pince-mais.png

Le 29 avril 2023 à 21:45:45 :

Le 29 avril 2023 à 21:40:42 :

Le 29 avril 2023 à 21:39:09 :

Le 29 avril 2023 à 21:36:54 :

Le 29 avril 2023 à 21:35:20 :

> Le 29 avril 2023 à 21:34:18 :

>> Le 29 avril 2023 à 21:32:56 :

> >C'est quoi la méthode des éléments finis qu'on t'a enseigné l'OP ? De mémoire y'en a 2

>

> on m'a pas enseigné https://image.noelshack.com/fichiers/2020/50/2/1607386908-enxt.png

> dis toi qu'on m'a même pas dit que ce que je devais résoudre était une équation de burgers https://image.noelshack.com/fichiers/2020/50/2/1607386908-enxt.png

Ah put1... Chox

C'est quoi ton équation de Burgers exactement ?

https://image.noelshack.com/fichiers/2023/17/6/1682796976-capture-d-ecran-2023-04-29-212050.jpg
https://image.noelshack.com/fichiers/2023/17/6/1682796988-capture-d-ecran-2023-04-29-212126.jpg
voilà le but c'est de modéliser le trafic routier https://image.noelshack.com/fichiers/2020/50/2/1607386908-enxt.png

Oh bordel, ça me rappelle des souvenirs. Y'avait une matrice à l'aide des approximations proposées par ton énoncé. (Tout comme avec Newton on fait l'approximation f(x+h)=f(x)+hf'(x))
Mais je me souviens plus lol

Le 29 avril 2023 à 21:39:31 :

Le 29 avril 2023 à 21:36:54 :

Le 29 avril 2023 à 21:35:20 :

> Le 29 avril 2023 à 21:34:18 :

>> Le 29 avril 2023 à 21:32:56 :

> >C'est quoi la méthode des éléments finis qu'on t'a enseigné l'OP ? De mémoire y'en a 2

>

> on m'a pas enseigné https://image.noelshack.com/fichiers/2020/50/2/1607386908-enxt.png

> dis toi qu'on m'a même pas dit que ce que je devais résoudre était une équation de burgers https://image.noelshack.com/fichiers/2020/50/2/1607386908-enxt.png

Ah put1... Chox

C'est quoi ton équation de Burgers exactement ?

https://image.noelshack.com/fichiers/2023/17/6/1682796976-capture-d-ecran-2023-04-29-212050.jpg
https://image.noelshack.com/fichiers/2023/17/6/1682796988-capture-d-ecran-2023-04-29-212126.jpg
voilà le but c'est de modéliser le trafic routier https://image.noelshack.com/fichiers/2020/50/2/1607386908-enxt.png

Ayaa les schemas d'Euler implicites et explicites https://image.noelshack.com/fichiers/2020/31/4/1596129454-ahi-fondu.png

je suis obligé d'utiliser un array pour faire ça je vois pas commement m'y prendre, vous me parlez d'euler
la méthode d'euler je comprends https://image.noelshack.com/fichiers/2022/24/6/1655577587-ahi-triangle-clopent.png

Premier PolytechNice :)

arrête de me prendre de haut il n'ya pas que l'info au concours et puis là on me fait faire un truc hors pprogramme https://image.noelshack.com/fichiers/2020/31/4/1596129454-ahi-fondu.png

    1. Exercice 1
      1. Partie 1
  1. a.(i) Si on note $\Delta_t=(t_f-t_0)/(N-1)$ la longeur d'un pas de temps alors

#

  1. $\forall n\geq 0,\ y_{n+1}=y_n+\Delta_t(-ky_n + r)$

#

  1. On reconnait une suite arithmético-géométrique, et on en déduit que

#

  1. $y_n=(1-k\Delta_t)^n\left(y_0-\frac{r}{k}\right)+\frac{r}{k}$
  1. In[1]:
  1. a.ii

import numpy as np
import matplotlib.pyplot as plt

def EulerExplicite(k,r,t0,tf,y0,N):
y=np.zeros(N) # contiendra les y_n
y[0]=y0
h=(tf-t0)/(N-1) # pour avoir N point, on subdivise [t0,tf] en (N-1) intervalles de longueur h
t=np.linspace(t0,tf,N)
for i in range(0,N-1):
y[i+1]=y[i]+h*(-k*y[i]+r)
return t,y

  1. Remarque : ici la fonction renvoie les (t_n) et les (y_n), même si l'exo ne demandait que les (y_n).
  1. In[2]:
  1. b.i

def SolutionExacte1(t):
y=np.exp(-t)
return y

[temps,y]=EulerExplicite(1,0,0,1,1,100) # les (t_n) et les (y_n) calculés par Euler explicite

sol_exacte=SolutionExacte1(temps) # le vecteur contenant les y(t_n), donc la solution exacte aux temps t_n

plt.plot(temps,y, 'red', linewidth=1, label="Approximation Euler Exp" )
plt.plot(temps,sol_exacte, 'blue', linewidth=1, label="Sol exacte" )
plt.legend(loc=1)

  1. In[3]:
  1. b.ii

erreur=np.abs(y-sol_exacte)

plt.plot(temps,erreur, label="|y_n - y(t_n)|" )
plt.legend(loc=2)

  1. In[5]:
  1. b.iii
  2. On va construire un vecteur contenant les erreurs réalisées pour différentes valeurs de N (et donc de h)

Valeurs_N=np.arange(3,10000,100) # par exemple N allant de à 10000 par pas de 100
Valeurs_h=1/(Valeurs_N-1);
nombre=Valeurs_N.size
erreurMax=np.zeros(nombre)
for i in range(0,nombre):
[temps,y]=EulerExplicite(1,0,0,1,1,Valeurs_N[i]);
sol_exacte=np.exp(-temps);
erreurMax[i]=np.max(np.abs(y-sol_exacte));

plt.plot(Valeurs_h,erreurMax, linewidth=1, label="Erreur_Max(N)" )
plt.xlabel('N', fontsize=14)
plt.ylabel('max_{n <N } |y_n-y(t_n)| ', fontsize=14)

  1. In[10]:
  1. b.iv
  2. en echelle log

plt.plot(np.log(Valeurs_h),np.log(erreurMax), lineWidth=3)

  1. Pour en déduire l'ordre de convergence, on regarde l'erreur au voisinage de h=0
  2. erreur en O(h**p) ==> au voisinage de 0, erreur est proche de C*h**p
  3. C'est à dire log(erreur)= log(C) + p log(h) ==> droite de pente p en échelle log log
  4. Par exemple, si on regarde la pente sur les 10 premiers pas :

pente = (np.log(erreurMax[10])-np.log(erreurMax[0]))/(np.log(Valeurs_h[10])-np.log(Valeurs_h[0]))
print(pente)

  1. Ici on trouve une pente de 1 :, c'est bien l'ordre des méthodes d'Euler explicite et implicite

J'AI TROUVE, bonne chance pour comprendre l'auteur https://image.noelshack.com/fichiers/2016/38/1474488555-jesus24.png

bordel merci mon khey je vais essayer de comprendre https://image.noelshack.com/fichiers/2020/31/4/1596129454-ahi-fondu.png

Le 29 avril 2023 à 21:47:31 :

Le 29 avril 2023 à 21:43:49 LeGrandJuda a écrit :

Le 29 avril 2023 à 21:41:49 :

Le 29 avril 2023 à 21:41:31 LeGrandJuda a écrit :

Le 29 avril 2023 à 21:40:06 :
Demande a chat gpt

non c'est de la merde et je veux comprendre ce que je fais d'autant plus que je devrai expliquer mon code https://image.noelshack.com/fichiers/2022/24/6/1655577587-ahi-triangle-clopent.png

chatgpt t'explique le code aussi ligne par ligne ahurin https://image.noelshack.com/fichiers/2022/37/1/1663014384-ahi-pince-mais.png

non vraiment pas https://image.noelshack.com/fichiers/2022/24/6/1655577587-ahi-triangle-clopent.png
il met certes des commentaires mais c'est pour dire ce qu'il calcule et il n'explique pas la commande ni la réflexion qu'il y a derrière https://image.noelshack.com/fichiers/2022/24/6/1655577587-ahi-triangle-clopent.png
plus sa méthode de résolution ne semble pas être celle attendue https://image.noelshack.com/fichiers/2022/24/6/1655577587-ahi-triangle-clopent.png

Mais t'as le droit de lui demander d'expliquer exactement tu sais ça ? Il te fait tout de A à Z, t'expliques étape par étape comment arriver à ce raisonnement et si tu lui demandes chaque ligne est expliquée https://image.noelshack.com/fichiers/2022/37/1/1663014384-ahi-pince-mais.png

ouai je l'ai déjà testée sur d'autres choses je n'ai pas été très convaincu https://image.noelshack.com/fichiers/2020/31/4/1596129454-ahi-fondu.png
mais bon je vais réessayer https://image.noelshack.com/fichiers/2020/31/4/1596129454-ahi-fondu.png

Le 29 avril 2023 à 21:46:34 :

Le 29 avril 2023 à 21:44:21 :
Ah put1, je crois que ça commence à refaire sens dans ma tête.
Faut faire un réseau style Z^2

Ton axe des abscisses c'est x (par exemple). Ton axe des ordonnées c'est t.
Si tu prends un point au pif de ton réseau (je t'invite à faire un dessin de Z^2 pour comprendre pourquoi ça s'appelle réseau), alors ta dérivée en x va être approximée par les 2 points à gauche et à droite (c'est ton approximation).

Ah merde, il manque des trucs :rire:

Z^2 ? je ne suis pas sûr de comprendre https://image.noelshack.com/fichiers/2022/24/6/1655577587-ahi-triangle-clopent.png

Pour approximer ta dérivée en x, tu te sers de la valeur à gauche et à droite (ta première approximation). C'est clairement comme dans un réseau de Z^2 où tu vas de 1 vers la gauche et 1 vers la droite de ton point d'origine.

Pour la dérivée en t, tu vas de 1 en haut et te sert aussi de la valeur 1 à gauche et 1 à droite (cela vient du fait que la somme des DP vaut 0).

Mais, y'a un truc que je pige pas. Sans doute le khey qui parlait d'Euler implicite pour trouver la valeur à gauche de ton point avait raison. (Parce que tu dois trouver la valeur de ta fonction au point à gauche pour déterminer la valeur de la dérivée au point considérée, ce qui est un beau merdier).

Le 29 avril 2023 à 21:47:49 :

    1. Exercice 1
      1. Partie 1
  1. a.(i) Si on note $\Delta_t=(t_f-t_0)/(N-1)$ la longeur d'un pas de temps alors

#

  1. $\forall n\geq 0,\ y_{n+1}=y_n+\Delta_t(-ky_n + r)$

#

  1. On reconnait une suite arithmético-géométrique, et on en déduit que

#

  1. $y_n=(1-k\Delta_t)^n\left(y_0-\frac{r}{k}\right)+\frac{r}{k}$
  1. In[1]:
  1. a.ii

import numpy as np
import matplotlib.pyplot as plt

def EulerExplicite(k,r,t0,tf,y0,N):
y=np.zeros(N) # contiendra les y_n
y[0]=y0
h=(tf-t0)/(N-1) # pour avoir N point, on subdivise [t0,tf] en (N-1) intervalles de longueur h
t=np.linspace(t0,tf,N)
for i in range(0,N-1):
y[i+1]=y[i]+h*(-k*y[i]+r)
return t,y

  1. Remarque : ici la fonction renvoie les (t_n) et les (y_n), même si l'exo ne demandait que les (y_n).
  1. In[2]:
  1. b.i

def SolutionExacte1(t):
y=np.exp(-t)
return y

[temps,y]=EulerExplicite(1,0,0,1,1,100) # les (t_n) et les (y_n) calculés par Euler explicite

sol_exacte=SolutionExacte1(temps) # le vecteur contenant les y(t_n), donc la solution exacte aux temps t_n

plt.plot(temps,y, 'red', linewidth=1, label="Approximation Euler Exp" )
plt.plot(temps,sol_exacte, 'blue', linewidth=1, label="Sol exacte" )
plt.legend(loc=1)

  1. In[3]:
  1. b.ii

erreur=np.abs(y-sol_exacte)

plt.plot(temps,erreur, label="|y_n - y(t_n)|" )
plt.legend(loc=2)

  1. In[5]:
  1. b.iii
  2. On va construire un vecteur contenant les erreurs réalisées pour différentes valeurs de N (et donc de h)

Valeurs_N=np.arange(3,10000,100) # par exemple N allant de à 10000 par pas de 100
Valeurs_h=1/(Valeurs_N-1);
nombre=Valeurs_N.size
erreurMax=np.zeros(nombre)
for i in range(0,nombre):
[temps,y]=EulerExplicite(1,0,0,1,1,Valeurs_N[i]);
sol_exacte=np.exp(-temps);
erreurMax[i]=np.max(np.abs(y-sol_exacte));

plt.plot(Valeurs_h,erreurMax, linewidth=1, label="Erreur_Max(N)" )
plt.xlabel('N', fontsize=14)
plt.ylabel('max_{n <N } |y_n-y(t_n)| ', fontsize=14)

  1. In[10]:
  1. b.iv
  2. en echelle log

plt.plot(np.log(Valeurs_h),np.log(erreurMax), lineWidth=3)

  1. Pour en déduire l'ordre de convergence, on regarde l'erreur au voisinage de h=0
  2. erreur en O(h**p) ==> au voisinage de 0, erreur est proche de C*h**p
  3. C'est à dire log(erreur)= log(C) + p log(h) ==> droite de pente p en échelle log log
  4. Par exemple, si on regarde la pente sur les 10 premiers pas :

pente = (np.log(erreurMax[10])-np.log(erreurMax[0]))/(np.log(Valeurs_h[10])-np.log(Valeurs_h[0]))
print(pente)

  1. Ici on trouve une pente de 1 :, c'est bien l'ordre des méthodes d'Euler explicite et implicite

J'AI TROUVE, bonne chance pour comprendre l'auteur https://image.noelshack.com/fichiers/2016/38/1474488555-jesus24.png

facile à comprendre, tout est commenté :)

Le 29 avril 2023 à 21:48:38 :
bordel merci mon khey je vais essayer de comprendre https://image.noelshack.com/fichiers/2020/31/4/1596129454-ahi-fondu.png

Je viens de te mp

Le 29 avril 2023 à 21:51:16 :

Le 29 avril 2023 à 21:46:34 :

Le 29 avril 2023 à 21:44:21 :
Ah put1, je crois que ça commence à refaire sens dans ma tête.
Faut faire un réseau style Z^2

Ton axe des abscisses c'est x (par exemple). Ton axe des ordonnées c'est t.
Si tu prends un point au pif de ton réseau (je t'invite à faire un dessin de Z^2 pour comprendre pourquoi ça s'appelle réseau), alors ta dérivée en x va être approximée par les 2 points à gauche et à droite (c'est ton approximation).

Ah merde, il manque des trucs :rire:

Z^2 ? je ne suis pas sûr de comprendre https://image.noelshack.com/fichiers/2022/24/6/1655577587-ahi-triangle-clopent.png

Pour approximer ta dérivée en x, tu te sers de la valeur à gauche et à droite (ta première approximation). C'est clairement comme dans un réseau de Z^2 où tu vas de 1 vers la gauche et 1 vers la droite de ton point d'origine.

Pour la dérivée en t, tu vas de 1 en haut et te sert aussi de la valeur 1 à gauche et 1 à droite (cela vient du fait que la somme des DP vaut 0).

Mais, y'a un truc que je pige pas. Sans doute le khey qui parlait d'Euler implicite pour trouver la valeur à gauche de ton point avait raison. (Parce que tu dois trouver la valeur de ta fonction au point à gauche pour déterminer la valeur de la dérivée au point considérée, ce qui est un beau merdier).

la fonction est périodique donc à mon avis ça peut le faire

Le 29 avril 2023 à 21:54:55 :

Le 29 avril 2023 à 21:51:16 :

Le 29 avril 2023 à 21:46:34 :

Le 29 avril 2023 à 21:44:21 :
Ah put1, je crois que ça commence à refaire sens dans ma tête.
Faut faire un réseau style Z^2

Ton axe des abscisses c'est x (par exemple). Ton axe des ordonnées c'est t.
Si tu prends un point au pif de ton réseau (je t'invite à faire un dessin de Z^2 pour comprendre pourquoi ça s'appelle réseau), alors ta dérivée en x va être approximée par les 2 points à gauche et à droite (c'est ton approximation).

Ah merde, il manque des trucs :rire:

Z^2 ? je ne suis pas sûr de comprendre https://image.noelshack.com/fichiers/2022/24/6/1655577587-ahi-triangle-clopent.png

Pour approximer ta dérivée en x, tu te sers de la valeur à gauche et à droite (ta première approximation). C'est clairement comme dans un réseau de Z^2 où tu vas de 1 vers la gauche et 1 vers la droite de ton point d'origine.

Pour la dérivée en t, tu vas de 1 en haut et te sert aussi de la valeur 1 à gauche et 1 à droite (cela vient du fait que la somme des DP vaut 0).

Mais, y'a un truc que je pige pas. Sans doute le khey qui parlait d'Euler implicite pour trouver la valeur à gauche de ton point avait raison. (Parce que tu dois trouver la valeur de ta fonction au point à gauche pour déterminer la valeur de la dérivée au point considérée, ce qui est un beau merdier).

la fonction est périodique donc à mon avis ça peut le faire

Il vaut mieux que tu trouves un khey qui va t'aider :oui:
Moi je suis totalement rouillé

Le 29 avril 2023 à 21:56:16 :

Le 29 avril 2023 à 21:54:55 :

Le 29 avril 2023 à 21:51:16 :

Le 29 avril 2023 à 21:46:34 :

Le 29 avril 2023 à 21:44:21 :
Ah put1, je crois que ça commence à refaire sens dans ma tête.
Faut faire un réseau style Z^2

Ton axe des abscisses c'est x (par exemple). Ton axe des ordonnées c'est t.
Si tu prends un point au pif de ton réseau (je t'invite à faire un dessin de Z^2 pour comprendre pourquoi ça s'appelle réseau), alors ta dérivée en x va être approximée par les 2 points à gauche et à droite (c'est ton approximation).

Ah merde, il manque des trucs :rire:

Z^2 ? je ne suis pas sûr de comprendre https://image.noelshack.com/fichiers/2022/24/6/1655577587-ahi-triangle-clopent.png

Pour approximer ta dérivée en x, tu te sers de la valeur à gauche et à droite (ta première approximation). C'est clairement comme dans un réseau de Z^2 où tu vas de 1 vers la gauche et 1 vers la droite de ton point d'origine.

Pour la dérivée en t, tu vas de 1 en haut et te sert aussi de la valeur 1 à gauche et 1 à droite (cela vient du fait que la somme des DP vaut 0).

Mais, y'a un truc que je pige pas. Sans doute le khey qui parlait d'Euler implicite pour trouver la valeur à gauche de ton point avait raison. (Parce que tu dois trouver la valeur de ta fonction au point à gauche pour déterminer la valeur de la dérivée au point considérée, ce qui est un beau merdier).

la fonction est périodique donc à mon avis ça peut le faire

Il vaut mieux que tu trouves un khey qui va t'aider :oui:
Moi je suis totalement rouillé

je vais me débrouiller vous m'avez déjà donné des pistes je vous en suis reconnaissant :ok:

Données du topic

Auteur
LeGrandJuda
Date de création
29 avril 2023 à 21:24:51
Nb. messages archivés
53
Nb. messages JVC
53
En ligne sur JvArchive 110