!set title=Número de soluciones

!goto $wims_read_parm

:present
Tenemos un sistema lineal de ecuaciones con coeficientes reales
<p><center><table border=0>
 <tr><td rowspan=4>$m_leftbrace4
 <td align=center>a<sub>11</sub>x<sub>1</sub> +
  a<sub>12</sub>x<sub>2</sub> + ... + a<sub>1n</sub>x<sub>n</sub> =
  b<sub>1</sub>
 <tr><td align=center>a<sub>21</sub>x<sub>1</sub> +
  a<sub>22</sub>x<sub>2</sub> + ... + a<sub>2n</sub>x<sub>n</sub> =
  b<sub>2</sub>
 <tr><td align=center>...
 <tr><td align=center>a<sub>m1</sub>x<sub>1</sub> +
  a<sub>m2</sub>x<sub>2</sub> + ... + a<sub>mn</sub>x<sub>n</sub> =
  b<sub>m</sub>
 </table></center> <p>
 <table border=0>
 <tr><td rowspan=4>Sean A = $m_leftpar4
 <td>a<sub>11</sub><td>a<sub>12</sub><td>...
 <td>a<sub>1n</sub>
 <td rowspan=4>$m_rightpar4&nbsp;,&nbsp;&nbsp; B = $m_leftpar4
 <td>a<sub>11</sub><td>a<sub>12</sub><td>...
 <td>a<sub>1n</sub><td>b<sub>1</sub>
 <td rowspan=4>$m_rightpar4&nbsp; las matrices de sus coeficientes.
 <tr><td>a<sub>21</sub><td>a<sub>22</sub><td>...<td>a<sub>2n</sub>
 <td>a<sub>21</sub><td>a<sub>22</sub><td>...
 <td>a<sub>2n</sub><td>b<sub>2</sub>
 <tr><td colspan=4 align=center>...<td colspan=5 align=center>...
 <tr><td>a<sub>m1</sub><td>a<sub>m2</sub><td>...<td>a<sub>mn</sub>
 <td>a<sub>m1</sub><td>a<sub>m2</sub><td>...
 <td>a<sub>mn</sub><td>b<sub>m</sub>
 </table></center>
<p>El objetivo es determinar cuántas soluciones tiene dicho sistema.
!exit

:form
 El sistema tiene
 !formselect ans1 list ??,1,2,3 prompt ????,\
	una única solución, no tiene solución, infinitas soluciones
 !exit

:ans
 Crees que este sistema tiene 
 !item $ans1 of una única solución, no tiene solución, infinitas soluciones
.
 !ifval $ans1=$good1
  <font color=green>Correcto</font>.
 !else
  <font color=red>La respuesta es errónea</font>: de hecho, el sistema tiene
 !item $good1 of una única solución, no tiene solución, infinitas soluciones
.
 !endif
 !exit

:init
objname=this linear system
hint=El número de soluciones de un sistema no está relacionado directamente con\
 el número de ecuaciones. Está determinado con los rangos de las matrices de \
 los coeficientes.

parm1=number of variables\
 Número de incógnitas del sistema\
 El sistema tiene n = ?? incógnitas
val1=!randint 5,15
weight1=2
parm2=number of equations\
 Número de ecuaciones del sistema\
 el sistema tiene m = ?? ecuaciones
val2=!randint $val1,$val1+2
weight2=1
parm3=homogeneousness\
 Es un sistema homegéneo\
 El sistema es ??
weight3=1
parm4=Det(A)\
 Det(A) = \
 Det(A) = ??\
 ¡El determinante de una matriz no cuadrada no tiene sentido!
weight4=1
parm5=Trace(A)\
 Traza(A) = \
 Trace(A) = ??\
 ¡La traza de una matriz no cuadrada no tiene sentido!
val5=!randint -20,20
weight5=0
parm6=Rank(A)\
 Rang(A) = \
 Rank(A) = ??
val6=!randint $val1-2,$val1
weight6=2
parm7=Det(B)\
 Det(B) = \
 Det(B) = ??\
 ¡El determinante de una matriz no cuadrada no tiene sentido!
weight7=1
parm8=Trace(B)\
 Traza(B) = \
 Trace(B) = ??\
 ¡La traza de una matriz no cuadrada no tiene sentido!
val8=!randint -20,20
weight8=0
parm9=Rank(B)\
 Rang(B) = \
 Rank(B) = ??
weight9=2

parmcnt=9
anscnt=1
minask=3

!if random(100)<35
 val3=homogeneous
 val9=$val6
!else
 val3=non-homogeneous
 val9=!randint $val6,min($val6+1,$val2)
!endif
!if $val6<$val1
 val4=0
!else
 val4=$[(randint(19)+1)*(randint(2)*2-1)]
!endif
!if $val9<$val1+1
 val7=0
!else
 val7=$[(randint(19)+1)*(randint(2)*2-1)]
!endif

!if $val6<$val9
 good1=2
 solution=El sistema no tiene solución ya que Rang(B)&gt;Rang(A).
!else
 !if $val6<$val1
  good1=3
  solution=El sistema tiene infinitas soluciones ya que\
  Rang(B) = Rang(A) &lt; el número de incógnitas.
 !else
  good1=1
  solution=El sistema tiene solución única\
  Rang(B) = Rang(A) = número de incógnitas.
 !endif
!endif
!ifval $val1!=$val2
 weight4=-1
 weight5=-1
!endif
!ifval $val1+1!=$val2
 weight7=-1
 weight8=-1
!endif
!if $val9>$val1
 minask=2
 weight6=1
!endif
!if $val9>$val6
 minask=2
 weight1=1
!endif

!exit

:info
 !if $ask iswordof 4 5 7 8 and (1 notitemof $gotlist or 2 notitemof $gotlist)
  weight$ask=-1
  comment=Has preguntado por el determinante/traza de una matriz sin saber si\
  la matriz es cuadrada.
 !endif
!exit

:final
 !bound ans1 within 1,2,3 default ??
 !ifval $ans1=$good1
  thisscore=1
 !endif
 !if 4 isitemof $gotlist and $val4!=0
  weight6=1
 !endif
 !if 4 isitemof $gotlist and $val4=0 and $val9>=$val1
  weight6=1
 !endif
 !if 7 isitemof $gotlist and $val7!=0
  weight9=1
 !endif
 !if 7 isitemof $gotlist and $val7=0 and $val6>=$val2-1
  weight9=1
 !endif
 !if 3 isitemof $gotlist and $val3=homogeneous
  !if 6 isitemof $gotlist
   weight9=1
  !else
   weight6=1
  !endif
 !endif
 !if 2 isitemof $gotlist and $val6=$val2
  weight9=1
 !endif
 !if $minask=2 and 1 notitemof $gotlist and 6 notitemof $gotlist
  !distribute word 2 2 into weight1,weight6
 !endif
!exit

