Matlab - Suma factorial y división

 
Vista:
sin imagen de perfil
Val: 14
Ha aumentado su posición en 6 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Suma factorial y división

Publicado por Óscar (9 intervenciones) el 27/03/2019 11:49:34
Fact

Buen día, espero puedan ayudarme.
me pidieron realizar lo que está en la imagen, desarrolle como sacar el factorial, pero no como hacer que se sumen para luego dividirse. Todo es utilizando sólo el ciclo for y sin usar la función "factorial"
Mí programa está así:
1
2
3
4
5
6
7
8
9
z = input ('Introduzca su numero ');
f = z;
for i=1: z-1
    f = f*(z-i);
end
if z==0
    f=1;
end
disp ('El factorial es '); disp (f)

Gracias. :).
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 918
Bronce
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Suma factorial y división

Publicado por Daniel (354 intervenciones) el 27/03/2019 12:15:09
Hola,

El factorial en Matlab se puede implementar con la función prod, simplemente prod(1:n) es factorial de n para n >= 0. Con esto el problema es sencillo.

1
2
3
4
5
6
7
8
9
k = input ('Introduzca su numero ');
 
sol = 0;
 
for n = 0:k
    sol = sol + 2 * prod(1:n) / prod(1:(2*n));
end
 
fprintf('El resultado es: %d', sol);

Saludos,
Daniel Rodríguez.
Analytics Lane
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 918
Bronce
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Suma factorial y división

Publicado por Daniel (354 intervenciones) el 27/03/2019 12:38:18
Hola,

Como la función prod es el equivalente a

1
2
3
4
5
result = 1;
 
for i = 1:n
    result = result * i;
end

Una solución que tiene más pinta de principiante en Matlab es:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
k = input ('Introduzca su numero ');
 
sol = 0;
 
for n = 0:k
    prod1 = 1;
    prod2 = 1;
 
    if n > 0
        for i = 1:n
            prod1 = prod1 * i;
        end
 
        for i = 1:(2*n)
            prod2 = prod2 * i;
        end
    end
 
    sol = sol + 2 * prod1 / prod2;
end
 
fprintf('El resultado es: %d', sol);

Un poco menos elegante, pero que ofrece el mismo resultado.

Saludos,
Daniel Rodríguez.
Analytics Lane
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 14
Ha aumentado su posición en 6 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Suma factorial y división

Publicado por Óscar (9 intervenciones) el 27/03/2019 12:54:54
Muchas gracias :).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar