Forum de mathématiques - Bibm@th.net
Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
#27 09-05-2013 18:17:51
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 16 988
Re : [SCILAB] Suites puis résolution équation (fsolve) avec scilab
Re,
C'est ce que j'avais subodoré avant de partir en vadrouille en lisant ça :
Réaliser des graphiques avec Scilab
Mais il semble qu'on peut encore faire autrement.
@+
Arx Tarpeia Capitoli proxima...
Hors ligne
#29 11-05-2013 15:48:45
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 16 988
Re : [SCILAB] Suites puis résolution équation (fsolve) avec scilab
Salut,
Non, mais je vais apprendre...
Deux conseils :
1. Dans la console Scilab, tape help fsolve (et Entrée)
2. Pour un autre sujet, ouvre une autre discussion, s'il te plaît, et postes-y ton souci.
Merci
Arx Tarpeia Capitoli proxima...
Hors ligne
#30 11-05-2013 16:01:03
- Ismail
- Membre
- Inscription : 08-05-2013
- Messages : 24
Re : [SCILAB] Suites puis résolution équation (fsolve) avec scilab
J'ai essayé de trouver la solution en tapant help fsolve, mais j'ai rien compris je suis trop une quiche! C'est toujours le même exercice, c'est pour cela que j'ai pensé qu'il pourrait être utile de tous laisser dans le même sujet.
Hors ligne
#31 11-05-2013 17:09:19
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 16 988
Re : [SCILAB] Suites puis résolution équation (fsolve) avec scilab
Bonjour,
Si tu es une quiche, alors on est deux...
Parce que je ne vois pas trop comment appliquer fsolve à cet exercice sur les suites...
[tex]a_n=-a_{n-1}-2b_{n-1}[/tex]
[tex]b_n=3a_{n-1}+4b_{n-1}[/tex]
Je ne vois pas comment passer de leur exemple (au passage, ils ne donnent pas l'énoncé mathématique correspondant à leur résolution...) à la problématique ci-dessus.
Je vais m'obstiner.
@+
Dernière modification par yoshi (11-05-2013 17:10:08)
Arx Tarpeia Capitoli proxima...
Hors ligne
#32 11-05-2013 18:06:13
- Ismail
- Membre
- Inscription : 08-05-2013
- Messages : 24
Re : [SCILAB] Suites puis résolution équation (fsolve) avec scilab
f(x)=2x²sin(x) pour tout x appartenant à R,
On cherche à determiner les points fixes de f c'est à dire les réels x tels que:
f(x)=x
1. Tracer la fonction f et la fonction g donnée par g(x)=x
2. En déduire le nombre de points fixes de f sur [0;10]
3. Déterminer ces points fixes à l'aide de la fonction fsolve en jouant sur la valeur initialeJe galère pourtant je suis sur que c'est tout bête... Je sens que ca va être nuit blanche pour finir ce truc vu que demain je dois bosser une autre matière
Peut être parce qu'il s'agit de cet exercice :)
Hors ligne
#36 11-05-2013 20:55:39
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 16 988
Re : [SCILAB] Suites puis résolution équation (fsolve) avec scilab
RE,
Non, parce que je ne peux pas transférer 21 posts...
Maintenant c'est trop tard...
Initialisation :
Chargement de l'environnement de travail-->deff('y=f(x)','y=2*x^2.*sin(x)');x0=fsolve(0,f)
x0 =0.
-->deff('y=f(x)','y=2*x^2.*sin(x)');x0=fsolve(3,f)
x0 =3.1415927
-->deff('y=f(x)','y=2*x^2.*sin(x)');x0=fsolve(-3,f)
x0 =- 3.1415927
-->deff('y=f(x)','y=2*x^2.*sin(x)');x0=fsolve(6,f)
x0 =6.2831853
-->deff('y=f(x)','y=2*x^2.*sin(x)');x0=fsolve(-6,f)
x0 =- 6.2831853
Quoi de plus ?
J'attendais qu'il me sorte les 5 solutions...
Hélas, il faut initialiser le solveur avec une valeur entière pas trop éloignée, ce qui oblige :
1. à les connaître,
2. à recommencer ici 5 fois.
@+
[EDIT]
OK, ce n'est pas ce que tu veux !
Ton post devait être ici dans le forum programmation pas dans Entraide (Supérieur)
Arx Tarpeia Capitoli proxima...
Hors ligne
#37 11-05-2013 21:03:30
- Ismail
- Membre
- Inscription : 08-05-2013
- Messages : 24
Re : [SCILAB] Suites puis résolution équation (fsolve) avec scilab
J'ai les valeurs pas trop éloignés, peux tu me donner un exemple avec les 2 premières pour que je saisisse?
Merci beaucoup pour ton aide:
0, 1, 3, 6 et 10
je ne comprends pas pourquoi tu mets une valeur négative à chaque fois en fait
Dernière modification par Ismail (11-05-2013 21:04:55)
Hors ligne
#39 11-05-2013 21:20:58
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 16 988
Re : [SCILAB] Suites puis résolution équation (fsolve) avec scilab
Salut,
Bon je vais contourner la difficulté...
J'ai l'habitude de faire le tour de la montagne si je ne peux pas l'escalader !
Donc, tu cherches à avoir les x tels que f(x)=x, alors je vais donc rechercher les x tels que f(x)-x=0.
Il suffit de faire la même chose avec y=2*x^2.sin(x)-x...
Je vais chercher à boucler sur les valeurs pour éviter d'avoir à retaper le tout 5 fois (sur [tex][-\pi\;;\;+\pi][/tex]...
En fait f(x)-x est paire et périodique ... On peut donc donc se limiter.
@+
Arx Tarpeia Capitoli proxima...
Hors ligne
#41 11-05-2013 21:29:35
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 16 988
Re : [SCILAB] Suites puis résolution équation (fsolve) avec scilab
RE,
En console, exemple :
-->deff('y=f(x)','y=2*x^2.*sin(x)-x');x0=fsolve(1,f)
x0 =
0.7408410
-->deff('y=f(x)','y=2*x^2.*sin(x)-x');x0=fsolve(3,f)
x0 =2.9725855
je regarde pour boucler.
@+
Arx Tarpeia Capitoli proxima...
Hors ligne
#42 11-05-2013 21:33:54
- Ismail
- Membre
- Inscription : 08-05-2013
- Messages : 24
Re : [SCILAB] Suites puis résolution équation (fsolve) avec scilab
Il te donne 0,7 alors que c'est 0 et 2,97 alors que le résultat devrait être 2,77 c'est pas une énorme différence mais tu penses pas qu'il est possible d'utiliser des réels au lieu des entiers?
Dernière modification par Ismail (11-05-2013 21:35:20)
Hors ligne
#43 11-05-2013 21:59:26
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 16 988
Re : [SCILAB] Suites puis résolution équation (fsolve) avec scilab
Re,
La fonction est impaire pardon...
Il te donne 0,7 alors que c'est 0 et 2,97
Absolument pas (mais on peut partir d'un réel !)
La preuve :
-->deff('y=f(x)','y=2*x^2.*sin(x)-x');x0=fsolve(0.5,f)
x0 =0.7408410
De plus, voilà un gros plan de mon grapheur :
Je te rappelle que là je cherche les solutions de f(x)=x donc de [tex]f(x)-x=0[/tex]
Les points fixes sont aux alentours de -9.4, -6.4, -3, -0.7, 0 (valeur exacte), 0.7, 3, 6.4, 9.4
Convaincu ?
@+
Bon, j'arrête ce ce soir : je sature !
@+
Arx Tarpeia Capitoli proxima...
Hors ligne
#45 12-05-2013 12:40:28
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 16 988
Re : [SCILAB] Suites puis résolution équation (fsolve) avec scilab
Bonjour,
D'abord, la fonction f n'est pas périodique non plus, erreur de ma part.
Bon, je t'avais bien dit que j'allais m'obstiner...
Sortie :
Initialisation :
Chargement de l'environnement de travail-->exec('C:\Program Files\scilab-5.4.1\points_fixes.sce', -1)
0.
0.7408410
2.9725855
6.3618598
9.3713988
J'avais d'abord inclus fsolve dans la fonction, mais après demande d'exécution, mon écran se remplissait de chiffres à toute allure et dans la s suivante ... Pfuiittt... plus de scilab !
J'ai mis 2 h à comprendre : chuis pas bien doué, hein...
La raison était pourtant "évidente" :
fsolve fait appel à la fonction f, qui elle fait appel à fsolve qui fait appel à f qui elle...
Récursivité sans condition de sortie --> boucle infinie.
Mais la récursivité charge la "pile" et normalement, on devrait tomber sur un message d'erreur genre "stack overflow"...
Mais là, le programme disparaissait complètement...
A partir du moment, où j'ai eu compris ce qui se passait, tout est allé très vite.
@+
Arx Tarpeia Capitoli proxima...
Hors ligne
#46 13-05-2013 10:10:56
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 16 988
Re : [SCILAB] Suites puis résolution équation (fsolve) avec scilab
Salut,
Comportement bizarre de fsolve...
Si j'essaie avec x=5, logiquement, il devrait me retourner 6.36, valeur la plus proche...
Et non, il me renvoie la première valeur négative -0.71408410 !
@+
Arx Tarpeia Capitoli proxima...
Hors ligne
#48 14-05-2013 10:30:57
- MathRack
- Membre
- Inscription : 02-04-2012
- Messages : 78
Re : [SCILAB] Suites puis résolution équation (fsolve) avec scilab
Bonjour,
J'espère que l'oral c'est bien passé...
Ci-dessous un petit script qui cherche les points fixes sur l'intervalle [-10,10]. Ça ne fonctionne que si les points fixes sont séparés de delta :
x0=xmin;
sol=[];
function[y]=f(x)
y=2*x.^2.*sin(x)-x
endfunction
function[y]=g(x)
y=abs(f(x));
endfunction
while x0<xmax
[x,v,info]=fsolve(x0,g);
if (info==1) then
sol=[sol;x];
function[y]=g(x)
tmp=zeros(x);
for j=1:size(sol,1)
for i=1:size(x,1)
tmp(i)=tmp(i)-min(0,(x(i)-sol(j)-delta).*(x(i)-sol(j)+delta) );
end
end
y=abs(f(x))+tmp;
endfunction
end
x0=x0+step;
end
gsort(sol)
Hors ligne
#49 14-05-2013 12:01:52
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 16 988
Re : [SCILAB] Suites puis résolution équation (fsolve) avec scilab
Salut,
Puisque tu as l'air de maîtriser Scilab, peux-tu m'expliquer pourquoi
-->deff('y=f(x)','y=2*x^2.*sin(x)-x');x0=fsolve(5,f)
me renvoie -0.71408410 et non 6,36... la valeur la plus proche ?
Et tant qu'à "reculer", pourquoi -0.71... et non 2.97... ?
@+
[EDIT]
Ton prog ne m'affiche rien sinon ce message :
Initialisation :
Chargement de l'environnement de travail-->exec('C:\Program Files\scilab-5.4.1\solveur points fixes_mathrack.sce', -1)
Attention : Redéfinition de la fonction : g . Utilisez funcprot(0) pour ne pas afficher ce message.
-->
Dernière modification par yoshi (14-05-2013 12:13:42)
Arx Tarpeia Capitoli proxima...
Hors ligne
#50 14-05-2013 14:54:16
- MathRack
- Membre
- Inscription : 02-04-2012
- Messages : 78
Re : [SCILAB] Suites puis résolution équation (fsolve) avec scilab
Salut,
En principe la dernière ligne affiche la solution :
ans =
9.3713988
6.3618598
2.9725855
0.7408410
0.
- 0.7408410
- 2.9725855
- 6.3618598
- 9.3713988
Je pense que si tu remplaces le -1 dans exec('...',-1) par 0 la solution va s'afficher. Sinon, un copier/coller du script directement dans scilab fonctionne.
La fonction fsolve retourne un zéro de la fonction, pas forcément le plus proche. Si on regarde la courbe f(x), on voit que x=5 n'est pas loin d'un point où la dérivée est nulle. Donc si on prolonge la tangente à la courbe en x=5, ça coupe l'axe des abscisses loin de x=5 et proche de x=0. Ça pourrait expliquer qu'on ne trouve pas le zéro le plus proche...
Comme c'est un logiciel open-source, on pourrait essayer de déterrer le code de la fonction fsolve pour voir ce qui se passe en détail mais ça dépasse un peu mes compétences! (et c'est probablement du C ou un monstre qui s'en approche)
Cordialement,
MathRack
Hors ligne