Poster un nouveau sujet Poster une réponse
Problèmes Programme inversé polynome du 2nd degrés
Auteur Message
Drélax
Invité
Posté le : Lun 09 Sep 2013, 20:35   Citer 

Bonjour à tous,

Voilà mon prof de math nous a donné à faire un programme sur calculatrice, je n'avais jamais programmé sur calculette, j'ai chercher un peu partout et j'ai lu des partie du manuel de la calculatrice mais malheureusement je bloque de puis 2 jours maxiangry.gif donc est-ce que quelqu'un pourrait m'aider :
Voici l'énoncer :
Les points Q(-1.76;4.12), R(1.4;3.96) et S(3.34;1.76) appartienne à une seule fonction de type : ax²+bx+c
Créez un programme sur votre calculatrice où vous entrerez les 3*2 = 6 coordonnées des points Q, R et S afin qu'elle vous donne en sortie les valeurs des coefficients x², b de x et c

Je vous avoue qu'étant novice dans ce domaine j'ai vraiment du ma, j'ai besoin de votre aide cry.gif

  Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mar 10 Sep 2013, 0:32   Citer 

Cela semble être une interpolation de Lagrange. Je ne pensais pas que c'était étudié au Lycée, je n'ai pas eu ça en 2011.
J'imagine que tu devrais avoir reçu les bases pour faire le calcul. Et éventuellement des choses plus simples (pour ce trinôme) que tout ce que je ferai en m'inspirant de Lagrange (cas général à tout ordre).

La première chose à faire est la saisie. J'utiliserai des Input pour pouvoir nommer les coordonnées des points de façon claire.

Code
Input "XQ:",I
Input "YQ:",J
Input "XR:",K
Input "YR:",L
Input "XS:",M
Input "YS:",N



Je présenterai la solution mathématique de manière intuitive. Pas d'expression générale comme sur wikipédia.

