1

Je suis en train de chercher à faire un prog sur 89 pour faire des régressions de la forme y=a*x. Ce prog utiliserait des données déjà rentrées dans un tableau.
On donne au programme le nom de la variable dans laquelle est stockée le tableau, les colonnes x, y et il fait le reste.
Pour ça j'ai besoin d'utiliser des sommes, pour faire la somme de toute une colonne. Ca commence comme ça : Sum(#f[x][i],i,1,n), où n est le numéro de la dernière ligne utilisable. Le problème en fait c'est de trouver n pour savoir où s'arrêter parce que il y a "error dimension" quand on tombe sur une case vide...

2

dim(tableau)
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

3

Les données sont dans un tableau de type data. Et cette fonction renvoie la longueur d'une chaine de caractère, je me trompe ? Qu'est ce qu'il faut mettre comme argument ?

4

alors, un fichier Data en en fait une liste de liste. Donc dim(Data[numListe]).
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

5

bobd-> dim renvoie aussi bien la longueur d'une chaine que d'une liste, et même d'une matrice: On obtient une liste de deux nombres, représentant les deux dimensions.
manuel.gif
avatar
Maintenant j'ai la flemme de garder une signature à jour sur ce site. Je n'ai même plus ma chaîne Exec sous la main.

6

Oui merci en fait c'est bon j'ai trouvé... le prog marche correctement.
Alors maintenant j'ai 2 autres questions (qui sont peut être aussi dans le manuel, pourtant j'ai cherché...) :
-pour le même prog que ci-dessus, on peut exporter l'équation dans les fonctions graphiques de y1 à y9. L'instruction que j'utilise c'est "a*x->y1(x)"
Or je voudrais que, quand on va dans "y=", l'affichage soit [valeur numérique de a]*x et non a*x (ce qui me permettrait d'en stocker plusieurs et de supprimer la variable a à la fin du prog).
-pour un autre prog, qui pourrait effectuer des régressions de la forme voulue à un coeffecient, il faut que je trouve le minimum d'une fonction sur un intervalle. J'arrive à le faire dans le mode graph mais je ne retrouve pas la fonction ailleur, est-ce qu'elle existe et sinon comment puis-je faire ?

7

bobd a écrit :
-pour le même prog que ci-dessus, on peut exporter l'équation dans les fonctions graphiques de y1 à y9. L'instruction que j'utilise c'est "a*x->y1(x)" Or je voudrais que, quand on va dans "y=", l'affichage soit [valeur numérique de a]*x et non a*x (ce qui me permettrait d'en stocker plusieurs et de supprimer la variable a à la fin du prog).

expr("("&string(a)&")*x->y1(x)")
-pour un autre prog, qui pourrait effectuer des régressions de la forme voulue à un coeffecient, il faut que je trouve le minimum d'une fonction sur un intervalle. J'arrive à le faire dans le mode graph mais je ne retrouve pas la fonction ailleur, est-ce qu'elle existe et sinon comment puis-je faire ?

fMin(fonction,x)|x>a and x>b
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

8

oui excusez moi encore mais pour fMin c'était dans le manuel, c'est bon. Sinon merci, j'essaye ça tout de suite.
A part ça j'ai des problèmes avec le deuxième programme ; le code c'est :
()
Prgm

DelVar a

Dialog
Request "fichier",d
Request "f(x)=",f
Request "nombre de points",n
Request "x...",x
Request "y...",y
EndDlog

expr(f)»f(x)
expr(n)»n
expr(x)»x
expr(y)»y

