Programmation

Retrouver tous les sujets résolus.
Emilie

Programmation

Message par Emilie » lun. 21 déc. 2020 16:20

Bonjour, les questions de programmation sont-elles tolérées sur ce forum ? C'est en python merci
sos-math(21)
Messages : 10354
Enregistré le : lun. 30 août 2010 11:15

Re: Programmation

Message par sos-math(21) » lun. 21 déc. 2020 20:19

Bonjour,
Nous pouvons t’aider en Python dans la limite de nos compétences.
Tu peux donc envoyer ta question.
À bientôt
Invité

Re: Programmation

Message par Invité » mar. 22 déc. 2020 11:25

Merci beaucoup, c'est sur la régression linéaire : https://www.cjoint.com/data/JLwkyBrlkqE ... néaire.png

Pourriez-vous m'aider à traiter le premier point svp ?

merci et bonnes vacances
sos-math(21)
Messages : 10354
Enregistré le : lun. 30 août 2010 11:15

Re: Programmation

Message par sos-math(21) » mar. 22 déc. 2020 13:49

Bonjour,
il faut que tu re-programmes toutes les fonctions ou tu as le droit d'utiliser des fonctions déjà construites dans des bibliothèques Python ?
Si tu dois tout reprogrammer, il te faut :
- une fonction moyenne qui calcule la moyenne d'une série ;
- une fonction variance qui calcule la variance d'une série,
- une fonction covariance qui calcule la covariance de deux séries

Je t'aide un peu en te donnant une fonction moyenne qui calcule la moyenne arithmétique d'une série statistique en n'utilisant que des techniques élémentaires (boucles, accumulateur) :

Code : Tout sélectionner

def moyenne(valeurs):
    """renvoie la moyenne arithmétique de la série valeurs"""
    somme = 0
    effectif = 0
    for i in range(len(valeurs)):
       somme = somme + valeurs[i]
       effectif = effectif + 1
    return somme / effectif
Plusieurs des autres fonctions ressembleront à celle-ci, il te suffira de t'en inspirer. Bien entendu, il existe des fonction toutes faites : la bibliothèque numpy possède une fonction mean qui fera la même chose : numpy.mean().
Bonne programmation
Invité

Re: Programmation

Message par Invité » mar. 22 déc. 2020 16:25

J'ai le droit d'utiliser des fonctions toutes faites !

Quelles sont celles que je dois utiliser ? Sont-elles toutes dans numpy ?

Merci !
sos-math(21)
Messages : 10354
Enregistré le : lun. 30 août 2010 11:15

Re: Programmation

Message par sos-math(21) » mar. 22 déc. 2020 19:35

Si tu as le droit d'utiliser les fonctions toutes faites, alors ce sera très simple.
Tu as le choix entre numpy et scipy :

Code : Tout sélectionner

import numpy as np
import scipy.stats
#avec scipy
def reg_lin(X,Y):
    Xr = scipy.stats.linregress(X,Y)
    return Xr[0],Xr[1], Xr[2] # le premier nombre est le coefficient directeur, le second l'ordonnée à l'origine et le troisième, le coefficient de corrélation linéaire qui mesure la qualité d'approximation
#avec numpy
def reg_lin_np(X,Y):
    return np.polyfit(X,Y,1),np.corrcoef(X,Y)[0][1]
Leurs résultats sont identiques. Par exemple, on a

Code : Tout sélectionner

>>> reg_lin([16,23,29,32,36,38],[360,400,440,460,490,500])
(6.482558139534883, 253.67248062015508, 0.999059557248484)
>>> reg_lin_np([16,23,29,32,36,38],[360,400,440,460,490,500])
(array([  6.48255814, 253.67248062]), 0.9990595572484839)
Voilà.
Invité

Re: Programmation

Message par Invité » mar. 22 déc. 2020 19:55

Merci beaucoup !

J'ai testé et ça fonctionne aussi chez moi.

La suite du problème est ici : https://www.cjoint.com/data/JLws13O6YmE ... mation.png

Pour la question a, c'est une régression linéaire du groupe 1 ou du groupe 2 qu'il faut effectuer ? Ou des 2 ? Mais du coup je saurais pas comment faire dans ce cas-là !
sos-math(21)
Messages : 10354
Enregistré le : lun. 30 août 2010 11:15

