Forum de mathématiques - Bibm@th.net
Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
#1 23-04-2013 15:30:24
- BIENVENU MABIKA
- Membre
- Inscription : 23-04-2013
- Messages : 5
[SCILAB] Suites puis résolution équation (fsolve) avec scilab
Bonjour
je n'arrive pas à faire un programme pour résoudre cet exercice si quelqu'un peut m'aidé
merci
On pose a0 = 1 et b0 = 0, puis pour n superieur ou egal à 0
an+1 = -an - 2bn
bn+1 = 3an + 4bn
Determiner les valeurs de an et bn pour n = 10.
Hors ligne
#2 23-04-2013 18:31:49
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 16 946
Re : [SCILAB] Suites puis résolution équation (fsolve) avec scilab
Salut,
Bienvenue à bord...
Je vais te le faire d'abord avec Python :
a=1
b=0
for n in range(1,11):
a=a-2*b
b=3*a+4*b
print "a10 =",a
print "b10 =",b
Et j'obtiens en sortie :
a10 = 379
b10 = -915
Le même programme avec AlgoBox :
1 VARIABLES
2 a EST_DU_TYPE NOMBRE
3 b EST_DU_TYPE NOMBRE
4 n EST_DU_TYPE NOMBRE
5 DEBUT_ALGORITHME
6 a PREND_LA_VALEUR 1
7 b PREND_LA_VALEUR 0
8 n PREND_LA_VALEUR 10
9 POUR n ALLANT_DE 1 A 10
10 DEBUT_POUR
11 a PREND_LA_VALEUR a-2*b
12 b PREND_LA_VALEUR 3*a+4*b
13 FIN_POUR
14 AFFICHER "a10 ="
15 AFFICHER a
16 AFFICHER "b10 = "
17 AFFICHER b
18 FIN_ALGORITHME
Et j'obtiens en sortie :
***Algorithme lancé***
a10 =379
b10 = -915
***Algorithme terminé***
Voilà, je n'ai pas l'envie de me replonger dans la syntaxe Scilab, alors tu as deux variantes du même programme.
On peut dire que AlgoBox est pratiquement du "pseudo-code", donc tu dois pouvoir adapter en Scilab
Si quelque chose t'échappe, n'hésite pas à questionner !
@+
Arx Tarpeia Capitoli proxima...
Hors ligne
#3 24-04-2013 13:29:40
- BIENVENU MABIKA
- Membre
- Inscription : 23-04-2013
- Messages : 5
Re : [SCILAB] Suites puis résolution équation (fsolve) avec scilab
ok ça marche je trouve les meme réponse avec la syntaxe scilab
Hors ligne
#4 24-04-2013 14:15:37
- arfr
- Invité
Re : [SCILAB] Suites puis résolution équation (fsolve) avec scilab
Bonjour,
Le programme donné en post #2 fait :
[tex]a_n=a_{n-1}-(2*b_{n-1})[/tex]
[tex]b_n=3*a_n +(4*b_{n-1})[/tex] attention : [tex]3*a_n[/tex] n'est pas [tex]3*a_{n-1}
[/tex]
en programmant successivement [tex]a_n\ et\ b_n[/tex] il faut passer par une variable intermédiaire x au lieu de[tex] a_n[/tex]
puis remplacer [tex]a_n=x[/tex]
(en Python la programmation a, b = -a-(2*b), 3*a+(4*b) donne un résultat OK)
il faut ensuite programmer [tex]a_n=-a_{n-1}-(2*b_{n-1})[/tex] (attention au premier signe - )
je trouve [tex]a_{10}=-2045\ et\ b_{10}=3069[/tex]
#5 24-04-2013 14:55:53
- Yassine
- Membre
- Inscription : 09-04-2013
- Messages : 1 090
Re : [SCILAB] Suites puis résolution équation (fsolve) avec scilab
Je sais, vous allez dire que je coupe les cheuveux en quatre (tetra-capillo-secator)
Ci-dessous, une autre méthode pour arriver au résultat souhaité.
Je note [tex]v_n=\left(a_n,b_n\right)^T[/tex] et [tex]A=\left(\begin{array}{cc}-1 & -2\\3 & 4\\\end{array}\right)[/tex]
Alors [tex]v_{n+1} = Av_n[/tex] et donc [tex]v_n = A^n v_0[/tex]
J'imagine alors que Scilab sait calculer des produits (puissances) de matrices. On pourra donc calculer directement [tex]A^{10}[/tex]
L'ennui dans ce monde c'est que les idiots sont sûrs d'eux et les gens sensés pleins de doutes. B. Russel
Hors ligne
#6 24-04-2013 16:04:20
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 16 946
Re : [SCILAB] Suites puis résolution équation (fsolve) avec scilab
Bonjour,
Exact...
Et en prime je n'ai pas vu le - de -an...
Je propose deux autres versions en Python
-La premire en créant deux listes a et b de 11 éléments :
Pour a, les 11 éléments valent 1 pour le premier, 0 pour les autres.
Pour b, les 11 éléments valent 0
Intérêt : on colle au plus près à l'écriture mathématique :
a=[1,0,0,0,0,0,0,0,0,0,0]
b=[0,0,0,0,0,0,0,0,0,0,0]
for n in range(1,11):
a[n]=-a[n-1]-2*b[n-1]
b[n]=3*a[n-1]+4*b[n-1]
print "a[10] =",a[10]
print "b[10] =",b[10]
Sortie :
IDLE 2.6.4
>>> ================================ RESTART ================================
>>>
a[10] = -2045
b[10] = 3069
Ensembles des valeurs de a :
[1, -1, -5, -13, -29, -61, -125, -253, -509, -1021, -2045]
Ensemble des valeurs de b :
[0, 3, 9, 21, 45, 93, 189, 381, 765, 1533, 3069]
La deuxième version qui tient compte de la remarque de arfr :
a=1
b=0
for n in range(1,11):
c=a
a=-a-2*b
b=3*c+4*b
print "a10 =",a
print "b10 =",b
Sortie :
IDLE 2.6.4
>>> ================================ RESTART ================================
>>>
a10 = -2045
b10 = 3069
@yassine :
mélanger racines grecque (tetra) et latines ? Horreur...
A part ça, rien de plus trapu encore ? Déception...
Bon, Maître, vous voudrez bien excuser mon inculture crasse et m'expliquer ce qu'est
[tex]v_n=(a_n,b_n)^T[/tex]
Qu'est-ce que c'est que T ?
Il sort d'où ?
J'aimerais comprendre...
Puis-je voir
[tex]v_1 =(a_1,b_1)^T[/tex] ?
Merci d'avance
@+
Arx Tarpeia Capitoli proxima...
Hors ligne
#7 24-04-2013 16:54:33
- Yassine
- Membre
- Inscription : 09-04-2013
- Messages : 1 090
Re : [SCILAB] Suites puis résolution équation (fsolve) avec scilab
Comme mon pseudo le laisse entrevoir, mes racines sont du sud, donc latin ou grec, c'est du kif-kif pour moi !!
Désolé si ma notation vectorielle est un peu obscure. le T en exposant est pour transposer le vecteur ligne en vecteur colonne, ça me permet d'éviter d'écrire [tex]v_n=\left(\begin{array}{c}a_n\\b_n\\\end{array}\right)[/tex] qui prend plus d'espace vertical qu'un [tex]v_n=(a_n,b_n)^T[/tex]. Et en plus, le LaTeX de ce dernier est moins lourd.
[EDIT] J'ai apprivoisé un Pyhton (avec son petit NumPy)
import numpy as np
A = np.matrix([[-1,-2],[3,4]])
v0 = np.matrix([1,0]).transpose()
print (A ** 10)*v0
ça donne
>>> ================================ RESTART ================================
>>>
[[-2045]
[ 3069]]
>>>
Dernière modification par Yassine (24-04-2013 19:53:06)
L'ennui dans ce monde c'est que les idiots sont sûrs d'eux et les gens sensés pleins de doutes. B. Russel
Hors ligne
#8 24-04-2013 19:52:29
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 16 946
Re : [SCILAB] Suites puis résolution équation (fsolve) avec scilab
Ave,
Vi, vi, j'avais bien vu ton pseudo...
Dans ma carrière, j'ai rencontré de nombreux élèves qui venaient du sud et qui apprenaient le latin...
Le français dérive essentiellement du latin (et moins du grec)
Bon, je me suis mis au boulot, j'ai calculé [tex]A_10[/tex]...
J'ai fait ça bêtement, avec une boucle, parce que python dispose d'un programme additionnel (pour ça notamment) qui s'appelle numpy dédié aux calculs mathématiques...
Mais il a besoin d'être installé après avoir installé Python...
Ce que je n'ai jamais fait.
Bon, en Python, les tableaux n'existant pas, j'ai simulé un tableau (une matrice) via une liste de listes...
Numpy connaît les tableaux, lui...
A=[[-1,-2],[3,4]]
x,y,z,t =-1,-2,3,4
for i in range(1,10):
a,b,c,d=A[0][0],A[0][1],A[1][0],A[1][1]
A[0][0],A[0][1],A[1][0],A[1][1]=a*x+b*z,a*y+b*t,c*x+d*z,c*y+d*t
print "A10 :"
for l in range(2):
print
for c in range(2):
print A[l][c],
Sortie
IDLE 2.6.4
>>> ================================ RESTART ================================
>>>
A10 :-2045 -2046
3069 3070
@+
[EDIT]
Ah ! Je vois que tu m'as devancé et avec numpy en plus !
Bravo !
Un pythonien de plus...
Dernière modification par yoshi (24-04-2013 19:53:38)
Arx Tarpeia Capitoli proxima...
Hors ligne
#9 25-04-2013 18:20:40
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 16 946
Hors ligne
#10 08-05-2013 17:01:36
- Ismail
- Invité
Re : [SCILAB] Suites puis résolution équation (fsolve) avec scilab
A priori j'ai le même devoir à rendre que MABIKA.
J'ai essayé d'utiliser les boucles for mais je tombe sur un résultat éronné... Pouvez vous m'aider à corriger mon erreur?
Merci d'avance!
//Affichage des conditions initiales
a=1
b=0
//initialisation de la boucle avec affichage des 10 premiers termes
for i=1:10
a=-a-(2*b)
b=3*a+(4*b)
end
//Affichage d'un message nous permettant de connaitre les valeurs recherchée
printf("Les valeurs de a(n) et b(n) pour n = %d, sont respectivement: %d et %d",i,a,b );
#11 08-05-2013 17:41:15
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 16 946
Re : [SCILAB] Suites puis résolution équation (fsolve) avec scilab
Bonsoir,
Je ne suis pas chez moi, et je n'ai ni scilab, ni le petit programme que j'avais fait en Scilab.
Mais ça n'a pas d'importance...
Tu commets la même erreur que j'avais commise en Python en voulant écrire un programme adaptable en Scilab, donc sans réfléchir plus avant j'avais procédé comme toi...
Rétablissons les indices :
[tex]a_{n+1}=-a_n-2b_n[/tex]
[tex]b_{n+1}=3a_n+4b_n[/tex]
Mais lorsque tu programmes :
a=-a-(2*b) (1)
b=3*a+(4*b) (2)
quand le calcul de b s'effectue, celui de a est déjà effectué, donc ligne (2), tu fais le calcul avec [tex]a_{n+1}[/tex] et non [tex]a_n[/tex] !!!
Pour éviter ce problème, ajoute une ligne avant la ligne (1) où tu introduis une variable intermédiaire c (par exemple) valant a et tu calcules b (ligne 2) non pas avec a mais avec c :
for i=1:10
c = a
a=-a-(2*b)
b=3*c+(4*b)
end
En Python, j'écris habituellement :
a,b=-a-2*b,3*a+4*b
Et en l'écrivant sur 2 lignes, on oublie facilement (ça m'est donc arrivé) ce problème...
@+
Arx Tarpeia Capitoli proxima...
Hors ligne
#12 08-05-2013 18:07:47
- Ismail
- Invité
Re : [SCILAB] Suites puis résolution équation (fsolve) avec scilab
Merci Yoshi!
Tu es trop un beaugosse!
J'ai encore 2 exercices ou je peine... Je vais me donner a fond encore 2heures et si je n'y arrive pas je pourrai encore abuser de ta gentillesse? (ca fait 8 heures que je bosse sur ce devoir qui compte 50% de ma note annuelle...)
#14 08-05-2013 19:11:41
- Ismail
- Invité
Re : [SCILAB] Suites puis résolution équation (fsolve) avec scilab
Merci beaucoup pour ton aide!
Je commence à péter un câble....
Il faut que je trace une fonction du type f(x)=2x²sin(x) et une fonction g(x)=x...
Le problème est quand j'essaye de tracer f(x)=2*x^2sin(x) j'ai une réponse: Multiplication incohérente.
As tu un petit tip pour moi?
#15 08-05-2013 19:58:29
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 16 946
Re : [SCILAB] Suites puis résolution équation (fsolve) avec scilab
Bonsoir,
As-tu essayé
f(x)=2*x^2*sin(x) au lieu de f(x)=2*x^2sin(x) ?
Le système MP n'existe pas ici...
Et je ne suis pas chez moi jusqu'à vendredi 12 h, ça ne servirait à rien...
Si ça peut t'aider
guide de survie scilab
@+
Arx Tarpeia Capitoli proxima...
Hors ligne
#17 08-05-2013 20:47:43
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 16 946
Re : [SCILAB] Suites puis résolution équation (fsolve) avec scilab
Salut,
Je viens de charger Scilab et j'ai essayé :
Initialisation :
Chargement de l'environnement de travail-->
-->x=0.5
x =0.5
-->2*x^2*sin(x)
ans =0.2397128
Alors qu'est-ce qui ne fonctionne pas ?
@+
Arx Tarpeia Capitoli proxima...
Hors ligne
#18 08-05-2013 21:02:07
- 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 initiale
Je 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
Hors ligne
#20 08-05-2013 21:24:39
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 16 946
Hors ligne
#21 08-05-2013 21:31:53
- Ismail
- Membre
- Inscription : 08-05-2013
- Messages : 24
Re : [SCILAB] Suites puis résolution équation (fsolve) avec scilab
Donc a priori il n'est pas possible d'afficher une courbe un peu plus jolie comme celle-ci:
http://www.wolframalpha.com/input/?i=x^2+sin%28x%29%3Dx
Bonne soirée ou bonne nuit!!
Hors ligne
#22 08-05-2013 21:53:39
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 16 946
Re : [SCILAB] Suites puis résolution équation (fsolve) avec scilab
Bonsoir,
Là, je vais me coucher...
Je ne connais pas Scilab : je patauge...
Si, c'est possible !
Là, j'ai compris qu'à cause des crochets et du ;, j'ai tracé une surface.
Problème : avec plot2d(x,y)..., je trace sin(x), sin(x)/x mais ta courbe ne veut pas : j'obtiens les axes gradués, point-barre... Je dois donc rater qq ch qq part
Je vais tâcher de voir quoi demain...
@+
Arx Tarpeia Capitoli proxima...
Hors ligne
#24 09-05-2013 07:26:31
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 16 946
Re : [SCILAB] Suites puis résolution équation (fsolve) avec scilab
Bonjour,
Je ne sais pas pourquoi ça marche, mais ça marche...
Je viens de faire plusieurs tests : on ne peut pas calculer x* sin(x), ni x*log(x) ni x* exp(x)...
Il faut intercaler un point décimal....
Mais pourquoi ? Je ne sais pas...
Je n'arrive pas à utiliser une seule instruction plot pour les 2 courbes...
Je n'arrive pas à mettre une couleur différente pour y = x
A toi de jouer : c'est toi qui a des cours de Scilab.. ^_^
@+
Arx Tarpeia Capitoli proxima...
Hors ligne
#25 09-05-2013 12:57:04
- Ismail
- Membre
- Inscription : 08-05-2013
- Messages : 24
Re : [SCILAB] Suites puis résolution équation (fsolve) avec scilab
Merci pour ton aide, je suis entrain d'essayer de colorer tout ca :)
Je n'ai pas vraiment de cours en Scilab... Je suis étudiant en formation à distance, et les cours sur Scilab sont quasi inexistants...
Hors ligne