Sum((#d[y][i]-f(#d[x][i]))^2,i,1,n)»g(a)

fMin(g(x),x)»a
expr(mid(string(a),3))»a

Dialog
Title string(f)
Text "a="&string(a)
EndDlog

EndPrgm

Ce qui est censé trouver le a (le coefficient cherché) par la méthode des moindres carrés. Le prog me met error : index out of range dans la définition de g(a). Je vais chercher mais pour l'instant je n'ai pas vu d'où ça pouvais venir.

Petite précision : f(x) est une fonction contenant le coefficient a, d'où la définition de
g(a)...

9

je suis pas sur que cette ligne soit valide :
Sum((#d[y][i]-f(#d[x][i]))^2,i,1,n)»g(a)
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

10

Oui c'est d'ailleur celle là qui pose problème. En langage un peu plus mathématique c'est ça : Sum((yi-f(xi))^2,i,1,n)->g(a) cette somme dépend bien de a car f(x) dépend de a. Mais ça pour le faire comprendre à la calcu...

11

si f(xi) dépend de a ça devrait plutôt être f(xi,a) alors nan?
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

12

en fait non, c'est l'expression de f(x) qui dépend de a. f(x) est une fonction à variable unique mais dont l'expression contient un coefficient à ajuster. Je ne sais pas si ça pourrait revenir au même.
En tout cas... ça marche !!!!! il ne me reste qu'à le tester avec des fonctions exponentielles.

Et la ligne en question était bien valide, ce sont les variables utilisées qui n'étaient pas claires... Maintenant donc tout va bien, je vous tiens au courant des tests...

13

Alors petit bémol : le programme ne marche pas pour toutes les fonctions. Cette limitation vient des limites du calcul de minimum...
par exemple une régression d'équation y=exp(a*x) ne marche pas...

14

J'ai un problème et je n'ai pas trouvé la réponse dans le manuel. C'est avec ce petit programme :

reg001(f(x),d,cx,cy)
Func

dim(#d[g])->n

Sum(expr(mid(string(solve(f((#d[cx])[i])=(#d[cy])[i],a)),3)),i,1,n)/n->coeff

Return coeff

EndFunc

pour le lancer, je lui met : reg001(exp(a*x),"xxx",1,3) et il me met comme erreur : argument must be a variable name. Ca doit être tout con mais là je ne vois pas...

Sinon j'ai trouvé une méthode moins précise mais qui marche tout le temps (je n'ai pas trouvé une forme d'équation où ça ne marchait pas), et je cherche pour un calcul de coefficient de régression (il se calcule mais les résultats ne sont pas toujours crédibles).

15

c pasque le liste xxx n'as pas été définis.
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

16

justement si ! xxx est une variable de type data...

17

a bah précise, alorsroll

C à kel endroit qu'il te sort l'erreur ??
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

18

C'est à la fin de la première ligne...

19

Si c la première ligne, il n'y a pas trop le choix. C la var #g qui va pas. Hors comme g contient "xxx", c donc la var xxx qui est pas définis.
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

20

reg001(f(x),d,cx,cy)
Func

dim(#d[g])->n

La var en rouge, elle sort d'ou ?
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

21

à voui non pardon en fait c'est que j'avais renommé cx en g (craignant un conflit avec les variables système), puis voyant que ça ne changeait rien, je l'ai repassé en cx et j'ai oublié de changé celle là...
Mais le problème était déjà là avant donc ça ne doit pas être ça...

22

Vérifie quand même, à tout hazard ?
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

23

euh, voui attend : en fait je l'avais supprimé et là ce p**** de graphlink buggue encore donc comme je pars en vacances et que je ne reviens que jeudi prochain, je te donnerais la réponse jeudi...

24

En fait graphlink c'est mis à remarcher plus vite que d'habitude donc en fait voilà : le problème ne venait pas de là, j'ai tout remis avec cx et cy et le problème persiste

25

La source telle que tu l'as postée devrait marcher. Tu peux envoyer le bout de programme qui pose problème ?
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

26

si ct g qui merdait, ça aurait pas fait argument must be a variable nametongue

C xxx qu'est foireuxsmile
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

27

MacIntoc a écrit :
si ct g qui merdait, ça aurait pas fait argument must be a variable nametongue

Je sais bien j'avais testé, mais on sait jamais : c'est le seul problème que je voyais dans son code, puisqu'il t'as dit que xxx n'est pas le problème.
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

28

g pas dit que ct pas xxx, g dit que ct xxx, justementtongue
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

29

c'est bien ce que j'essaie de t'expliquer... à priori si il est sur que c'est pas xxx, bah y'a peu de chances pour que ça le soit. vaut mieux chercher ailleurs.
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

30

mué, raccroche toi aux branchegrin
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.