Page 1 sur 5

Programmation

Posté : lun. 21 déc. 2020 16:20
par Emilie
Bonjour, les questions de programmation sont-elles tolérées sur ce forum ? C'est en python merci

Re: Programmation

Posté : lun. 21 déc. 2020 20:19
par sos-math(21)
Bonjour,
Nous pouvons t’aider en Python dans la limite de nos compétences.
Tu peux donc envoyer ta question.
À bientôt

Re: Programmation

Posté : mar. 22 déc. 2020 11:25
par Invité
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

Re: Programmation

Posté : mar. 22 déc. 2020 13:49
par sos-math(21)
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

Re: Programmation

Posté : mar. 22 déc. 2020 16:25
par Invité
J'ai le droit d'utiliser des fonctions toutes faites !

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

Merci !

Re: Programmation

Posté : mar. 22 déc. 2020 19:35
par sos-math(21)
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à.

Re: Programmation

Posté : mar. 22 déc. 2020 19:55
par Invité
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à !

Re: Programmation

Posté : mar. 22 déc. 2020 20:01
par sos-math(21)
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

Re: Programmation

Posté : mar. 22 déc. 2020 21:27
par Invité
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 ?

Re: Programmation

Posté : mar. 22 déc. 2020 21:48
par sos-math(21)
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

Re: Programmation

Posté : jeu. 24 déc. 2020 18:38
par Invité
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

Re: Programmation

Posté : ven. 25 déc. 2020 18:28
par sos-math(21)
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

Re: Programmation

Posté : ven. 25 déc. 2020 19:45
par Invité
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 !!

Re: Programmation

Posté : ven. 25 déc. 2020 20:31
par sos-math(21)
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

Re: Programmation

Posté : sam. 26 déc. 2020 19:24
par Invité
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 ?