wxMaxima, ¿alguien puede ayudarme??

Hola buenas, necesito ayuda con este programa...tengo que hacer una serie de ejercicios para la universidad pero no consigo hacerlos...

Es de una asignatura de libre configuración de estas que se hacen online...se llama "Herramientas de software libre para cálculo matemático" y dentro de ella hay que aprender a usar 4 programas de libre distribución como es el wxMaxima...los otros son: Octave, R y Calc de OpenOffice el cual es el único que no tengo problema y me desenvuelvo bastante bien...

La verdad que estoy bastante arrepentido con la asignatura por que me la cogí pensando que no me exigiría demasiado al ser de libre y online...ademas en la descripción no exigían conocimientos previos y la descripción daba a entender que no era demasiado complicado...pero me esta dando bastante mas la lata que asignaturas principales de mi carrera de las importantes...

No me considero para nada torpe con la informática, para nada vaya (tampoco soy un hacker..), y con las mates tampoco he tenido problemas nunca...siempre fue esa asignatura que sin esforzarme una barbaridad la aprobé bastante bien...

Pero ahora me encuentro con esto...solo me faltan 4 créditos para terminar ya con la maldita carrera, que encima es del plan antiguo de las que se están extinguiendo y es mi ultimo año para terminar....

Me ponen los ejercicios, los enlaces a la descarga y el manual de uso del programa... DE NADA MENOS QUE 1055 paginas... te cagas...obviamente no tengo tiempo ni mucho menos paciencia de leerme todo ese tocho en PDF..y por eso vine aquí para ver si alguien me echaba un cable...por que en realidad para el que sabe usar el programa son ejercicio muy chorras, al menos los obligatorios, lo de subir nota igual si exigen mas...

Lo que no se es como meter bien los datos para que el programa los procese y de la solución...y me tiene ya bastante mosca...por que por ejemplo con otro programa como el Mhatematica no me dio tanto incordio...y saque sin mucho esfuerzo un 8 en otra asignatura...

Por ejemplo el primer ejercicio es este:

Abra una sesión en wxMaxima y ejecute las siguientes operaciones aritméticas con los dígitos de su DNI o pasaporte:
a)La suma de todos los dígitos menores o iguales a 5.
b)El producto de todos los dígitos no nulos.
c)El logaritmo de la suma obtenida en (a) en base al producto obtenido en (b). Para ello, tendrá que definir una función para obtener el logaritmo en base b.
d)Salve la sesión y salga de wxMaxima.



Como digo son muy chorras.....pero como encuentro como hacer el a) por ejemplo en un manual de 1055 páginas?? He intentado deducir como hacerlo pero nada... supongo que habrá algún comando que de una lista de números te saques los números menores a X peor no se como...también intente darle un nombre a cada numero del DNI usando variables...y luego usar el comando <=5 a ver si así me daba dichos números pero tampoco...

Vamos que no doy con la tecla y queria ver si alguien me echaban un cable con esto...algunos pensaran a lo mejor que es un poco cara dura...yo diría que es mas bien desesperación...ya que después de currarme toda la carrera me encuentro con esta piedra antes de terminar...me la cogí por curiosidad...ya que podía conseguir esos 4 creditos con cursos chorras y un montón de formas mas...lo que os quiero decir que si fuera una asignatura troncal de mi carrera, de las importantes...pues me la tomo enserio 100% y la saco como sea...pero ha estas alturas ya ganas cero (ojo que llevo ya varias tardes aqui y sigo atascado en lo mismo) y encima una asignatura que no es ni de mi facultad...


Bueno nada mas...espero que alguien me pueda echar un cable...y lo siento de verdad por el tocho...que me enrollo demasiado pero que se le va ha hacer...intentare resaltar lo importante jeje. [+risas] [+risas]
Un consejo de perro viejo.

El manual completo de cualquier aplicación es siempre enorme, por ese motivo existe con un 99% de probabilidad un manual de entrada mucho más asequible.

En este caso, en la misma web de wxMaxima -> http://maxima.sourceforge.net/docs/tutorial/es/max.pdf
A ver si este enlace te sirve, creo que podrás hacer los 2 primeros ejercicios combinando los distintos ejemplos
https://mvngu.wordpress.com/2009/08/17/ ... ng-maxima/
Muchisimas gracias de verdad a los dos!! Voy a echarles un ojo, ahora os cuento!

graciass


edit: Gracias pero la verdad que el enlace en ingles no me ha valido, no encuentro nada ahi de utilidad aparte de que no se demasiado ingles, pero con el traductor algo he pillado.

Y el otro tampoco encuentro nada...

La pena que ahora no puedo reflotar el hilo xD
Te resumo un poco lo que dice el enlace

Puedes asignar una lista a una variable así:
L : [5,8,6,4,0,2]


Ahora si escribo L[1] me devolverá el primer valor de la lista (5) y si escribo L(3) el tercero (6).

Puedes definir una función así:
mayorque7(x) := if x > 7 then x else 0;

