Code R pour une fonction
Bonjour à tous
J'ai réalisé la partie théorique d'un travail. Je désire maintenant faire le calcul numérique sous le logiciel R. Je suis débutant dans ce langage de programmation. J'ai besoin de votre aide.
J'ai réalisé la partie théorique d'un travail. Je désire maintenant faire le calcul numérique sous le logiciel R. Je suis débutant dans ce langage de programmation. J'ai besoin de votre aide.
On pose $a=0.66/5.25$.
Soit $g$ la fonction définie sur $\mathbb{N} $ par :
Soit $g$ la fonction définie sur $\mathbb{N} $ par :
$$g(j)= \begin{cases}0, & \text{ si } \; \; \; j \leq 10 \\ \frac{a}{300}(2 j-21), & \text{ si } \; \; \; 11 \leq j \leq 25 \\ \frac{a}{1800}(231-2j), & \text{ si } \; \; \; 26 \leq j \leq 115 \\ 0, & \text{ si }\; \; \; j \geq 116\end{cases} $$
On définit maintenant la fonction $F$ par $$F\Big(\dfrac{k}{10}\Big)= \begin{cases}0, & \text { si }\; \; \; 1 \leq k \leq 114 \\ \exp(-0.66), & \text { si} \; \; \; 115 \leq k \leq 125 \\ \exp\Big(- \displaystyle \sum_{j=11}^{115}\Big[1-F\big(\dfrac{k-j}{10}\big)\Big]g(j)\Big), & \text { si } \; \; \; 126 \leq k \leq 800 \end{cases}$$
NB: $k$ ne prend que des valeurs entières.
Écrire un code R donnant les fonctions $g$ et $F$ ; puis tracer la courbe de la fonction $F$ pour les valeurs de $k$ entre $1$ et $800$.
Merci d'avance pour votre aide.
Merci d'avance pour votre aide.
Réponses
-
Pour les différents cas à traiter, utiliser "if/then/else". Pour la somme, utiliser une boucle "for". La fonction exponentielle est déjà implémentée. Il n'y a plus qu'à t'y mettre.
Si je t'aide plus, je te donne le code. Que tu sois débutant n'est pas vraiment une excuse si tu as déjà fait un peu de programmation au lycée au moins. Ca n'a rien de très différent de Python et tu as toutes les ressources en ligne (exemple de codes sous R, d'utilisation des boucles), sans parler de chatgpt qui te fait des jolis programmes que tu peux recopier sans vergogne. Il faudra juste lui expliquer ce que tu veux faire. Mais si tu lui demandes "je veux coder sous R une fonction affine par morceaux", tu auras déjà la trame de ton code et tu n'auras plus qu'à l'adapter pour ton problème.
Bref, si tu as été capable de faire ce post en LaTeX sans problème, je ne vois pas pourquoi tu n'arriverais pas à faire ce code.
Tu devrais obtenir le graphe ci-dessous (si c'est bien ce à quoi tu t'attendais, une fonction de répartition typiquement ?)
-
Un exemple de syntaxe fonction R, après comme le dit Alexique, il n'y a rien de difficile ;-) Note qu'il n'y a pas de return.
f <- function(x) { x^2 y <- x y } f(2)
-
Quelle idée de copier coller du code
-
a=0.66/5.25 g=function(j){ if(11<=j && j<= 25){ y=(a/300)*(2*j-21) } else if(16<=j && j<= 115){ y=(a/1800)*(231-2*j) } else{ y=0 } return(y) } #Je stocke les valeurs de F dans un vecteur y y=c() for (k in 1:114){ y=c(y,0) } for (k in 115:125){ y=c(y,exp(-0.66)) } for (k in 126:800){ s=0 for(j in 11:115){ #calcul de la somme s=s+(1-y[k-j])*g(j) #elle fait appel aux précèdentes valeurs calculées de F } y=c(y,exp(-s)) } x=seq(from = 0.1, to = 80, by=0.1) plot(x,y, type='l')
Bon, je te fais confiance pour apprendre à faire tout ça par toi-même un jour. -
Bonjour à tous
Je reviens sur le code qu'a proposé Alexique. Il m'a l'air tout à fait juste. Cependant je rencontre un problème. $F$ est une fonction de répartition; donc censée être croissante pour toute valeur du paramètre $a$ choisie. Mais lorsque je change la paramètre $a$ par $a=0.8/5.25$, je trouve une courbe qui décroît à un certain moment, ce qui n'est pas normal. Je me dis alors qu'il y a une partie du code qui n'est pas bon.
S'il vous plaît, pouvez-vous regarder de près avec moi le code de Alexique, afin de repérer une éventuelle erreur ?
Merci d'avance. -
Désolé ! J'avais commis une grosse bêtise. En effet, j'avais oublié de changer aussi le paramètre dans l'exponentielle. Le code est bon. C'est parfait !
Connectez-vous ou Inscrivez-vous pour répondre.
Bonjour!
Catégories
- 165.1K Toutes les catégories
- 58 Collège/Lycée
- 22.1K Algèbre
- 37.5K Analyse
- 6.3K Arithmétique
- 58 Catégories et structures
- 1.1K Combinatoire et Graphes
- 13 Sciences des données
- 5.1K Concours et Examens
- 20 CultureMath
- 51 Enseignement à distance
- 2.9K Fondements et Logique
- 10.7K Géométrie
- 83 Géométrie différentielle
- 1.1K Histoire des Mathématiques
- 79 Informatique théorique
- 3.9K LaTeX
- 39K Les-mathématiques
- 3.5K Livres, articles, revues, (...)
- 2.7K Logiciels pour les mathématiques
- 24 Mathématiques et finance
- 337 Mathématiques et Physique
- 5K Mathématiques et Société
- 3.3K Pédagogie, enseignement, orientation
- 10.1K Probabilités, théorie de la mesure
- 801 Shtam
- 4.2K Statistiques
- 3.8K Topologie
- 1.4K Vie du Forum et de ses membres