5 votos

¿Por qué usted no puede omitir la ' * ' firmar para la multiplicación en salvia, Matlab y otros software matemático?

Pregunta

Tengo algo de experiencia con Salvia y Matlab. Ambos matemáticos de los paquetes de software requieren que usted tenga el carácter '*' signo cuando la multiplicación de variables simbólicas con números enteros. Por ejemplo, en Matlab, se debe definir una función como f = 3*x en lugar de f = 3x. El último lanza un Error: Unexpected MATLAB expression entre el 3 y x.

Los intentos de

He hecho una búsqueda en google de por qué el " * " es necesario con un poco de suerte. He encontrado una Introducción a la Salvia de la documentación que se indica lo siguiente:

[e]xponents son '^', y la multiplicación debe ser '*'. (Hay buena las razones para esto.)

¿Qué es exactamente esta "buena razón"?

He encontrado un intercambio de la pila respuesta que alude a potencialmente ¿por qué este es el caso de:

(Y tal vez también vale la pena mencionar que, por supuesto, un CAS como Mathematica tiene que ser informado sobre cómo interpretar algo como ab y por lo tanto tendremos que escribir "

15voto

Samuel Lelièvre Puntos 324

En Sage / SageMath, implícito la multiplicación puede ser activado para su comodidad!

sage: implicit_multiplication(True)
sage: 3 x
3*x

Lectura adicional le dirá acerca de los diferentes niveles que se pueden configurar.

4voto

Incnis Mrsi Puntos 487

Estoy seguro que hay muchas razones para esto. Obvia es evitar la ambigüedad en la multiplicación. Por ejemplo, expresiones como

f = 3 x

se permitía, entonces cómo sería

f = x 23

¿ser interpretado? ¿Sería $f=(23)\cdot x$ o $f=2\cdot3\cdot x$?

3voto

user222912 Puntos 11

La respuesta corta es que los programas no fueron diseñados de esa manera y porque los diseñadores no quiero poner el tiempo de desarrollo o tomar el impacto en el rendimiento con el fin de anticipar cada posible forma de que un usuario podría querer multiplicar. Pero esto necesita un poco más de explicación.

Tendría sentido para el ejemplo que usted dio para f=3x automáticamente cambia a f=3*x, pero si ha sustituido el 3 con otra variable y, un programa de MATLAB asume que quería multiplicar una nueva variable xy que se le olvidó a inicializar. hay otras situaciones donde la intención del usuario sería ambigua sin un * (como se muestra en algunos de los comentarios en esta respuesta). Sería posible que MATLAB para buscar en cada ecuación y tratan de determinar cuando el usuario necesita un *, pero esto requeriría que el cálculo y el tiempo de desarrollo. Sería también hacer que el código sea menos consistente y fácil de leer.

Existen herramientas de software que más intuitivo que MATLAB y Mathematica que reconocer 3x 3*x (tales como Wolfram Alpha), pero esto es debido a que el público objetivo es más amplio y la intuición está valorado en más de velocidad y, en cierta medida, de la capacidad.

1voto

Anthony Cramp Puntos 126

En un cierto punto arce cambió para permitir la multiplicación como esta % $ $$ \mathtt{product = variable1\ variable2.} $un espacio allí (puedes ver el espacio?). Pero desde ese momento las tablas de la pregunta de arce se han llenado con principiantes que se equivocan y no se pueden averiguar lo que está. Personalmente, siempre escribe la `` en madera de arce. Y de hecho que se requiere en la mayoría de los lenguajes de programación. Para obtener más información sobre por qué, pregunta en un foro de equipo!

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