Il est facile de faire un polynome nul en un point. Il suffit de le multiplier par (X-X') où X' est l'abscisse où il s'annule. On peut le faire en plusieurs points.
(x-xr) : ce polynôme est nul en xr
(x-xr)*(x-xs) : ce polynôme est nul en xr et xs

Un tel polynôme peut avoir une autre ordonnée que zéro en une autre abscisse donnée. Si on divise le polynôme par CETTE ordonnée, alors il vaudra 1 en cette abscisse. (et toujours zéro aux autres fixées) On multiplie alors par la valeur qu'on veut en ce point.
yq*(x-xr)/((xq-xr) : vaut yq en xq et vaut 0 en xr
yq*(x-xr)*(x-xs)/((xq-xr)*(xq-xs)) : vaut yq en xq et vaut 0 en xr et xs

EDIT : En effet (x-xr) vaut (xq-xr) en absicisse xq, d'où la division pour valoir 1.
(x-xr)*(x-xs) vaut (xq-xr)*(xq-xs) en abscisse xq, d'où la division.


On peut effectuer une somme de deux polynôme et prévoir facilement le résultat si l'un d'eux est nul en ce point.
Ainsi on peut créer des polynômes nuls en tout point étudié sauf un, chacun le sien, et effectuer la somme, pour avoir une valeur en chaque point.

yq*(x-xr)*(x-xs)/((xq-xr)*(xq-xs))
+yr*(x-xq)*(x-xs)/((xr-xq)*(xr-xs))
+ys*(x-xq)*(x-xr)/((xs-xq)*(xs-xr))
Ce polynôme passe par les points étudiés.

Maintenant on peut appliquer le cas particulier ou utiliser la méthode générale. Mon programme INTERPOL le fait de manière générale.
Un programme avec des boucle est probablement ce que le Lycée attend de vous.

Ci dessous l'application du cas particulier.
On développe puis identifie les coefficients de l'expression a*x^2+b*x+c
Posons kq=yq/((xq-xr)*(xq-xs)) , kr=yr/((xr-xq)*(xr-xs)) , ks=ys/((xs-xq)*(xs-xr)) pour simplifier les dénominateurs.
a=kq+kr+ks
b=-kq*(xr+xs)-kr*(xq+xs)-ks*(xq+xr)
c=kq*xr*xs+kr*xq*xs+ks*xq*xr

Code
Input "XQ:",I
Input "YQ:",J
Input "XR:",K
Input "YR:",L
Input "XS:",M
Input "YS:",N
J/((I-K)*(I-M))->Q // kq
L/((K-I)*(K-M))->R // kr
N/((M-I)*(M-K))->S // ks
Q+R+S->A
-Q*(K+M)-R*(I+M)-S*(I+K)->B
Q*K*M+R*I*M+S*I*K->C
Disp "A=",A,"B=",B,"C=",C



Et un cas général ? Il faut générer les termes par produit puis effectuer la somme des polynômes.
Cela se fait bien avec des boucles et des listes (un coeff par case). La somme en ajoutant les coefficients de case à case. Le produit en multipliant les paires de coefficients de cases i et j et ajoutant les produits à une case i+j d'une autre liste initialement nulle.
Je n'ai pas l'intention de refaire ce que j'ai déjà publié dans mon INTERPOL.

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
Drélax
Invité
Posté le : Mar 10 Sep 2013, 9:50   Citer 

Merci énormément j'ai réussi à faire fonctionner le programme en modifiant 2/3 petites choses pour qu'il fonctionne correctement, j'arrive donc bien à trouver les valeurs des coefficients A,B et C mais je t'avouerai que j'ai encore beaucoup de mal à comprendre toutes les étapes du programme étant donnés que je n'avais pas étudier l'interpolation de Lagrange et puis je n'ai pas compris toutes tes explications ça reste un peu floue ! crazy.gif

  Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mar 10 Sep 2013, 18:51   Citer 

J'aimerais bien savoir ce que tu as modifié, afin de savoir ce que j'ai mal fait.

----

Je refais une explication du polynôme final et le développement. C'est pénible et important donc je veux que ce soit clair. Y compris pour moi-même.

fq=yq*(x-xr)*(x-xs)/((xq-xr)*(xq-xs)) s'annule en xr et xs, il vaut yq en xq.
fr=yr*(x-xq)*(x-xs)/((xr-xq)*(xr-xs)) s'annule en xq et xs, il vaut yr en xr.
fs=ys*(x-xq)*(x-xr)/((xs-xq)*(xs-xr)) s'annule en xq et xr, il vaut ys en xs.

Le polynome P=fq+fr+fs vaut en chaque abscisse prévue la somme de zéros et de l'ordonnée correspondante. Donc il passe par les points.

Posons kq=yq/((xq-xr)*(xq-xs)) , kr=yr/((xr-xq)*(xr-xs)) , ks=ys/((xs-xq)*(xs-xr)).

fq=kq*(x-xr)*(x-xs)
fr=kr*(x-xq)*(x-xs)
fs=ks*(x-xq)*(x-xr)
P=kq*(x-xr)*(x-xs)+kr*(x-xq)*(x-xs)+ks*(x-xq)*(x-xr)

On développe
P=(kq+kr+ks)*x^2-(kq*(xr+xs)+kr*(xq+xs)+ks*(xq+xr))*x+kq*xr*xs+kr*xq*xs+ks*xq*xr

P=a*x^2+b*x+c
On prouve par identification polynômiale que :
a=kq+kr+ks
b=-kq*(xr+xs)-kr*(xq+xs)-ks*(xq+xr)
c=kq*xr*xs+kr*xq*xs+ks*xq*xr

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
Fred



Autorisation : Membre
Nb de messages : 3
Inscrit le : Ven 13 Sep 2013, 11:42
Posté le : Ven 13 Sep 2013, 11:49   Citer 


Citer : Drélax
Bonjour à tous,

Voilà mon prof de math nous a donné à faire un programme sur calculatrice, je n'avais jamais programmé sur calculette, j'ai chercher un peu partout et j'ai lu des partie du manuel de la calculatrice mais malheureusement je bloque de puis 2 jours maxiangry.gif donc est-ce que quelqu'un pourrait m'aider :
Voici l'énoncer :
Les points Q(-1.76;4.12), R(1.4;3.96) et S(3.34;1.76) appartienne à une seule fonction de type : ax²+bx+c
Créez un programme sur votre calculatrice où vous entrerez les 3*2 = 6 coordonnées des points Q, R et S afin qu'elle vous donne en sortie les valeurs des coefficients x², b de x et c

Je vous avoue qu'étant novice dans ce domaine j'ai vraiment du ma, j'ai besoin de votre aide cry.gif



Si vous n'avez JAMAIS programmé sur calculette, l'exercice est beaucoup trop difficile. On ne demande pas à un skieur débutant de descendre une piste noire!
Vous êtes en quelle classe?

 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Ven 13 Sep 2013, 19:38   Citer 


Citer : "Fred"
Si vous n'avez JAMAIS programmé sur calculette, l'exercice est beaucoup trop difficile. On ne demande pas à un skieur débutant de descendre une piste noire!
Vous êtes en quelle classe?


En effet, vous avez raison... je supposais les maths connues sans remettre l'exercice en question.

Cependant et heureusement le résultat que j'ai donné demande beaucoup plus de maths que de programmation, puisque j'ai appliqué des calculs avec de simples affectations. Est-ce si difficile ? L'objectif de l'exercice demeure imprécis.

Toutefois il est peut-être possible de résoudre le problème autrement que par mes interpolations.
ax^2+bx+c=a(x-b/2a)+c-b^2/(4a)=a(x-centre)+sommet
J'envisage de comparer les points aux sommets pour trouver la forme canonique puis développer. Mais comment ...?

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
Fred



Autorisation : Membre
Nb de messages : 3
Inscrit le : Ven 13 Sep 2013, 11:42
Posté le : Ven 13 Sep 2013, 21:24   Citer 


Citer : linkakro

Citer : "Fred"
Si vous n'avez JAMAIS programmé sur calculette, l'exercice est beaucoup trop difficile. On ne demande pas à un skieur débutant de descendre une piste noire!
Vous êtes en quelle classe?


En effet, vous avez raison... je supposais les maths connues sans remettre l'exercice en question.

Cependant et heureusement le résultat que j'ai donné demande beaucoup plus de maths que de programmation, puisque j'ai appliqué des calculs avec de simples affections. Est-ce si difficile ? L'objectif de l'exercice demeure imprécis.

Toutefois il est peut-être possible de résoudre le problème autrement que par mes interpolations.
ax^2+bx+c=a(x-b/2a)+c-b^2/(4a)=a(x-centre)+sommet
J'envisage de comparer les points aux sommets pour trouver la forme canonique puis développer. Mais comment ...?



L'énoncé est bizarre.Pourquoi donner des valeurs aux coordonnées de P, Q et R?
Dans ce cas particulier,je traduirais le problème par un système de 3 équations à 3 inconnues à résoudre avec la calculatrice en utilisant le calcul matriciel.

 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Ven 13 Sep 2013, 23:55   Citer 

Des valeurs pour forcer l'élève à tester ???

C'est une très bonne idée ce système 3*3 ... c'est du niveau mathématique du lycée, mais pas évident en programmation sans les fonctions de calcul.

a*XQ^2+b*XQ+c=YQ
a*XR^2+b*XR+c=YR
a*XS^2+b*XS+c=YS

--EDIT15/9:
Vous pouvez résoudre par combinaisons linéaires, moi j'utiliserai les matrices.
La touche du menu matrice de la calculatrice ti82/82stat est à droite de la touche math.
Pour stocker dans [A], utiliser le mot du menu matrice. Le reste du temps saisissez les "[","]" et des lettres séparément.
--


Code
Input "XQ:",I
Input "YQ:",J
Input "XR:",K
Input "YR:",L
Input "XS:",M
Input "YS:",N
[[I^2,I,1][K^2,K,1][M^2,M,1]]^-1*[[J][L][N   // pouvez ajouter: ->[A]
Disp "A",Rép(1,1),"B",Rép(2,1),"C",Rép(3,1   // pouvez remplacer Rép par [A]

J'effectue le calcul matriciel puis j'extrait les contenus de la matrice résultat. J'utilise Rép(Ans en anglais) plutôt que de stocker ce résultat.
L'inversion de la matrice se fait obligatoirement avec la touche [x^-1] du clavier pour saisir "^-1", tant qu'on a une calculatrice sans MathPrint, c'est le cas des 82,82stat,82statfr.

--EDIT 15/09 : je viens de corriger le produit de l'inverse par les constantes : j'avais écrit des constantes horizontales au lieu de verticales. [[J][L][N est la correction de [[J,L,N
--


Code
Input "XQ:",I
Input "YQ:",J
Input "XR:",K
Input "YR:",L
Input "XS:",M
Input "YS:",N
rref([[I^2,I,1,J][K^2,K,1,L][M^2,M,1,N
Disp "A",Rép(1,4),"B",Rép(2,4),"C",Rép(3,4

J'utilise rref (Gauss-Jordan en français). rref se comporte exactement comme les combinaisons linéaires en math et donne un système simplifié à tel point que les équations sont résolues.


Code
Input "XQ:",I
Input "YQ:",J
Input "XR:",K
Input "YR:",L
Input "XS:",M
Input "YS:",N
det([[I^2,I,1][K^2,K,1][M^2,M,1->D
det([[J,I,1][L,K,1][N,M,1->A
det([[I^2,J,1][K^2,L,1][M^2,N,1->B
det([[I^2,I,J][K^2,K,L][M^2,M,N->C
Disp "A",A/D,"B",B/D,"C",C/D

Formule de Cramer avec les déterminants

Le forum est déjà rempli de programmes comme les miens pour résoudre les systèmes. Je n'ai pas le courage de reproduire la méthode des combinaisons linéaires (pivot de Gauss).
C'est probablement ce qui est attendu du lycéen cependant.

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
Drélax
Invité
Posté le : Dim 15 Sep 2013, 11:47   Citer 

Merci beaucoup pour toutes ces précieuses informations je crois avoir enfin trouvé le bout du tunel et j'ai compris tout le fonctionnement, en tout cas encore un grand merci de vous être casser la tête sur mon cas crazy.gif

  Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Dim 15 Sep 2013, 12:47   Citer 

Bien. Content d'avoir aidé.

Je viens de corriger le calcul par la matrice inverse. Voir commentaire sur place.

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
Fred



Autorisation : Membre
Nb de messages : 3
Inscrit le : Ven 13 Sep 2013, 11:42
Posté le : Dim 15 Sep 2013, 17:07   Citer 


Citer : linkakro
Bien. Content d'avoir aidé.

Je viens de corriger le calcul par la matrice inverse. Voir commentaire sur place.



Bonjour,

Merci à vous pour le code très simple proposé.Je n'aurais pas eu l'idée d'utiliser Rep pour l'affichage. Cela dit je continue à penser que c'est difficile pour un novice. Pour information le calcul matriciel n'est enseigné en mathématiques au lycée qu'aux élèves ayant choisi la spécialité maths en terminale S ou ES et nous ne sommes qu'en début d'année scolaire....J'aurais bien aimé savoir dans quelle classe était Drélax.

 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Dim 15 Sep 2013, 18:52   Citer 

Je suis d'accord.

Je viens d'ajouter un commentaire dans le premier code de matrice afin que ceux ne connaissant pas Rép/Ans soient tranquilles.
Et un Edit pour signaler le menu matrice aux débutant.
Histoire de suivre votre remarque sur la complexité pour un débutant.

J'ai le choix entre simplifier les maths ou simplifier le programme... pas facile de choisir.
Les combinaisons linéaires en algorithmie sont d'un niveau mathématique faîble mais d'un niveau de programmation élevé.
Il ne reste qu'une seule chose qui satisfasse absoluement tout le monde, c'est de résoudre le système fastidieusement puis appliquer les expressions finales.
Cette application, je la laisse aux étudiants, car j'ai moi-même de la paresse et car j'envisage de les laisser réaliser ça eux-même, puisque c'est au moins une chose à leur portée.

Là j'exprime les fractions du programme de déterminant. Je suis persuadé que résoudre le système donne exactement la même chose finale.
dénominateur=I^2K-K^2I-I^2M+M^2I+K^2M-M^2K
numérateurA=JK-LI-JM+NI+LM-NK
numérateurB=I^2L-K^2J-I^2N+M^2J+K^2N-M^2L
numérateurC=I^2KN-K^2IN-I^2ML+M^2IL+K^2MJ-M^2KJ


----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
Poster un nouveau sujet Poster une réponse





  Powered by Fire-Soft-Board v1.0.10 © 2004 - 2024 Groupe FSB
Page générée en 9 requêtes
BlackOne par Grimmlink