Subversion Repositories wimsdev

Rev

Rev 7210 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 7210 Rev 16321
Line 2... Line 2...
2
!set methenv=ZZ QQ RR
2
!set methenv=ZZ QQ RR
3
!set methparmtype=parm function integrate, function
3
!set methparmtype=parm function integrate, function
4
!set methhelp=Cette méthode applique le changement de variable sur une\
4
!set methhelp=Este método aplica el cambio de variable\
5
intégration indéfinie.
5
    sobre una integración indefinida.
6
 
6
 
7
!if $wims_read_parm iswordof form check
7
!if $wims_read_parm iswordof form check
8
 !goto $wims_read_parm
8
  !goto $wims_read_parm
9
!endif
9
!endif
10
 
10
 
11
!exit
11
!exit
12
:form
12
:form
13
 !set N=!linecnt $mtobj1
13
!set N=!linecnt $mtobj1
14
 !if $N>1 and $methsubstep=1
14
!if $N>1 and $methsubstep=1
15
  :first
15
  :first
16
  !set methsubstep=2
16
  !set methsubstep=2
17
  Appliquer un changement de variable pour : <p>
17
  Aplicar un cambio de variable para:
18
  !read deduc/methparm.phtml 1
18
  !read deduc/methparm.phtml 1
19
 !else
19
!else
20
  !bound methparm1 between integer 0 and $N default 1
20
  !bound methparm1 between integer 0 and $N default 1
21
  !if $methparm1=0 or $error!=$empty
21
  !if $methparm1=0 or $error!=$empty
22
   !goto first
22
    !goto first
23
  !endif
23
  !endif
24
  <input type="hidden" name="methparm1" value="$methparm1" />
24
  <input type="hidden" name="methparm1" value="$methparm1" />
25
  !set methsubstep=1
25
  !set methsubstep=1
26
  !set l=!line $methparm1 of $mtobj1
26
  !set l=!line $methparm1 of $mtobj1
27
  !set l=!item 2 to -1 of $l
27
  !set l=!item 2 to -1 of $l
28
  !set k=!mathsubst integrate= in $l
28
  !set k=!mathsubst integrate= in $l
29
  !set k=!declosing $k
29
  !set k=!declosing $k
30
  !set v=!item 2 of $k
30
  !set v=!item 2 of $k
31
  !set nvar=!item 1 of $newvariables
31
  !set nvar=!item 1 of $newvariables
32
  Changement de variable :
32
  Cambio de variable:
33
   <div class="wimscenter">
33
  <div class="wimscenter">
