Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

#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 : 14 805

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 : 14 805

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 : 14 805

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...

v0=[[1],[0]]
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 : 14 805

Re : [SCILAB] Suites puis résolution équation (fsolve) avec scilab

Bonjour,

Et maintenant le même via scilab

A=[-1 -2;3 4]
V0=[1;0]
A10=A^10
V10=A10*V0
disp(A10)
disp(V10)

Sortie :

- 2045.  - 2046. 
    3069.    3070. 

  - 2045. 
    3069.

@+


Arx Tarpeia Capitoli proxima...

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 : 14 805

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...)

#13 08-05-2013 18:23:12

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 14 805

Re : [SCILAB] Suites puis résolution équation (fsolve) avec scilab

Re,


Pas de pb...
La programmation, c'est mon dada (en dehors des maths)...

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#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 : 14 805

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

#16 08-05-2013 20:41:10

Ismail
Membre
Inscription : 08-05-2013
Messages : 24

Re : [SCILAB] Suites puis résolution équation (fsolve) avec scilab

oui j'ai essayé mais ca ne marche pas

Hors ligne

#17 08-05-2013 20:47:43

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 14 805

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

#19 08-05-2013 21:03:49

Ismail
Membre
Inscription : 08-05-2013
Messages : 24

Re : [SCILAB] Suites puis résolution équation (fsolve) avec scilab

c'est pour dessiner la fonction que ca déconne... ca marche sur l'editeur direct...

Hors ligne

#20 08-05-2013 21:24:39

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 14 805

Re : [SCILAB] Suites puis résolution équation (fsolve) avec scilab

Re,

J'ai vu...
Ça, ça marche :


scilab.org/product/dic-mat-sci/M2SCI_doc.htm">for x = 0:0.01:3
    y=2*x^2*sin(x)
    plot2d([x;y])
scilab.org/product/dic-mat-sci/M2SCI_doc.htm">end

130508102701132333.jpg

Rideau pour ce soir...

@+


Arx Tarpeia Capitoli proxima...

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 : 14 805

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

#23 08-05-2013 22:02:52

Ismail
Membre
Inscription : 08-05-2013
Messages : 24

Re : [SCILAB] Suites puis résolution équation (fsolve) avec scilab

Merci beaucoup pour ton implication :)

Je vais bosser autre chose ce soir, la je commence à devenir fou :)

Bonne nuit! et Merci encore pour ton aide!

Hors ligne

#24 09-05-2013 07:26:31

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 14 805

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...


x = -10:0.01:10;
y1=x
y=2*x^2 .*sin(x)
plot(x,y)
plot(x,y1)

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

Réponse rapide

Veuillez composer votre message et l'envoyer
Nom (obligatoire)

E-mail (obligatoire)

Message (obligatoire)

Programme anti-spam : Afin de lutter contre le spam, nous vous demandons de bien vouloir répondre à la question suivante. Après inscription sur le site, vous n'aurez plus à répondre à ces questions.

Quel est le résultat de l'opération suivante (donner le résultat en chiffres)?
quatre-vingt quinze moins quatre-vingt dix
Système anti-bot

Faites glisser le curseur de gauche à droite pour activer le bouton de confirmation.

Attention : Vous devez activer Javascript dans votre navigateur pour utiliser le système anti-bot.

Pied de page des forums