SPN XCAS: MANUAL CALCULO SIMBÓLICO COMPUTACIONAL Y MATEMÁTICA CON XCAS - Printable Version +- HP Forums (https://www.hpmuseum.org/forum) +-- Forum: Not HP Calculators (/forum-7.html) +--- Forum: Not remotely HP Calculators (/forum-9.html) +--- Thread: SPN XCAS: MANUAL CALCULO SIMBÓLICO COMPUTACIONAL Y MATEMÁTICA CON XCAS (/thread-12019.html) |
SPN XCAS: MANUAL CALCULO SIMBÓLICO COMPUTACIONAL Y MATEMÁTICA CON XCAS - compsystems - 12-24-2018 03:14 PM ○ Hello, I am translating and expanding the XCAS manual to Spanish, any contribution is welcome. (better examples, better writing, error detection, etc. ) ○ Hola, estoy traduciendo y ampliando el manual de XCAS a español, cualquier aporte es bienvenido. (mejores ejemplos, mejor redacción, detección de errores, etc.) MANUAL CALCULO SIMBÓLICO COMPUTACIONAL Y MATEMÁTICA CON XCAS Por CompSystems, versión 0.0.1 25/12/2018 Fuente original en francés e inglés por Renée De Graeve & Bernard Parisse & Jean-Michel Lecointre. PRELIMINAR Nota: El símbolo [↵] en este documento significa pulsar la tecla [ENTER] para ejecutar la instrucción, o sentencia. El operador de asignación usa el dígrafo (:=) Los símbolos [] es el principal constructo o contenedor de objetos en XCas, además se usa como indicador de extracción de elementos. TIPOS DE DATOS U OBJETOS EN Xcas Observemos que los datos 1,2,3 y 4,5,6 entre diferentes contendores y contextos retornan diferentes resultados. ◉ ( 1, 2, 3 ) * ( 4, 5, 6 ) [↵] retorna 720, realiza multiplicación implícita 1*2*3*4*5*6 ◉ [ 1, 2, 3 ] * [ 4, 5, 6 ] [↵] retorna 32, se interpreta como producto punto entre vectores ◉ list[ 1, 2, 3 ] * list[ 4, 5, 6 ] [↵] retorna list[ 4, 10, 18 ], se interpreta como producto entre elementos ◉ set[ 1, 2, 3 ] * set[ 4, 5, 6 ] [↵] retorna set[ tuple[1,4], tuple[1,5], tuple[1,6], tuple[2,4], tuple[2,5], tuple[2,6], tuple[3,4], tuple[3,5], tuple[3,6] ], se interpreta como producto cartesiano entre conjuntos ◉ poly1[ 1, 2, 3 ] * poly1[ 4, 5, 6 ] [↵] retorna poly1[ 4, 13, 28, 27, 18 ], se interpreta como producto entre polinomios ◉ [[ 1, 2, 3 ]] * [[ 4, 5, 6 ]] [↵] retorna "Error: Invalid dimension", la multiplicación de dos matrices A₍n₁, m₁₎ y B₍n₂, m₂₎ debe cumplir que m₁= n₂. [[1,2,3]] tiene como tamaño ₍n₁=1, m₁=3₎ y [[4,5,6]] tiene como tamaño ₍n₂=1, m₂=3₎ por lo tanto m₁ ≠ n₂ ya que 3≠1 ◉ [[ 1, 2, 3 ]] * tran([ 4, 5, 6 ]) [↵] retorna matrix[[ 32 ]], ya que tran([ 4, 5, 6 ]) = [[4],[5],[6]] que tiene como tamaño ₍n₂=3,m₂=1₎ por lo tanto m₁ = n₂ ya que 3=3 y el resultado tiene que tener dimensión (n₁, m₂) = (1,1) Ⅰ) SECUENCIA DE EXPRESIONES U OBJETOS: este objeto en Xcas no requiere un símbolo contenedor que agrupe los elementos o miembros, estos se separan solo por medio de comas (,) a, b, c es una secuencia de tres objetos, por consiguiente, su tamaño o dimensión es 3. ◉ seq1 := a, b, c [↵] ◉ subtype( seq1 ) [↵] retorna 1, sinónimo de tipo de objeto secuencia ◉ size( seq ) [↵] retorna 3, número de miembros o elementos de la secuencia seq1 ◉ dim( seq ) [↵] retorna 3 Para hacer referencia a un miembro individual de una secuencia se requiere primero asignar la secuencia a un nombre identificador de referencia, luego se usan corchetes simples [] si se desea indexarlo o que la ordenación de los miembros se tome desde 0 Por ejemplo, se desea extraer cada elemento de la secuencia definida anteriormente ◉ seq1[ 0 ] [↵] retorna a ◉ seq1[ 1 ] [↵] retorna b ◉ seq1[ 2 ] [↵] retorna c ◉ seq1[ 3 ] [↵] retorna ""Index outside range: … Error: Invalid dimension" Se usan corchetes dobles [[]] si se desea indexarlo o que la ordenación de los miembros se tome desde 1 ◉ seq1[[ 0 ]] [↵] retorna "Error: Invalid dimension" ◉ seq1[[ 1 ]] [↵] retorna a ◉ seq1[[ 2 ]] [↵] retorna b ◉ seq1[[ 3 ]] [↵] retorna c Aunque también se puede usar paréntesis curvos () para la extracción, no se recomienda el uso de paréntesis, pues generan “confusión” al compilador con la definición de funciones ◉ seq1( 1 ) [↵] retorna a Algunas ordenes devuelven una secuencia de expresiones, por ej. ◉ qr( [[1,2],[3,4]] ) [↵] retorna dos matrices cada elemento como un numero racional. matrix[[1/√10,3/5/(√10/5)],[3/√10,-1/5/(√10/5)]], matrix[[√10,7/5*√10],[0,√10/5]] ◉ evalf( qr([[1,2],[3,4]]) ) [↵] retorna dos matrices [[-0.316227766017,-0.948683298051], [-0.948683298051,0.316227766017]], [[-3.16227766017,-4.42718872424], [0.0,-0.632455532034]] Ⅱ) LISTA: es un objeto u arreglo que conserva orden y multiplicidad de los elementos o miembros, los símbolos o corchetes [ ] se usan como contenedores de elementos y para definir una lista, e incluso para vectores o matrices. [ a, b, c ] es una lista diferente de [ b, a, c ] ◉ list1 := [ a, b, c ] ◉ list2 := [ b, a, c ] ◉ list1 == list2 [↵] retorna false Ⅲ) VECTOR: como un vector es un arreglo unidimensional, entonces una lista unidimensional se considera un vector. ◉ vect1 := [ a, b, c ] [↵] ◉ type( vect1 ) [↵] retorna 'vector' sinónimo de tipo de objeto DOM_LIST o lista ◉ size( vect1 ) [↵] retorna 3, número de miembros o elementos del vector vect1 ◉ dim( vect1 ) [↵] retorna 3 Para hacer referencia a un miembro individual de una lista se usa también corchetes simples o dobles y entre ellos el valor numérico de la posición Usando corchetes simples ◉ vect1[ 0 ] [↵] retorna a ◉ vect1[ 2 ] [↵] retorna c Usando corchetes dobles ◉ vect1[[ 1 ]] [↵] retorna a ◉ vect1[[ 3 ]] [↵] retorna c A diferencia de las secuencias se puede usar los corchetes directamente sobre el vector para extraer sus elementos, por obvias razones no se realiza algún tipo de multiplicación implícita entre arreglos [ a, b, c ] [ 0 ], sino que es interpretado como extracción de elementos. ◉ [ a, b, c ] [ 0 ] [↵] retorna a ◉ [ a, b, c ] [ 2 ] [↵] retorna c ◉ [ a, b, c ] [[ 1 ]] [↵] retorna b ◉ [ a, b, c ] [[ 3 ]] [↵] retorna c Ⅳ) MATRIZ: una MATRIZ es un arreglo de vectores, donde cada vector debe tener el mismo número de elementos, es decir forman un arreglo bidimensional (rectangular o cuadrado de elementos), donde el número de elementos de cada vector definen el número de columnas que se denotan con la letra m, y el número de vectores definen el número de filas que se denotan con la letra n, por lo tanto el número de elementos del arreglos se obtiene al multiplicar (n*m) o (n*n) si es un arreglo cuadrado ya que m=n ◉ mat1 := [[ a, b ],[ c, d ]] [↵] por lo tanto ◉ type( mat1 ) [↵] retorna 'vector' ◉ size( mat1 ) [↵] retorna 2, número de filas (n) de la matriz mat1 ◉ dim( mat1 ) [↵] retorna [2, 2], número de filas y columnas [n, m] es decir n=2, m=2 Para extraer los elementos de un arreglo se requiere dos posiciones n, m Usando corchetes dobles ◉ mat1 [[ 1, 1 ]] [↵] retorna a ◉ mat1 [[ 1, 2 ]] [↵] retorna b ◉ mat1 [[ 2, 1 ]] [↵] retorna c ◉ mat1 [[ 2, 2 ]] [↵] retorna d Usando corchetes simples ◉ mat1 [ 0, 0 ] [↵] retorna a ◉ mat1 [ 0, 1 ] [↵] retorna b ◉ mat1 [ 1, 0 ] [↵] retorna c ◉ mat1 [ 1, 1 ] [↵] retorna d En un arreglo no matricial no todos los vectores contienen el mismo número de elementos, por lo tanto, no es un arreglo rectangular. ◉ array1 := [[ a, b, c ],[ d ]] [↵] ◉ array1 [[ 1, 1 ]] [↵] retorna a ◉ array1 [[ 1, 2 ]] [↵] retorna b ◉ array1 [[ 1, 3 ]] [↵] retorna c ◉ array1 [[ 2, 1 ]] [↵] retorna d ◉ array1 [[ 2, 2 ]] [↵] retorna "array1(2,2) Error: Invalid dimension" ◉ size( array1 ) [↵] retorna 2, número de filas (n) del arreglo array1 ◉ dim( array1 ) [↵] retorna 2, se interpreta como el número de filas ya que el tamaño de las columnas varía en cada fila Obteniendo el tamaño de cada fila ◉ size( array1[[1]] ) [↵] retorna 3 ◉ size( array1[[2]] ) [↵] retorna 1 Ⅴ) CONJUNTO: es un objeto que no conserva orden, como si lo hacen los arreglos de listas, vectores, matrices y polinomios. Cuando se almacena un conjunto en una variable se elimina multiplicidad de los elementos, los símbolos [] más el prefijo (set) se usan como contenedores de elementos para definir un conjunto. set[ a, b, c ] es una conjunto igual a set[ b, a, c ] ◉ set1 := set[ a, a, b, c ] se elimina la multiplicidad, por lo tanto set1 es igual a set[ a, b, c ] ◉ set2 := set[ b, a, c ] ◉ set1 == set2 [↵] retorna true ◉ subtype( set1 ) [↵] retorna Usando corchetes simples ◉ set1[ 0 ] [↵] retorna a ◉ set1[ 2 ] [↵] retorna c Usando corchetes dobles ◉ set1[[ 1 ]] [↵] retorna a ◉ set1[[ 3 ]] [↵] retorna c ◉ size( set1 ) [↵] retorna 3, número de miembros o elementos del conjunto set1 ◉ dim( set1 ) [↵] retorna 3 Una secuencia se puede convertir en el contenido de una lista o vector, usando la orden tipo funcional makevector() ◉ seq1 := a, b, c [↵] a, b, c ◉ makevector( seq1 ) [↵] retorna [ a, b, c ] ◉ seq2 := "H", "E", "L", "L", "O" [↵] ◉ makevector( seq2 ) [↵] retorna [ "H", "E", "L", "L", "O" ] Ⅵ) LISTA {} Para visualizar una lista de objetos encerrados entre llaves {}, se usan como contenedores los símbolos [] más el prefijo (list) ◉ list[ a, b, c ] [↵] se visualiza como { a, b, c } Los elementos de las soluciones que arroja las ordenes de resolución por defecto usan list[] para contenerlos, aunque también set[] ◉ solve( x^3 - 6*x² + 11*x -6 = 0, x, '=' ) [↵] retorna set[ x = 1, x = 2, x = 3 ] mientras que ◉ solve( x^3 - 6*x² + 11*x -6 = 0, x ) [↵] retorna list[ 1, 2, 3 ] Ⅶ) POLINOMIOS Un polinomio en una variable está representado por una expresión algebraica simbólica explicita, por defecto en orden decreciente de potencias y de la siguiente forma aₙ*xⁿ+aₙ₋₁*xⁿ⁻¹+...+a₂*x²+a₁*x¹+a₀*x⁰. ◉ increasing_power( 0 ) [↵] ◉ x^3 - 6*x² + 11*x -6 [↵] retorna x^3 - 6*x^2 + 11*x -6 ◉ increasing_power() [↵] retorna 0 ◉ increasing_power( 1 ) [↵] ◉ x^3 - 6*x² + 11*x -6 [↵] retorna -6+11*x-6*x^2+x^3 ◉ increasing_power() [↵] retorna 1 Matemáticamente un polinomio también se puede representar por la lista de sus coeficientes (vector), [aₙ, aₙ₋₁, ..., a₂, a₁, a₀] y en este CAS como poly1[aₙ, aₙ₋₁, ..., a₂, a₁, a₀] en formato vector siempre se escriben los coeficientes asociados a su potencias decrecientes, e incluso si se fija o selecciona el indicador (potencia CRECIENTE en 1), increasing_power(1) ◉ autosimplify( 'simplify' ) [↵] retorna 1 ◉ ( x^2 + 2*x +3 ) * ( 4*x^2 + 5*x + 6 ) [↵] retorna 4*x^4 + 13*x^3 + 28*x^2 + 27*x + 18 Se facilita la entrada si se escribe como ◉ poly1[ 1, 2, 3 ] * poly1[ 4, 5, 6 ] [↵] retorna poly1[4, 13, 28, 27, 18] ◉ subtype( poly1[ 1, 2, 3 ] ) [↵] retorna 10 Resumen ejemplos preliminar ( 1, 2, 3 ) * ( 4, 5, 6 ); [ 1, 2, 3 ] * [ 4, 5, 6 ]; list[ 1, 2, 3 ] * list[ 4, 5, 6 ]; set[ 1, 2, 3 ] * set[ 4, 5, 6 ]; poly1[ 1, 2, 3 ] * poly1[ 4, 5, 6 ]; " [[ 1, 2, 3 ]] * [[ 4, 5, 6 ]]"; [[ 1, 2, 3 ]] * tran([ 4, 5, 6 ]); seq1 := a, b, c; subtype( seq1 ); size( seq1 ); dim( seq1 ); seq1[ 0 ]; seq1[ 1 ]; seq1[ 2 ]; "seq1[ 3 ]"; "seq1[[ 0 ]]"; seq1[[ 1 ]] ; seq1[[ 2 ]]; seq1[[ 3 ]]; seq1( 1 ); qr( [[1,2],[3,4]] ); evalf( qr([[1,2],[3,4]]) ); list1 := [ a, b, c ]; list2 := [ b, a, c ]; list1 == list2; vect1 := [ a, b, c ]; type( vect1 ); size( vect1 ); dim( vect1 ); vect1[ 0 ]; vect1[ 2 ]; vect1[[ 1 ]]; vect1[[ 2 ]]; [ a, b, c ] [ 0 ]; [ a, b, c ] [ 2 ]; [ a, b, c ] [ 1 ]; mat1 := [[ a, b ],[ c, d ]]; type( mat1 ); size( mat1 ); dim( mat1 ); mat1 [[ 1, 1 ]]; mat1 [[ 1, 2 ]]; mat1 [[ 2, 1 ]]; mat1 [[ 2, 2 ]]; mat1 [ 0, 0 ]; mat1 [ 0, 1 ]; mat1 [ 1, 0 ]; mat1 [ 1, 1 ]; array1 := [[ a, b, c ],[ d ]]; array1 [[ 1, 1 ]]; array1 [[ 1, 2 ]]; array1 [[ 1, 3 ]]; array1 [[ 2, 1 ]]; "array1 [[ 2, 2 ]]"; size( array1 ); dim( array1 ); size( array1[[1]] ); size( array1[[2]] ); set1 := set[ a, a, b, c ]; set2 := set[ b, a, c ]; set1 == set2; set1[ 0 ]; set1[ 2 ]; set1[[ 1 ]]; set1[[ 3 ]]; size( set1 ); dim( set1 ); seq1 := a, b, c; makevector( seq1 ); seq2 := "H", "E", "L", "L", "O"; makevector( seq2 ); list[ a, b, c ]; solve( x^3 - 6*x² + 11*x -6 = 0, x, '=' ); solve( x^3 - 6*x² + 11*x -6 = 0, x ); increasing_power( 0 ); x^3 - 6*x² + 11*x -6; increasing_power(); increasing_power( 1 ); x^3 - 6*x² + 11*x -6; increasing_power(); autosimplify( 'simplify' ); ( x^2 + 2*x +3 ) * ( 4*x^2 + 5*x + 6 ); poly1[ 1, 2, 3 ] * poly1[ 4, 5, 6 ]; subtype( poly1[ 1, 2, 3 ] ) [enter] 720, 32, list[4,10,18], set[tuple[1,4],tuple[1,5],tuple[1,6],tuple[2,4],tuple[2,5],tuple[2,6],tuple[3,4],tuple[3,5],tuple[3,6]], poly1[4,13,28,27,18], "[[ 1, 2, 3 ]] * [[ 4, 5, 6 ]]", matrix[[32]], (a,b,c), 1, 3, 3, a, b, c, "seq1[ 3 ]", "seq1[[ 0 ]]", a, b, c, a, matrix[[1/√10,3/5/(√10/5)],[3/√10,-1/5/(√10/5)]],[[√10,7/5*√10],[0,√10/5]], matrix[[0.316227766017,0.948683298051],[0.948683298051,-0.316227766017]],[[3.16227766017,4.42718872424],[0.0,0.632455532034]], [a,b,c], [b,a,c], false, [a,b,c], vector, 3, 3, a, c, a, b, a, c, b, [[a,b],[c,d]], vector, 2, [2,2], a, b, c, d, a, b, c, d, [[a,b,c],[d]], a, b, c, d, "array1 [[ 2, 2]]", 2, 2, 3, 1, set[a,b,c], set[b,a,c], true, a, c, a, c, 3, 3, (a,b,c), [a,b,c], "H","E","L","L","O", ["H","E","L","L","O"], list[a,b,c], set[x=1,x=2,x=3], list[1,2,3], 0, x^3-6*x^2+11*x-6, 0, 1, x^3-6*x^2+11*x-6, 0, 1, (x^2+2*x+3)*(4*x^2+5*x+6), poly1[4,13,28,27,18], 10 session Xcas ✪ Capítulo 6 Funciones del Calculo Simbólico Computacional Fuente: Frances Xcas: https://www-fourier.ujf-grenoble.fr/~parisse/giac/doc/fr/cascmd_fr/index.html#sec201 Frances HP-prime https://www.hpcalc.org/details/8773 Ingles Xcas: https://www-fourier.ujf-grenoble.fr/~parisse/giac/doc/en/cascmd_en/node4.html Ingles HP-prime: https://www.hpcalc.org/details/8774 ★ 6.1 Las constantes simbólicas: e, pi, infinity, inf, i, euler_gamma ◉ Función exponencial: base del logaritmo natural. e [↵] retorna exp(1), Nota: la letra e es un identificador reservado, por esta razón no se puede usar como variable que contenga un objeto. Sinónimo %e [↵] retorna exp(1) ◉ Número π: constante circular Π [↵] retorna π Sinónimos pi [↵] retorna π %pi [↵] retorna π Nota: pi es un identificador reservado, por esta razón no se puede usar como variable. ◉ Infinito, (no es número, ni un límite) Infinito real sin signo infinity [↵] retorna ∞ ○ Infinito real positivo +infinity [↵] retorna +∞ Sinónimo +inf [↵] retorna +∞ inf [↵] retorna +∞ ○ Infinito real negativo -infinity [↵] retorna -∞ Sinónimo -inf [↵] retorna -∞ ◉ Unidad imaginaria, √-1 i [↵] retorna i Nota: la letra i es un identificador reservado, por esta razón no se puede usar como variable. Sinónimo %i [↵] retorna i √(-1) [↵] retorna i sqrt(-1) [↵] retorna i ◉ Constante de Euler γ euler_gamma [↵] retorna euler_gamma evalf(euler_gamma) [↵] retorna 0.577215664902 limit(Σ(1/k,k,1,n)-ln(n),n, +infinity) [↵] retorna euler_gamma ✪ 6.2 Booleanos ★ 6.2.1 Constantes booleanas ◉ Booleano Verdadero true [↵] retorna true Sinónimos TRUE [↵] retorna true evalb(1) [↵] retorna true, para todo número diferente de 0 evalb(-2) [↵] retorna true ◉ Booleano Falso false [↵] retorna false Sinónimos FALSE [↵] retorna false evalb(0) [↵] retorna false, solo para el valor de 0 ◉ Tipo de datos de las constantes Nota: La orden type() no arroja el tipo de dato o palabra "constante type(e), type(%e), type(π), type(pi), type(%pi), type(infinity), type(+infinity), type(+inf), type(+inf), type(-infinity), type(-inf), type(i), type(%i), type(euler_gamma), type(limit(sum(1/k,k,1,n)-ln(n),n,+infinity)), type(evalf(euler_gamma)), type(true) [↵] retorna expression, expression, identifier, identifier, identifier, identifier, expression, expression, expression, expression, expression, complex, complex, identifier, identifier, real, integer ☆ Resumen de ejemplos capítulo 6.1 y 6.2.1 list[ e, %e, π, pi, %pi, infinity, +infinity, +inf, -infinity, -inf, i, %i, √(-1), sqrt(-1), euler_gamma, limit(Σ(1/k,k,1,n)-ln(n),n,+infinity), evalf(euler_gamma), true, TRUE, evalb(1), evalb(-2), false, FALSE, evalb(0) ] [↵] retorna [e, e, π, π, π, ∞, +∞, +∞, -∞, -∞, i, i, i, i, euler_gamma, euler_gamma, 0.577215664902, true, true, true, true, false, false, false] ☆ Prueba online/ test online session Xcas, capítulos 6.1 y 6.2.1 RE: SPN XCAS: MANUAL CALCULO SIMBÓLICO COMPUTACIONAL Y MATEMÁTICA CON XCAS - compsystems - 12-25-2018 09:24 PM ★ 6.2.2 Pruebas o condiciones: operadores infijos ==, ≠, >, ≥, <, ≤ Las pruebas o condiciones (>, ≥, <, ≤) retornan constantes booleanas (true/false) si a y b, es posible finalmente evaluarlos numéricamente, del contrario se mantiene los valores simbólicos en la salida. a ≥ b devuelve (true) si el operando a es mayor o igual que operando b y (false) en caso contrario. a > b devuelve (true) si el operando a es estrictamente mayor que el operando b y (false) en caso contrario. a ≤ b devuelve (true) si el operando a es menor o igual que el operando b y (false) en caso contrario. a < b devuelve (true) si el operando a es estrictamente menor que el operando b y (false) en caso contrario. a == b prueba la igualdad entre a y b, y devuelve (true) si a es igual a b y (false) en caso contrario. a ≠ b devuelve (true) si a es diferente de b y (false) de lo contrario. ◉ == Advertencia /!\, el motor computacional en algunas expresiones no pueden comparar la prueba a == b, la salida depende de reagrupar (a-b) no sea 0. Por lo tanto, a == b puede devolver falso incluso si a y b son matemáticamente iguales, de ahí la respuesta del operador infijo == no es concluyente. Use la ordenes de simplificación como simplify() para aumentar la probabilidad de una respuesta correcta. abs(5) == 5 [↵] retorna true, ya que 5-5==0 es verdadero pi == 3.14 [↵] retorna false, ya que pi es un numero con infinitos decimales 3.14159265359…..-3.14==0 es falso, e^(i*π) == -1 [↵] retorna true, ya que e^(i*π) es igual a -1 y -1--1==0 es verdadero asin(sin(pi/2)) == π/2 [↵] retorna true abs(3+4*i) == 5 [↵] retorna true (√(2))² == 2 [↵] retorna true (√(2.0))² == 2 [↵] retorna false, ya que 2.0 computacionalmente no siempre es igual a 2 (2^(1/2))^2 == 2 [↵] retorna true 1/2 == 2/4 [↵] retorna true Ejemplos con objetos simbólicos purge(a, b, x, y) [↵] para eliminar el contenido de las variables a, b, x, y true == TRUE [↵] retorna true +infinity == inf, +inf == inf [↵] retorna true, true e^x == exp(x) [↵] retorna true a == b [↵] retorna false a = b [↵] no retorna un valor booleano, ya que se interpreta como una igualdad o ecuación, y si el lado izquierdo es un identificador se realiza una asignación. Para mantener una expresión de la forma a=b y no ser interpretada como una asignación se usa la orden hold() o quote(), como también se puede usar comillas simples hold( a=b ); quote( a=b ); 'a=b'; ◉ ≠, ≥, ≤, sinónimos !=, >=, <= pi ≠ 3.14 [↵] retorna true 3/4 ≥ 0.75 [↵] retorna true 1/2 ≤ 0.5 [↵] retorna true ◎ Ejemplos con objetos simbólicos a ≠ b [↵] retorna true a ≥ b [↵] retorna la expresión sin probar a >= b a ≤ b [↵] retorna la expresión sin probar y se reescribe de la forma b >= a ◉ >, < 1/2 > 3/4 [↵] retorna false -0.681534914418 < 0.681534914418 [↵] retorna true π^e-e^π < abs(π^e-e^π) [↵] retorna true a < b [↵] retorna la expresión sin probar y se reescribe de la forma b > a a > b [↵] retorna la expresión sin probar a > b ◉ Verificación de una igualdad (=) con la orden evalb evalb( e^(i*pi) = -1 ) [↵] retorna true evalb( pi = 3.14 ) [↵] retorna false ☆Resumen de ejemplos capítulo 6.2.2 list[ abs(5) == 5, pi == 3.14, e^(i*π) == -1, asin(sin(pi/2)) == π/2, abs(3+4*i) == 5, (√(2))² == 2, (√(2.0))² == 2, (2^(1/2))^2 == 2, 1/2 == 2/4, purge(a, b, x, y), true==TRUE, +infinity == inf, +inf == inf, e^x == exp(x), a == b, hold( a=b ), quote( a=b ), 'a=b', pi ≠ 3.14, 3/4 ≥ 0.75, 1/2 ≤ 0.5, a ≠ b, a ≥ b, a ≤ b, 1/2 > 3/4, -0.681534914418 < 0.681534914418, π^e-e^π < abs(π^e-e^π), a < b, a > b, evalb( e^(i*pi) = -1 ), evalb( pi = 3.14 )] [↵] retorna list[true, false, true, true, true, true, false, true, true, "No such variable a", "No such variable b", "No such variable x", "No such variable y", true, true, true, true, false, a=b, a=b, a=b, true, true, true, true, a>=b, b>=a, false, true, true, b>a, a>b, true, false] ☆ Prueba online/ test online session Xcas, capítulos 6.2.2 RE: SPN XCAS: MANUAL CALCULO SIMBÓLICO COMPUTACIONAL Y MATEMÁTICA CON XCAS - compsystems - 12-26-2018 04:16 PM ★ 6.2.4 Transformando un conjunto de soluciones en una expresión booleana: list2exp( set[], vars ) La orden list2exp() devuelve ☆ Caso 1: Si el primer argumento u operando es un conjunto de soluciones de la forma set[ (var = expresión0), (var = expresión1), … (var = expresiónN) ] retorna una expresión booleana de la forma (var = expresión0) or (var = expresión1) or … (var = expresiónN) ◎ solve( x^3 - 6*x² + 11*x -6 =0, x, '=' ) [↵] retorna set[x = 1, x = 2, x = 3] ◉ list2exp( set[x = 1, x = 2, x = 3], x ) [↵] retorna x=1 or x=2 or x=3 ☆ Caso 1.1: Si el primer argumento u operando es un conjunto de soluciones de la forma list[ expresión0, expresión1, … expresiónN ] retorna una expresión booleana de la forma (var = expresión0) or (var = expresión1) or … (var= expresiónN) ◎ solve( x^3 - 6*x² + 11*x -6 =0, x ) [↵] retorna list[1, 2, 3] ◉ list2exp( list[1, 2, 3], x ) [↵] retorna x=1 or x=2 or x=3 ☆ Caso 2: Si el primer argumento u operando es un conjunto de soluciones de la forma set[ [ var1 = expresión0, var2= expresión1 ], [ var1 = expresión3, var2= expresión4 ], … [ var1 = expresión, var2= expresiónM ] ] retorna una expresión booleana de la forma (var = expresión0) or (var = expresión1) or … (var= expresiónN) ◎ solve([x^2 + y^2 = 5, x^2 - y^2 = 1],[x,y],'=') [↵] retorna set[ [x=√(3), y=√(2)], [x=-√(3),y=√(2)], [x=√(3),y=-√(2)], [x=-√(3),y=-√(2)]] ◉ list2exp( set[ [x=√(3), y=√(2)], [x=-√(3),y=√(2)], [x=√(3),y=-√(2)], [x=-√(3),y=-√(2)]], [x, y] ) [↵] retorna (x=√3 and y=√2) or (x=-√3 and y=√2) or (x=√3 and y=-√2) or (x=-√3 and y=-√2) ◎ solve( sin(t) = sin(2*t), t, '=' ) [↵] retorna set[ t=(-pi/3), t=0, t=(pi/3), t=pi ] ◉ list2exp( set[ t=(-pi/3), t=0, t=(pi/3), t=pi ],t ) [↵] retorna t=-pi/3 or t=0 or t=pi/3 or t=pi ● Orden relacionada: exp2list() ★ 6.2.5 Transformando una expresión booleana (conjunto solución) en una lista de soluciones: exp2list( expresion_booleana ) La orden exp2list() devuelve ☆ Caso 1: Si el argumento u operando es una expresión booleana de la forma (var = expresión0) or (var = expresión1) or … (var = expresiónN) retorna una lista de soluciones de la forma [ expresion0, expresion1, …, expresionN ] Es decir, exp2list() elimina el lado izquierdo de la igualdad y las disyunciones (o) y finalmente las agrupa en un lista. ◉ exp2list( x=1 or x=2 or x=3 ) [↵] retorna [1,2,3] ☆ Caso 2: Si el argumento u operando es una expresión booleana de la forma (var1 = expresión0 and var2= expresión1) or (var1 = expresión3 and var2= expresión4) or … (var1 = expresiónN and var2= expresiónM) retorna una lista de listas de soluciones de la forma [ [expresion0, expresion1], [expresion2, expresion3], …, [expresionN, expresionM] ] Es decir, exp2list() elimina el lado izquierdo de la igualdad, las conjunciones (y) y disyunciones (o) y finalmente las agrupa en un lista de listas. ◉ exp2list( (x=√3 and y=√2) or (x=-√3 and y=√2) or (x=√3 and y=-√2) or (x=-√3 and y=-√2) ) [↵] retorna [ [√(3), √(2)], [-√(3), √(2)], [√(3), -√(2)], [-(√(3)), -√(2)] ] ● Orden relacionada: list2exp() ☆Resumen de ejemplos capítulo 6.2.4/5 list[ exp2list( x=1 or x=2 or x=3 ), exp2list( (x=√3 and y=√2) or (x=-√3 and y=√2) or (x=√3 and y=-√2) or (x=-√3 and y=-√2) ), solve( x^3 - 6*x² + 11*x -6 =0, x, '=' ), list2exp( set[x = 1, x = 2, x = 3], x ), solve( x^3 - 6*x² + 11*x -6 =0, x ), list2exp( list[1, 2, 3], x ), solve([x^2 + y^2 = 5, x^2 - y^2 = 1],[x,y],'='), list2exp( set[ [x=√(3), y=√(2)], [x=-√(3),y=√(2)], [x=√(3),y=-√(2)],[x=-√(3),y=-√(2)]], [x,y] ), solve( sin(t) = sin(2*t), t, '=' ), list2exp( set[ t=(-pi/3), t=0, t=(pi/3), t=pi ],t ) ] ☆ Prueba online/ test online session Xcas, capítulos 6.2.4/5 |