34
 	\($l = integrate(f($v),$v) = integrate(f(h($nvar))h'($nvar),$nvar)) ,
34
  \($l = integrate(f($v),$v) = integrate(f(h($nvar))h'($nvar),$nvar)) ,
35
  </div>
35
  </div>
36
  avec
36
  avec
37
  \($v = h($nvar) = )
37
  \($v = h($nvar) = )
38
  !read deduc/methparm.phtml 2,36
38
  !read deduc/methparm.phtml 2,36
39
.
39
.
40
 !endif
40
!endif
41
!exit
41
!exit
42
:check
42
:check
43
 ker=!item 2 of $methparmobj1
43
ker=!item 2 of $methparmobj1
44
 ker=!mathsubst integrate= in $ker
44
ker=!mathsubst integrate= in $ker
45
 ker=!trim $ker
45
ker=!trim $ker
46
 ker=!declosing $ker
46
ker=!declosing $ker
47
 !distribute items $ker into iker,ivar
47
!distribute items $ker into iker,ivar
48
 vartest=!varlist $ivar
48
vartest=!varlist $ivar
49
 !if $ivar != $vartest
49
!if $ivar != $vartest
50
  error=Fail
50
  error=Fail
51
  !exit
51
  !exit
52
 !endif
52
!endif
53
 
53
 
54
 newvar=!item 1 of $newvariables
54
newvar=!item 1 of $newvariables
55
 vv=!varlist nofn $methparm2
55
vv=!varlist nofn $methparm2
56
 vtest=!listcomplement $newvar,e,pi,euler in $vv
56
vtest=!listcomplement $newvar,e,pi,euler in $vv
57
 !if $vtest!=$empty
57
!if $vtest!=$empty
58
  error=\($methparm2) doit être une fonction de \($newvar) uniquement.
58
  error=\($methparm2) debe ser una función de \($newvar) únicamente.
59
  !exit
59
  !exit
60
 !endif
60
!endif
61
 diff=!exec maxima diff($methparm2,$newvar);
61
diff=!exec maxima diff($methparm2,$newvar);
62
 !if $diff=$empty
62
!if $diff=$empty
63
  :bad_data
63
  :bad_data
64
  error=bad_data
64
  error=bad_data
65
  !exit
65
  !exit
66
 !endif
66
!endif
67
 inv=!exec maxima solve($ivar=$methparm2,$newvar);
67
inv=!exec maxima solve($ivar=$methparm2,$newvar);
68
 inv=!declosing $inv
68
inv=!declosing $inv
69
 n=!itemcnt $inv
69
n=!itemcnt $inv
70
 inv2=!nospace $inv
70
inv2=!nospace $inv
71
 eq==
71
eq==
72
 !if $n!=1 or +++**$newvar$eq notin +++**$inv2
72
!if $n!=1 or +++**$newvar$eq notin +++**$inv2
73
  error=Impossible de trouver la fonction réciproque de $methparm2 nécessaire\
73
  error=No se pudo encontrar la función recíproca de $methparm2 
74
 	pour la substitution ultérieure :\
74
        necesaria para una mayor sustitución: 
75
	utilisez le changement de variable inverse.
75
        use el cambio de variable inversa.
76
  !exit
76
  !exit
77
 !endif
77
!endif
78
 substed=!mathsubst $ivar=($methparm2) in $iker
78
substed=!mathsubst $ivar=($methparm2) in $iker
79
 !read deduc/sub/checkzero diff(($substed)*($diff),$newvar)
79
!read deduc/sub/checkzero diff(($substed)*($diff),$newvar)
80
 difftest=$out
80
difftest=$out
81
 !read deduc/sub/simplify ($substed)*($diff)\
81
!read deduc/sub/simplify ($substed)*($diff)\
82
	($substed)*($diff)*$newvar
82
	($substed)*($diff)*$newvar
83
 !distribute lines $out into newker,ktest
83
!distribute lines $out into newker,ktest
84
 !if $newker=$empty or $ktest=$empty or $difftest=$empty
84
!if $newker=$empty or $ktest=$empty or $difftest=$empty
85
  !goto bad_data
85
  !goto bad_data
86
 !endif
86
!endif
87
 
87
 
88
 !if strictintegrate iswordof $m_options and $difftest=yes
88
!if strictintegrate iswordof $m_options and $difftest=yes
89
  error=Ce changement de variable n'est pas autorisé pour l'exercice.\
89
  error=Este cambio de variable no está autorizado para el ejercicio.\
90
	Changez la méthode s'il vous plait.
90
        Por favor, cambie el método.
91
  !exit
91
  !exit
92
 !endif
92
!endif
93
 
93
 
94
 !if $difftest=yes
94
!if $difftest=yes
95
  newobject1=$ktest
95
  newobject1=$ktest
96
 !else
96
!else
97
  newobject1=integrate($newker,$newvar)
97
  newobject1=integrate($newker,$newvar)
98
 !endif
98
!endif
99
 newobject0=$inv
99
newobject0=$inv
100
 oldobject=0,1
100
oldobject=0,1
101
 methexp=\($ivar=$methparm2)
101
methexp=\($ivar=$methparm2)
102
 variables=$variables,$newvar 
102
variables=$variables,$newvar
103
!exit
103
!exit
104
 
-