J'ai un probleme qui peut etre est tres simple à résoudre mais dont je ne trouve pas de solution.
Je fais un programme sur ma nspire cas, toutes mes variables définies en local dans le programme peuvent avoir une valeur attribuée avec le ":=" sauf mon expression.
Le programme s’arrête au premier y:= et me génère l'erreur de variable non définie.
( j'ai essayé de changé le nom de ma variable, la mettre entre parenthèses, lui donner une valeur bidon pour lui redonner la valeur que je veux, etc. mais il me dit toujours variable non définie ).
Voici le code :
- Code: Select all
Define LibPub mhsamor()=
Prgm
:Local y,c1c2,x0,x1,y0,y1,m,m1,m2,y,c,k,x,t,condi,edo,solg,solp,zeross,w,a,phase,p,f,c1,c2,a,b
:
:Request "m*y'' +c*y'+ k*y = 0 : m = ?",m
:Request "m*y'' + c*y'+ k*y = 0 : c = ?",c
:Request "m*y'' + c*y'+ k*y = 0 : k = ?",k
:Request "Condition initiale ? (1=OUI / 0=NON)",condi
:
:Disp "Solution homogene :"
:Disp "Equation caract. : "&string(m)&"r²+"&string(c)&"r+"&string(k)&"=0"
:zeross:=cSolve(m*r*r+c*r+k=0,r)
:Disp zeross
:
:If c^(2)-4*m*k>0 Then
: Disp "Situation de sur amortissement c^2-4mk>0"
: m1:=zeross[1]
: m2:=zeross[2]
: y:=c1*e^(m1*t)+c2*e^(m2*t) :warning:
: Disp "Solution generale :"
: Disp y
:EndIf
:
:If c^(2)-4*m*k=0 Then
:Disp "Situation de amortissement critique c^2-4mk=0"
:m:=zeross[1]
:y:=c1*e^(m*t)+c2*t*e^(m*t)
:Disp "Solution generale :"
:Disp y
:EndIf
:
:If c^(2)-4*m*k<0 Then
: Disp "Situation de sous amortissement c^2-4mk<0"
: m1:=zeross[1]
: m2:=zeross[2]
: a:=real(m1)
: b:=imag(m1)
: y:=^(a*t)*(c1*cos(b*t)+c2*sin(b*t))
: Disp "Solution generale :"
: Disp y
:EndIf
:
:If condi=1 Then
: Request "y(x) =y0 : x ?",x0
: Request "y(x) =y0 : y ?",y0
: Request "y'(x) =y1 : x ?",x1
: Request "y'(x) = y1 : y ?",y1
:
: c1c2:=solve(system((y|t=x0)=y0,(y|t=x1,t)=y1),{c1,c2})
: c1:=c1c2[1]
: c2:=c1c2[2]
:
: Disp "Solution particuliere :"
: Disp y
:EndIf
:EndPrgm
Merci.