Lo que hace esta función es analizar el número que le pasas (en lugar de x). Si es menor que 7 te devolverá un 0 si no, te devolverá el mismo número. Por ejemplo:

mayorque7(8)
8
mayorque7(5)
0


Puedes aplicar la función a todos los valores de la lista así:
L2 : maplist(menorque5, L)


Ahora en L2 tendrás esta lista
[0,8,6,0,0,0]

Como ves, todos los que son menores que 7 ahora son 0 y el resto se mantienen como están.

Para sumar todos los valores de la lista
sum(L2[i], i, 1, length(L2))


Con eso lo que le decimos es que sume cada elemento de la lista (L2[i]) siendo i un valor entre 1 y length(L2), o sea, la longitud de la lista.

Combinando esto deberías hacer los 3 ejercicios sin problemas.
Muchas graciasss!! De verdad, por tomarte las molestias no solo de buscarlo sino de explicármelo y ponerlo tan claro con
code estos o como se llamen jeje.


Ya he probado y funciona! Jamas pensé que seria tan rebuscada la solución...pero bueno asi lo voy a realizar.

Lo único que no me termina de convencer es la ultima parte la de:

sum(L2[i], i, 1, length(L2))



Se supone que donde esta la "i" debo poner la longitud de la lista, como me explicas, que en este caso es 7 que son los números que tiene un DNI, lo hago así pero la suma que hace no es correcta...te dejo una imagen:

Imagen

Da como resultado 14 y debería ser 12 ---> 2+2+5+0+0+1+2

A no ser que este sumando los 0 como si fueran 1 no lo entiendo, o que yo este haciendo algo mal, que será lo mas probable.

Que crees que puede ser??

Muchas graciass [oki]
Has puesto

sum(DNI2[7], i, 1, length(DNI2))


Y debería ser

sum(DNI2[i], i, 1, length(DNI2))


Se te habrá escurrido el 7 ;). Eso lo que hace es sumar 7 veces el dígito DNI2[7], que es 2. Por eso te da 14 :). Cámbialo por i y te irá bien.

Salu2!!!
El problema esque te has asustado al ver el manual, yo por lo poco que veo en los posts. No deja de ser parecido a un lenguaje de programación.

Yo no usaría el manual, sino que tiraría de google prefereblemente en íngles. Por ejemplo: "how do lists in wxMaxima"
analca3 escribió:Has puesto

sum(DNI2[7], i, 1, length(DNI2))


Y debería ser

sum(DNI2[i], i, 1, length(DNI2))


Se te habrá escurrido el 7 ;). Eso lo que hace es sumar 7 veces el dígito DNI2[7], que es 2. Por eso te da 14 :). Cámbialo por i y te irá bien.

Salu2!!!


jeje muchas gracias! Era justo eso! Pero entendi mal cuando el otro compañero me dio las primeras indicaciones...pensé que entre los corchetes tenia que ir la longitud de la lista, osea 7 números que tenia.


amchacon escribió:El problema esque te has asustado al ver el manual, yo por lo poco que veo en los posts. No deja de ser parecido a un lenguaje de programación.

Yo no usaría el manual, sino que tiraría de google prefereblemente en íngles. Por ejemplo: "how do lists in wxMaxima"



Gracias por responder, la verdad que no es susto...pero ver ese manual te bloquea...mas cuando no estas acostumbrado a la programación...El manual esta escrito de tal forma que vaya...si no estas acostumbrado a verlos...en cuanto llevas 5 paginas estas perdido....y lo que digo...que para hacer unos ejercicios muy muy concretos casi te obligan a leertelo todo...

Buscar he buscado en google la vida...pero prácticamente esta todo en ingles...y no entiendo ni papa la verdad...


Bueno, el primer ejercicio ya lo he hecho (gracias a vuestra ayuda), aunque ahora tengo un problema...en el apartado que pone:

c)El logaritmo de la suma obtenida en (a) en base al producto obtenido en (b). Para ello, tendrá que definir una función para obtener el logaritmo en base b.

Yo lo que he hecho es : log(a)/log(b),numer; Vaya con números me ha quedado así: log(16)/log(5760),numer; igual a= 0.3202086967525474

Pero dice el maldito ejercicio que lo tengo que hacer con una función...yo pase por que no me salia...pero en el ejercicio siguiente la vuelve a pedir...y claro de la forma que yo lo he hecho no me vale...este es el enunciado...

"Cargue el fichero del primer ejercicio y use el comando integrate sobre la función que había definido (logaritmo en base b). Haga pruebas con los distintos tipos
de presentación 2D en pantalla."


Ni me funciona el comando integrate ni nada...me tiene frito ya el programita...un paso para adelante y 2 para atrás...

A ver si me podéis echar un cable con esto porfa que ando muy desesperadillo...


PD: Si hay alguien que sepa usar bastante bien este programa y el Octave y Lenguaje R que me mande un privado si puede que le plante una cosilla.
Para definir una función en wxMaxima se usa :=

logbase(a,b):=log(a)/log(b);


Eso te calcula el logartimo de a en base b :).

Para cualquier duda, pregunta :).

Salu2!!!
9 respuestas