18
Herramientas de Software Matem´ atico en el aula Rub´ en S´ anchez G´ omez 15 de julio de 2013

Herramientas de Software Matem´atico en el aula · Herramientas de Software Matem´atico en el aula Rub´en S´anchez Gomez 15 de julio de 2013

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

  • Herramientas de Software Matemático en el aula

    Rubén Sánchez Gómez

    15 de julio de 2013

  • Jugando con Maxima

    Operadores lógicos

    is(3

  • Jugando con Maxima

    Variables

    a:x^2� 1;sol:solve(a,x);factor(a,x);

    di↵(a,x);

    p:(x+2)⇤(2⇤x�3);q:(x+2)^3;p�q;radcan(p/q);expand(p/q);partfrac(p/q,x);

    Rubén Sánchez Gómez Herramientas de Software Matemático

  • Jugando con Maxima

    Vectores

    Retomando producto interior (inner product) sabemos que

    h·, ·i : V ⇥ V ! K .

    Para espacios Euclideanos se sabe que tienen producto interior(producto punto) y que para u, v se satisface:

    cos ✓ =u · v|u||v | y que kuk =

    pu · v

    Para u =

    0

    BB@

    �1024

    1

    CCA , v = (1, 3,�2, 1) ,w =

    0

    BB@

    33

    �12

    1

    CCA ,

    obtenga:

    u · v medianteu

    tv ,

    u · v =?,el ángulo ✓v ,w ,

    Rubén Sánchez Gómez Herramientas de Software Matemático

  • Jugando con Maxima

    Matrices

    Para

    A =

    0

    @1 2 3

    4 5 6

    7 8 9

    1

    A ,B =

    0

    @1 �1 xx 1 2

    �1 x 2

    1

    A ,C =

    0

    @4 2

    5 3

    2 0

    1

    A

    obtenga:

    A+ 2B =?

    BC =

    0

    @3 �117 7

    10 4

    1

    A , x =?

    det(A) =?

    ¿Para qué valores de x se

    tiene que B es matriz

    singular?

    (C

    tC )

    �1

    ¿Qué responde Maxima

    para A+ C o para CB?

    B

    �1=?

    Rubén Sánchez Gómez Herramientas de Software Matemático

  • Jugando con Maxima

    Sistemas lineales

    Para el sistema

    3x1 � 2x2 + 4x3 + x4 = 62x1 + x2 + x3 � x4 = 3

    � 3x1 + 3x2 + 2x3 + x4 = 3x1 + x2 + x3 + 4x4 = 7

    resuelva por

    matriz inversa,

    regla de Cramer,

    Gauss-Jordan (usando matrices elementales)

    Rubén Sánchez Gómez Herramientas de Software Matemático

  • Jugando con Maxima

    Funciones2

    f(x) := sin(x);f(%pi/4);

    define( g(x,y),[f(x),f(x)^2] );g(%pi/4,%pi);

    functions;

    fundef(f);

    remfunction(f);

    functions;

    Rubén Sánchez Gómez Herramientas de Software Matemático

  • Gráficando en Maxima

    f(x):=x^3+3⇤x+1;g(x):=%e^x-x+1;wxplot2d(f(x), [x,-2,2]);

    wxplot2d([f(x), g(x)], [x,-2,2]);

    wxplot2d([f(x), g(x)], [x,-2,2], [y,-5,20]);

    wxplot2d([f(x), g(x)], [x,-2,2], [plot format, gnuplot],[gnuplot preamble, “set size ratio 1; set zeroaxis;”]);

    wxplot2d([f(x), g(x)], [x,-2,2], [plot format, gnuplot],[gnuplot preamble, “set size ratio 2; set zeroaxis;”]);

    wxplot2d([f(x), g(x)], [x,-2,2], [plot format, gnuplot],[gnuplot preamble, “set size ratio 0.5; set zeroaxis;”]);

    Rubén Sánchez Gómez Herramientas de Software Matemático

  • Jugando con Maxima

    Gráficando en Maxima

    f(x):=if x>>>>><

    >>>>>>:

    2x si x 0

    cos(x) si 0 < x < ⇡

    �r

    x

    ⇡+ 1 si x � ⇡

    Rubén Sánchez Gómez Herramientas de Software Matemático

  • Gráficando en Maxima

    plot2d(x^2-1, [x,-3,3], [y,-2,10],;[box, false], [plot format, xmaxima]);

    r:(exp(cos(t))-2⇤cos(4⇤t)-sin(t/12)^5)$plot2d([parametric, r⇤sin(t), r⇤cos(t)],[t, -8⇤%pi, 8⇤%pi], [nticks, 200]);

    plot2d([parametric, r⇤sin(t), r⇤cos(t)],[t, -8⇤%pi, 8⇤%pi], [nticks, 500]);

    plot2d([parametric, r⇤sin(t), r⇤cos(t)],[t, -8⇤%pi, 8⇤%pi], [nticks, 2000]);

    Rubén Sánchez Gómez Herramientas de Software Matemático

  • Gráficando en Maxima

    f(x,y):=x^3+y^2;contour plot(f(x,y), [x,-4,4], [y,-4,4]);

    contour plot(f(x,y), [x,-4,4], [y,-4,4], [legend, false],[gnuplot preamble, ”set cntrparam levels 12”]);

    plot3d(f(x,y), [x,-3,3], [y,-3,3]);

    plot3d([f(x,y), log(f(x,y)), [x,-3,3], [y,-3,3]],[palette, false], [color, magenta, blue])$);

    Rubén Sánchez Gómez Herramientas de Software Matemático

  • Usando draw

    load(draw);f(x):=x^3-2⇤x^2-x+2;define(df(x), di↵(f(x), x));tangente(x,a):=f(a)+df(a)*(x-a);

    wxdraw2d(color=blue, key=“función”, explicit(f(x), x, -2, 3),color=red, key=“recta tangente”,explicit(tangente(x,1), x, -1, 2), grid=true);

    Rubén Sánchez Gómez Herramientas de Software Matemático

  • Usando draw

    secante(x, a, c, b, d):=x⇤(c-d)/(a-b)+ (a⇤d-b⇤c)/(a-b);draw2d(point type=filled circle, color=black, points([[1,f(1)]]),point type=filled circle, color=black, points([[1.6, f(1.6)]]),color=blue, key=“funcion”, explicit(f(x),x,-2,3),color=red, key=“recta tangente”,explicit(tangente(x, 1), x, -2, 3),color=green, key=“recta secante”,explicit(secante(x, 1, f(1), 1+0.6, f(1.6)), x, -1.5, 2.5),grid=true);

    Rubén Sánchez Gómez Herramientas de Software Matemático

  • Animación. . .

    with slider(n, 0.1⇤reverse(makelist(i, i, 1, 20)),[f(x), tangente(x, 1), secante(x, 1, f(1), 1+n, f(1+n))],[x, -1.5, 2.5]);

    Sólo por seguir jugando. . .

    wxdraw2d(color=red, nticks=100,implicit(x^2 + (y - x^(2/3))^2 = 1, x, -1.5, 1.5, y, -1.2, 2));

    Rubén Sánchez Gómez Herramientas de Software Matemático

  • Integrando

    integrate(t^3⇤sin(t^2, t));’integrate(t^3⇤sin(t^2, t)) = integrate(t^3⇤sin(t^2, t);’integrate(t^3⇤sin(t^2, t)) = ”integrate(t^3⇤sin(t^2, t);

    integrate(cos(x)^3⇤%exp^(-x), x);’integrate( cos(x)^3⇤%exp^(-x), x) =integrate(cos(x)^3⇤%exp^(-x), x);ratsimp(%);

    Rubén Sánchez Gómez Herramientas de Software Matemático

  • Referencia rápida de Maxima

    El paso inicial para resolver una expresión es teclearla

    directamente y presionar en forma simultánea las teclas

    Shift + Enter .

    Para ayuda, basta con teclear ? tema o bien conel mouse dar click en 1 para visualizar la ventana de

    ayuda y en 2 teclear el “tema” de interés.

    Controlando el formato de salida

    Maxima sólo muestra los primeros y últimos 30 d́ıgitos

    del resultado para números muy grandes. Para obte-

    ner todos los d́ıgitos se debe modificar el formato de

    salida; en el menú superior seleccionar Maxima +

    Cambiar pantalla 2D y elegir el formato de salida as-

    cii.

    Operaciones básicas+(�) suma (algebraica)

    ⇤ producto/ división

    ^ o ⇤⇤ potenciasqrt(x) ráız cuadrada de x

    La salida en formato ascii es la salida por defecto deMaxima y la salida xml es una mejora del wxMaximade modo que, si se trabaja con wxMaxima no se de-

    be olvidar regresar al formato xml del Maxima con elmismo procedimiento.

    float(x) expresión decimal del va-lor x

    numer:true expresión decimal del re-sultado

    bfloat(x) expresión decimal largadel valor x

    Tomando en cuenta que si se aplica el comando nu-mer:true, se debe aplicar posteriormente numer:falsepara obtener nuevamente el resultado exacto que pro-

    porciona Maxima por defecto.

    Constantes%pi número ⇡%e número e%i imaginario

    %phi razón aurea1 +

    p5

    2

    Maxima da la posibilidad de reutilizar la entrada (%i

    n) o salida (%o n) n�ésima tecleándola directamenteen cualquier operación. Para la exponencial, se puede

    utilizar la constante%e (ex) o bien exp(x).

    Maxima sólo tiene definido el logaritmo natural con la

    función log(x). ln(x) no está definido y Maxima lo to-ma como una variable simbólica.

    El logaritmos de cualquier base se puede obtener con

    log

    b

    (x) =

    log(x)

    log(b)

    Trigonométricas e hiperbólicassin(x), asin(x) seno, arcoseno de xcos(x), acos(x) coseno, arcocoseno de

    x

    tan(x), atan(x) tangente, arcotangentede x

    sec(x), csc(x), cot(x) secante, cosecante, co-tangente de x

    sinh(x), asinh(x) seno, arcoseno hi-perbólicos de x

    cosh(x), acosh(x) coseno, arcocoseno hi-perbólicos de x

    tanh(x), atanh(x) tangente, arcotangentehiperbólicos de x

    Otras funcionesn! factorial de n

    entier(x) parte entera de xabs(x) valor absoluto de x

    binomial(m,n) C(m,n) =m!

    n!(m� n)!random(n) número aleatorio entre 0 y

    n

    signum(x) signo de xmax(x1, x2, . . .) máximo de {x1, x2, . . .}min(x1, x2, . . .) mı́nimo de {x1, x2, . . .}

    Operadores lógicos y relacionesis(expr) decide si la expr es falsa o

    no

    assume(expr) supone que expr es ciertaforget(expr) olvida el supuesto.

    and conectivo lógico yor conectivo lógico o.= =

    notequal 6=x 7 y menor/mayor>=

  • Álgebra elementalexpand(var) expande productos y po-

    tencias de la variable var

    expand(var, n,m) expande productos y sólolas potencias entre �m yn

    factor(expr) factoriza exprev(expr, var = val) evalúa la expresión expr

    asignando el valor val a la

    variable var

    Expresiones racionalesratexpand(var) expande productos y po-

    tencias de una expresión

    racional polinomial var

    ratsimp(expr) simplifica expresiones ra-cionales

    num(frac) presenta el numerador defrac

    denom(frac) presenta el denominadorde frac

    fullratsimp(expr) simplifica expresiones ra-cionales con más eficiencia

    y a un mayor costo comp.

    partfrac(frac, var) descompone fraccionesparciales de frac respecto

    de la variable var

    Expresiones con radicalesradexpand(var) expande radicales de una

    expresión var

    radcan(expr) simplifica expresiones conradicales

    Expresiones con logaritmoslogexpand(var) expande logaritmos de

    una expresión var

    Trigonométricas e hiperbólicastrigexpand(expr) desarrolla

    trigsimp(expr) simplificatrigreduce(expr) simplifica

    Listas, vectores y matrices

    Para introducir una lista basta con escribir sus ele-

    mentos entre corchetes.

    list[r] muestra el r�ésimo ele-mento de la lista con nom-

    bre list

    last(list) muestra el último elemen-to de list

    part(list) busca un elemento dandosu posición en list

    length(list) muestra la liongitud delist

    sort(list) presenta la lista en órdenascendente

    reverse(list) invierte la listaflatten(list1, list2,. . .)

    unifica las listas

    list1, list2, . . .

    unique(list) muestra el elemento queaparece sólo una vez en

    list

    makelist(expr, var,n,m)

    hace una lista en donde

    cada elemento se obtiene

    sustituyendo var desde n

    hasta m, en donde expr se

    obtiene a partir de la va-

    riable var

    apply(fun,makelist(exp, var,n,m)

    aplica la fun a todos los

    elementos de la lista.

    en este caso, un vector es una lista de números.

    Operaciones con vectoresv1 + v2 suma de vectores

    k ⇤ v producto escalar.v1.v2 producto interior de vec-

    tores

    v1 ⇤ v2 producto término atérmino de vectores

    Se puede destacar que el producto ⇤ no tiene nadaque ver con el producto escalar o con el producto inte-

    rior. Además, nótese que sqrt(v1.v1) permite calcularla norma de v1.

    Las matrices son una simple generalización de vec-

    tores o listas, de hecho Maxima reconoce matrices me-

    diante

    matrix([a11, a12, . . . , a1n], . . . , [am1, am2, . . . , amn])

    para obtener

    0

    BBB@

    a11 a12 . . . a1n

    a21 a22 . . . a2n.

    .

    .

    .

    .

    .

    .

    .

    .

    .

    .

    .

    a

    m1 am2 . . . amn

    1

    CCCA.

    Se tienen además:

    addcol( ) teclee ayuda (? addcol)para conocer los valores de

    entrada

    addrow( ) teclee ayuda (? addcol)para conocer los valores de

    entrada

    col(M,n) muestra la n�ésima co-lumna de M

    row(M,n) muestra el n�ésimorenglón de M

    submatrix(i,M, j) genera una submatriz eli-minando la fila i y la co-

    lumna j

    submatrix(ip

    , . . . , i

    r

    ,

    matriz, j

    q

    , . . . , j

    s

    )genera una submatriz eli-

    minando las filas i

    p

    , . . . , i

    r

    y las columnas j

    q

    , . . . , i

    s

    Operaciones con matricesM1 +M2 suma de matrices

    k ⇤M producto escalar.M1.M2 producto de matrices

    M

    ^^r Eleva M a la potencia r

    M1 ⇤M2 es un producto elemento aelemento

    M1/M2 divide matrices elemento a

    elemento

    M

    ^r Eleva cada elemento de M

    a la potencia r

    Se tiene además:

    adjoint(M) matriz adjunta de Mtranspose(M) matriz transpuesta de Minvert(M) matriz inversa de Mrank(M) rango de Mdeterminant(M) determinante de de Mmattrace(M) traza de la matriz M

  • minor(M, i, j) menor correspondiente ala entrada i, j de la matriz

    M

    eigenvalues(M)eivals(M)

    genera los eigenvalores de

    M

    eigenvectors(M)eivects(M)

    genera los eigenvectores de

    M

    diagmatrix(n, x) genera una matriz diago-nal de tamaño n con x en

    cada elemento diagonal

    ident(n) genera una matriz identi-dad de tamaño n

    zeromatrix(n,m) genera una matriz nula detamaño n⇥m

    Sistemas de ecuaciones linealesalgsys([expr1,. . . ,exprm],[x1,. . . ,xn]);

    sistemas expresiones si-

    multáneas

    linsolve([expr1,. . . ,exprm],[x1,. . . ,xn])

    sistema de ecuaciones li-

    neales

    solve([expr1,. . . ,exprm],[x1,. . . ,xn])

    sistema de ecuaciones

    augcoefmatrix( ) matriz aumentada del sis-tema de coeficientes

    Funciones2f(x1,. . . ):=[expr1,. . . ];

    define f(x1,. . . )

    define(f,[expr1, . . . ]) define f(x1, . . . )fundef(f) muestra la defini-

    ción de f

    functions presenta la lista defunciones

    remfunction(f1, . . . ) borra f1,. . .

    Graficas 2Dwxplot2d(f(x), [x,a,b]); Grafica de

    una función

    plot2d(f(x), [x,a,b]);

    wxplot2d([f1(x),. . . ],[x,a,b]); Grafica de nfunciones

    plot2d([f1(x),. . . ], [x,a,b]);

    Graficas 3Dwxplot3d(f(x,y),[x,a,b],[y,c,d]); Grafica de

    una función

    plot2d(f(x,y),[x,a,b],[y,c,d]);

    wxplot3d([f1(x,y),. . . ],[x,a,b],[y,c,d]);

    Grafica de n

    funciones

    plot3d([f1(x,y),. . . ],[x,a,b],[y,c,d]);

    con opciones para gráfica polares, funciones paramétri-

    cas, de variable discreta, entre otras.

    Gráficos con draw

    Primero, cargarlo con load(draw);

    Opciones:color color de la gráficaline width ancho de la ĺınea.nticks partición (tamaño

    de paso)

    xlabel, ylabel etiquetas de los ejesxrange, yrange rango de los ejes

    expresión a graficar:explicit(expr,var,a,b) relación expĺıcita,

    avarbparametric(expr,param,a,b)

    relación paramétri-

    ca, aparambimplicit(expr,var1,a,b,var2,c,d)

    relación impĺıci-

    ta, avar1b,cvar2d.

    Cálculo

    Ĺımiteslimits(expr, x, val, dir)limits(expr, x, val)limits(expr)

    calcula el ĺımite de expr para la variable x superiordir=plus o inferior dir=minus.

    Diferenciacióndi↵(expr, x1,n1, . . . , xm,nm)di↵(expr, x,n)di↵(expr, x)di↵(expr)

    muestra la (n, n

    i

    )�ésima derivada de la expr, con res-pecto a la(s) variable(s) (x, x

    i

    ).

    Integraciónintegrate(expr, x, a, b) integral definida

    para a