Re: Programmation

Message par sos-math(21) » mar. 22 déc. 2020 20:01

Bonjour,
ce dont tu parles ne sont pas des mathématiques de niveau lycée : nous n'abordons que la régression linéaire d'ordre 1, à savoir un ajustement affine.
Pour les autres cas, je ne connais pas.
Bonne continuation
Invité

Re: Programmation

Message par Invité » mar. 22 déc. 2020 21:27

merci d'avoir répondu, mais pourquoi ça ne peut pas être une régression linéaire d'ordre 1 ici ?

du coup ce serait de quel ordre ?
sos-math(21)
Messages : 10354
Enregistré le : lun. 30 août 2010 11:15

Re: Programmation

Message par sos-math(21) » mar. 22 déc. 2020 21:48

Je crois que je t’ai répondu : je ne connais que les régressions linéaires d’ordre 1 donc je ne peux pas t’aider si tu me parles de régression linéaire d’ordre 2.
J’imagine qu’il s’agit de trouver un polynôme de degré 2 qui passe au plus près des points mais je ne connais pas les conditions d’application : il faut sûrement regarder la forme du nuage pour choisir entre ordre 1 et ordre 2.
Bonne continuation
Invité

Re: Programmation

Message par Invité » jeu. 24 déc. 2020 18:38

oki merci, je suis en train de creuser, je vous dirais si j'ai trouvé.

J'ai une autre question qui est ici : https://www.cjoint.com/data/JLyrKU0gVVE_pointfixe.png

Y a-t-il des choses déjà programmées sur Python (dans numpy par exemple) que je pourrai utiliser pour programmer pointfixe ?

merci de l'aide joyeux Noël
sos-math(21)
Messages : 10354
Enregistré le : lun. 30 août 2010 11:15

Re: Programmation

Message par sos-math(21) » ven. 25 déc. 2020 18:28

Bonjour,
pour ton problème de point fixe, il faut programmer la méthode en implémentant la suite \((x_n)\), ce qui n'est pas très compliqué et utilise des outils élémentaires de Python. Bien qu'il existe une fonction toute faite dans scipy (https://docs.scipy.org/doc/scipy/refere ... point.html), je pense qu'il faudrait que tu la programmes entièrement afin de te former aux bases de la programmation.
Bonne continuation
Invité

Re: Programmation

Message par Invité » ven. 25 déc. 2020 19:45

Merci de votre réponse.

Est-ce que le programme qui est en dessous conviendrait ?

Code : Tout sélectionner

from numpy.linalg import norm

def pointfixe(f,x0,tol=10e-5,maxiter=100):
	e = 1
	itr = 0
	xp = []
	while(e > tol and itr < maxiter):
 		x = f(x0)      # équation du point fixe
 		e = norm(x0-x) # erreur du résultat à l'étape actuelle
		x0 = x
		xp.append(x0)  # sauvegarde la solution de l'étape actuelle
		itr = itr + 1
	return x,xp
Est-ce que ça conviendrait ? Ca répond bien à la consigne ou pas ?

merci et joyeux Noël !!
sos-math(21)
Messages : 10354
Enregistré le : lun. 30 août 2010 11:15

Re: Programmation

Message par sos-math(21) » ven. 25 déc. 2020 20:31

Bonjour,
Je vois que tu sais chercher sur le web : https://glowingpython.blogspot.com/2012 ... ation.html
Il faut peut-être aussi apprendre à chercher par soi-même, c’est le meilleur moyen d’acquérir des compétences.
Néanmoins, ce programme doit fonctionner.
Bonne continuation
Invité

Re: Programmation

Message par Invité » sam. 26 déc. 2020 19:24

Merci d'avoir répondu

J'avoue avoir effectivement trouvé ce programme sur le web, au départ je voulais le faire seule en m'inspirant de quelque chose d'internet, mais en voyant ce programme je me suis dit que je ne pourrais pas faire mieux... Désolée j'aurais dû vous le dire.

Mais il y a d'autres questions, et pour ces questions, je vais écrire seule les programmes.

Voici les prochaines questions :

https://www.cjoint.com/data/JLAsqW0pNCO ... thodes.png

Pour la programmation de la fonction suriteration, il faut bien utiliser une dérivée ? Comment peut-on faire calculer une dérivée à Python ?
Répondre