1 votos

Error, (en la suma) variable de suma previamente asignada

Supongamos que tengo una función como esta

func1 := proc (a)
    return sum(i, i=1..a);
end proc;

Esta función funciona siempre que no defina una variable global $i$ . Si lo hago, cada llamada posterior a func1 devuelve este error:

Error, (in sum) summation variable previously assigned, second argument evaluates to ...

Tengo entendido que a Arce no le gusta el $i$ en la suma, ya que piensa que debe utilizar el $i$ . ¿Puedo decirle de alguna manera a Maple que el $i$ en la suma es una variable temporal y no debe confundirse con la global $i$ ?

P.D. En el paquete real, tengo docenas de métodos que utilizan la suma y la multiplicación con índices como $i$ , $j$ etc. Renombrarlas todas a algo raro no es una solución, ya que nunca se sabe qué variables ha definido el usuario en sus archivos.
P.P.D. Si haces lo mismo en Mathematica:

i = 4;
Sum[i, {i,1,k}];

esto funciona sin problemas, ya que Mathematica reconoce el $i$ en los corchetes como parámetro temporal. No puedo imaginar que Maple no pueda hacer lo mismo.

Gracias.

1voto

dassouki Puntos 2305

Simplemente hay que hacer que el índice de suma sea una variable local:

func1:= proc(a)
     local i;
     sum(i, i= 1..a)
end proc;

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X