MATEMTICAS
CON MAPLE
Para Estudiantes y Profesores
MATEMATICAS CON MAPLE V
Captulo I - Nmeros y Letras
Documento: Maple Manual Numeros
Captulo: I - Nmeros y Letras
Elabor: Csar Ivn Tinoco.
Versin: 21 de Julio del 2.000
1- Expresiones Bsicas
Empezaremos utilizando Maple como una calculadora cientfica. Maple tiene como Promp o indicativo [ > . A partir de esta momento podemos empezar a escribir las rdenes necesarias, cada instruccin o conjunto de ordenes de Maple , termina con : o ; (dos puntos o punto y coma), presentando o no los resultados, respectivamente. Esto se debe a que Maple est basado en C y adems la escritura de programas Maple , tiene esa estructura. El comando restart , tiene como objeto limpiar la memoria del computador en toda seccin de trabajo, es importante recordarlo en el desarrollo de una aplicacin cuando tengamos demasiadas variables o grficos que haga lento el equipo. Luego de usar restart , se borrarn todas las variables, libreras y procedimientos, que se hayan usado hasta el momento.
Podemos escribir rdenes en una misma linea separadas por comas o en lineas separadas, prcticamente de la misma forma como lo hacemos con una calculadora.
> restart: 3+4, 3-4, 3*4, 3/4; 3*5/8: sin(Pi/3); arcsin(%);
Cuando las ordenes se separan por comas, los resultados aparecen en la misma linea, cuando se separan por punto y coma o dos puntos, aparecern en lneas diferentes.
El orden de prelacin de las operaciones matemticas ser la corriente, pero manipulable por el usuario usando parentesis. Las instrucciones se escriben en la pantalla de Texto al igual que los comentarios y resultados, un archivo Maple , es algo asi como una pgina Web. Las rdenes aparecern en rojo, mientras que el texto en negro y los resultados, nmeros o expresiones, en azul.
Podemos escribir instrucciones, lnea a lnea viendo inmediatamente los resultados, o escribir un conjunto de ordenes y ver al final los resultados, para lo cual una vez terminada la linea, presionamos SHIF ENTER, y as escribir otras, las que se ejecutarn al presionar ENTER, entonces aparecern los resultados de todas las instrucciones que se encuentren en la seccin de trabajo.
> restart: factor(x^2+2*x+1); 5!,sin(Pi),tan(Pi/8),3/4+5*3/2;
Algunas expresiones son demasiado grandes, por ejemplo:
> 227!; `Longitud ..: `,length(%);
El signo \ , en los resultados, indica que la expresin continua. Alguna vez haba visto un nmero tan grande, intente leerlo. Slo tiene 438 cifras.!!
El smbolo % se usa para obtener los ltimos resultados y se usa para simplificar la escritura o generar procesos recursivos, lo cual veremos ms adelante.
> 3+2; 5+9; %+%%; %+%%;
OPERADORES BASICOS
Suma .................................... +
Resta ....................................-
Multiplicacin ........................*
Cociente ................................/
Potencia ................................^
Factorial ...............................!
Modulo................................. mod
El siguiente ejemplo resume estos operadores. No se necesita mayores explicaciones
> restart: 15/2+1/3,3*0.21,8/9,3^5; 7!,5 mod 2;
ALGUNAS FUNCIONES MATEMTICAS I
La siguiente tabla resume algunas de las funciones matemticas ms importantes para iniciarnos en el manejo de calculo cientfica con Maple .
sin, cos, tan,..., Funciones trigonometricas bsicas
sinh, cosh, tanh,..., Funciones trigonometricas hyperblicas
arcsin, arccos, arctan,..., Inversas de las Funciones trigonometricas
exp, ln Funcin exponencial y logartmo natural
log[n] Funcin logartmo en base n
sqrt Funcin raiz cuadrada
round Funcin de redondeo.
trunc Funcin de truncamiento.
floor Mayor entero menor que el nmero ceil Menor entero mayor que el nmero
binomial Funcin binomial
erf, erfc Error y error complementario abs Funcin valor absoluto
igcd Mximo comn divisor,.
ilcm Mnimo comn multiplo de un conjunto de nmeros. iquo Cociente entero de una divisin
irem Resto de una divisin
rand Generacin de nmeros aleatorios
frac Parte fraccionaria de un nmero
numer Numerador de un racional
denom Denominador de un racional
Las funciones trigonomtricas se calculan en radianes. La presentacinde los resultados sobre funciones trigonomtricas se presentan en trminos de Pi a menos que se especifique lo contrario
> sin(Pi),cos(Pi/2),tan(Pi/4); arcsin(0),arccos(0),arctan(1);
Las funciones tradicionales se evaluan sobre nmeros reales enla mayoras de los casos. Cuando un entero se precede de un punto, Maple lo interpreta como real. La orden Digits, forza la salida de digitos de un nmero real.
> Digits:=4: exp(1.); ln(%); log[10](100.); sqrt(5),sqrt(5.);
La orden round , redondea al entero ms prximo, mientras que trunc , quita los decimales dejando el nmero como entero.
floor devuelve el mayor entero menor que el nmero y ceil devuelve el menor entero mayor que el nmero.
> round(1.56),trunc(1.96); round(-1.56),trunc(-1.96); floor(-1.96);ceil(1.26);
abs , retorna el valor abosulto de un nmero, ifactor presenta los factors primos del nmero.
Las funciones que comienzan con la letra i , actuan sobre nmeros enteros.
> abs(5), abs(-5); ifactor(18);
igcd presenta el mximo comn divisor, ilcm presenta el mnimo comn multiplo de un conjunto de nmeros.
iquo presenta el cociente entero de una divisin, irem el resto entero de la divisin.
> igcd(15,50,100),ilcm(10,6,8); irem(23,4),iquo(23,4);
max devuelven el mximo comn divisor, min devuelve el mnimo comn multiplo, de un conjunto de nmeros.
> max(6,7,-15),min(6,7,-15);
ran genera un nmero aleatorio del conjunto de los naturales, podemos escoger el rango de donde obtener el nmero, especificandolo en el argumento.
> rand(); aleatorio:=rand(-41..46): aleatorio();
El factorial de un nmero se calcula precediendo el smbolo ! al nmero, y con la funcin lenght , podemos calcular la longitud de una expresin en este caso el resultado del factorial de 5.. El smbolo # , despus de la sentancia de ordenes nos permite hacer una comentaro.
> 5!!; length(%);
frac , retorna la parte fraccionaria de un nmero racional.
> frac(4); frac(8/3),8/3-%;
numer devuelve el numerador y denom , el denominador de un racional.
> numer(2/3); denom(2/3);
La funcin convert se usa para convertir nmeros o expresiones, para el caso de conversiones numricas, tendremos entre otras, las siguientes opciones:
binary
hex
octal decimal base
convert [ nmero , binary , octal , hex ] , presentan el nmero en binario, octal o hexadecimal, respectivamente
> convert(12,binary),convert(172,binary); convert(12,octal),convert(1420,octal); convert(12,hex),convert(1932,hex);
decimal , convierte un nmero de base decimal a binario, octal o hexadecimal.
> convert(1100,decimal,binary); convert(14,decimal,octal); convert(C,decimal,hex);
Cambio de Base
Orden ........: convert(.., base,..,..)
Sintxis ......: convert(nmero, base, alpha)
Propsito ...: Convierte el nmero escrito en decimal a base alpha.
Esta funcin devuelve una lista de los residuos al dividir sucesivamente el nmero decimal en la nueva base. La lista es presentada en la forma que se producen los residuos hasta llegar al ltimo cociente. Ejemplo, [ 0, 1 ] representa el nmero 10 en la base que se pidio.
> convert(17,base,3); convert(7,base,7);
Tambin podemos convertir un nmero para expresarlo en un conjunto diferente, por ejemplo, de racional a real
> convert(1.265,rational); convert(1/5,float);
Para el caso de conversiones sobre unidades de medida convert nos presenta las siguientes posibilidades.
CONVERSION DE UNIDADES A SISTEMA METRICO
acre acres bu bushel bushels chain chains cm cord cords feet foot ft furlong furlongs gal gallon gallons Gals gill gills gr hr ins inch inches kg km Lb lbs light_year light_years mi Mile miles MPG MPH ounce Ounces oz Ozs pint pints pole poles pound pounds quart quarts yard yards yd yds
> convert(miles,metric); convert(yard,metric); convert(Ozs,metric); convert(ft,metric); convert(cords,metric); convert(light_year,metric);
Existen otras funciones que operan sobre nmeros o expresiones matemticas, algunas de ellas se consideran propias de los lenguajes de programacin.
Todas las funciones se componen del nombre de la funcin y el argumento, en algunos casos el argumento es un nmero, en otros es un conjunto de nmeros o un conjunto de parmetros numricos o alfanumricos.
OTRAS FUNCIONES SOBRE NUMEROS
ifactor
isprime
ithprime
nextprime
prevprime divisor
surd
Factores Primos:
Orden ........: ifactor
Sintxis ......: ifactor ( nmero )
Propsito ...: Encuentra los factores primos del numero del nmero .
> ifactor(5!!);
Nmeros Primos
Orden ........: isprime, ithprime, nextprime, prevprime
Sintxis ......: funcin ( nmero )
Propsito ...: Evalua si un nmero es primo.
Encuentra el primo del ordinal. el siguiente primo,
Encuentra el anterior primo al nmero.
> ithprime(3); isprime(%); nextprime(7); prevprime(7);
Orden ........: surd
Sintxis ......: surd ( a , n )
Propsito ...: Calcula la raz n del nmero a del argumento, nmero real.
> a1:=(-8)^(1/3); R1:=simplify(a1); R2:=surd(-8,3);
Observe las diferencias entre el resulatdo R1 y R2.
Divisores de un Nmero.
Orden ........: divisors
Sintxis ......: divisors ( nmero )
Necesita de la librera numtheory
Propsito ...: Retorna los divisores del valor absoluto del nmero .
> with(numtheory): divisors(10);
Warning, the protected name order has been redefined and unprotected
Otras funciones no son propiamente de caracter matemtico, pero sirven para hacer evaluaciones especficas.
Tiempo.
Time() , calcula el tiempo de CPU transcurrido desde el momento en que se ejecutan diferentes rdenes. Por tanto se debe usar el comando t ime() , antes y despus de las sentencias que se desean evaluar en tiempo, o tambin podemos calcular el tiempo que se tarda en realizar una orden, ejemplo, el tiempo transcurrido en calcular el factorial del factorial de 7.
> time(); time():7!!:time()-%%; time();
Asignacin de Variables.
Asignar una variable es darle a esta un contenido numrico, algebraico, o un conjunto de datos, de tal forma que siempre que nos refiramos a dicha variable, estaremos trabajando con el contenido de la misma.
La asignacin es completamente diferente a la igualdad. La asignacin no evalua, la igualdad s. Una asigancin se realiza:
variable := nmero
variable := expresin
variable := sentencias
> a:=5; b:=6; a+b, a*b, a*b/a; a:=b; a,b,b,a; Par:=4; Impar:=5; Par, Impar, Par+Impar;
Trabajando con Decimales.
Por defecto, Maple , trabaja las expresiones reales en coma flotante con 10 digitos, si deseamos modificar esta presentacin usamos la orden, Digits o modificando el segundo parmetro de la opcin evalf() , que explicaemos mas adelante.
> 1.3/85.6; Digits; Digits:=3; t1:=1/3; 1.3/85.6; evalf(t1,2);
Los nmeros y expresiones manejadas por computador tiene longuitudes asombrosas, al igual que sus diferencias, por ejemplo, podemos escribir el nmero pi, con 100 digitos y sin embargo este ser direfrente a Pi. El condicional if lo explicaremos ms adelante.
> p:=evalf(Pi,100); if p=Pi then print(`Son iguales`) else print(`Son diferentes`) fi; e:=evalf(exp(1),100); if e=exp(1) then print(`Son iguales`) else print(`Son diferentes`) fi;
2- Expresiones
Llamaremos sentencia a un conjunto de ordenes, por ejemplo:
sqrt ( 3 ) ; Es una orden simple..
p:=sqrt()+5!; Es una orden compuesta o expresin.
Simplificar una expresin no necesariamente es hacerla ms pequea en trminos de la cantidad de letras y nmeros que esta tenga, simplificar es presentar la expresin en un formato determinado, simplify , nos permite hacer esta manipulacin.
Simplificar:
Orden ........: simplify
Sintxis ......: simplify ( expresin, forma )
Propsito ...: Simplifica la expresin a la forma establecida en el argumento.
SIMPLIFICACION DE EXPRESIONES NUMERICAS
> a:=9^(1/2); simplify(a); b:=(1+sqrt(2))^2-3-2*sqrt(2); simplify(b);
Simplificar una expresin es, en algunos casos, combinarla como se puede observar usando el comando combine.
> uno := sqrt(2)*sqrt(6) + sqrt(2)*sqrt(6); ### WARNING: note that `I` is no longer of type `radical` combine(uno,radical); dos:= sqrt(4-sqrt(3))*sqrt(4+sqrt(3)); ### WARNING: note that `I` is no longer of type `radical` combine(dos,radical);
Lo mismo sucede con la opcin radnormal , normaliza una expresin racional.
> exp1 := sqrt(2)*sqrt(3)-sqrt(6); combine(exp1),radnormal(exp1),simplify(exp1); exp2 := 1/(2^(1/2)+3^(1/2)+6^(1/2)); combine(exp2),radnormal(exp2),simplify(exp2);
rationalize , nos permite racionalizar el denominador de una expresin.
> exp3:=2/(2-sqrt(2)); rationalize(exp3); evalf(%); evalf(exp3);
Secuencias.
Tal vez, son las secuencias, una de las posibilidades ms fuertes en el manejo de lenguajes de programacin y de paquetes numricos, pues nos permiten ejecutar muchas instrucciones con muy pocas rdenes.
Las secuencias son pequeos programas que recorren una expresin sobre un parmetro, en la mayora de casos este parmetro es i , pero no es condicin necesaria. Una secuencia genera una relacin ordenada de datos los cuales pueden ser accesados con subindices como si estos fueran una lista. El captulo de extructuras explicar mas este concepto de listas.
Orden ........: seq
Sintxis ......: seq ( exp, i=a..b )
Propsito ...: Genera una secuencia de datos sobre exp en un intervalo i=a..b .
> restart; s1:=seq((2*i+1)^2,i=0..10); s1[3]; [seq(p,p=1..15)]; {seq(r,r=1..12)};
Tambin podemos establecer una secuencia de tal forma que contenga una cantidad de elementos determinados a intervalos diferentes desde un inicio a un fin.
> ini :=0; fin:=40; incremento:=1/3; X := seq(-10+i*incremento,i=ini..fin);
Ciclos.
Los ciclos tambin son una de los conceptos ms importantes de los lenguajes de programacin y nos permiten generar procesos repetitivos sobre expresiones o conjuntos de ordenes.
En el transcurso del curso se encontrar varias sentencias con ciclos, adems tendremos tres captulos dedicados exclusivamente a la programacin.
Orden ........: for
Sintxis ......: for variable from inicio by incremento to hasta haga do ordenes od
Propsito ...: Repite un conjunto de ordenes, desde do hasta od .
> for i from 1 by 3 to 12 do (i+1)^2 od;
Evaluacin.
En algunas ocaciones Maple , presenta los resultados en forma racional, o radical o como una expresin, la orden evalf , nos permite obtener el valor en coma flotante de dicha expresin.
Orden ........: evalf, convert
Sintxis ......: evalf(n), convert( n, float)
Propsito ...: Evalua la expresin del argumento. Convierte el argumento en un nmero real.
> restart: n:=(1+sqrt(12))/(1+sqrt(3)^5); e:=expand(n); simplify(e); evalf(n); convert(n,float);
Cul de los siguientes nmeros es una mejor aproximacin de Pi ?. Usamos el comando evalb , para optener una evaluacin boleana de la expresin.
> restart:a:=19/6: a,evalf(a), Pi<>evalf(a),evalb(Pi=a),evalf(Pi-a); b:=22/7: b,evalf(b), Pi<>evalf(b),evalb(Pi=b),evalf(Pi-b); c:=25/8: c,evalf(c), Pi<>evalf(c),evalb(Pi=c),evalf(Pi-c);
> min(abs(evalf(Pi-a)),abs(evalf(Pi-b)),abs(evalf(Pi-c)));
La conjetura de Fermat sobre los nmeros primos, establece que el nmero expresin: +1, arroga un nmero primo para todo n natural. Vemoslo para algunos n. Como se podr observar la conjetura falla en el quinto intento.
> restart: n:=5: for i from 1 to n by 1 do i; numero:=(2^(2^i))+1; isprime(numero); od; ifactor((2^(2^5))+1);
3- Matemtica Simblica
Ahora trabajaremos sobre las expresiones algebraicas, polinomios y sus variables. Una expresin de tipo algebraica puede tener, variables, nmeros, funciones y estar asignada a una cadena de caracteres.
Algunas de las funciones sobre nmeros son aplicables a expresiones simblicas, finalmente una expresin algebraica representa muchas numricas.
Maple es sensible a la escritura. Las cadenas se esciben entre comillas sencillas. Una palabra compuesta exclusivamente por letras no necesita escribirse entre comillas. No se puede usar tildes para la definicin de las variables, tampoco empezarlas por un nmero.
Cadenas
Las cadenas o palabras se pueden usar para representar variables, expresiones o cunjuntos de datos, el punto ( . ), se usa para concatenar dos cadenas y para sunindizar usa secuencia.
> restart: `Cadena de caracteres`; `La respuesta es ...: `, Primero; La_respuesta_es, Nombre||Apellido; a||(x,y,z); Valor_Sub_||(3..5), a[3]; seq(a[i],i=1..10);
Esta es una forma muy interesante de asignar una lista, preste especial atencin, pues usaremos ste formato fuertemente en el manejo de expresiones en los captulos de geometra y programacin.
La funcin cat , nos permite concatenar cadenas. La funcin convert tambin se hace presente en el manejo de cadenas, el parmetro, symbol , convierte a smbolo el primer argumento. El argumento string convierte a cadena el argumento.
La orden whattype ( argumento) nos permite evaluar el tipo de dato del argumento que Maple est asignando.
> cat(`x`,`y`); convert(sin(x^2),symbol); dato:=2/3; whattype(dato); convert(dato,symbol),whattype(%); convert(4,string);
parse , retorna el argumento a una expresin evaluable en Maple , siempre que sea posible. searchtext , retorna la posicin en la cual se encuentra la primera aparicin de una cadena en otra.
> dato2:=`5+4`; whattype(dato2); parse(dato2); whattype(%); searchtext(s,casa);
substring , nos permite extraer un subconjunto del conjunto de elementos formados por la cadena estableciendo la posicin inicial y final de la extraccin. Esta opcin nos permite manipular fuertemente las cadenas.
> nombre:=`Universidad de Cundinamarca`; substring(nombre, 12..14 ); length(nombre);
Variables
En Maple existen variables Matemticas y de Programacin. En la siguiente expresin: , tiene a x como variable que tomar valores numricos, mientras que , p es una variable a la que se le ha asignado una expresin.
> 5*x^2+3*x+6: p:=5*x^2+3*x+6: `La Variables es `||x; `La Asignacin a p es... `,p;
Expresiones Algebraicas
Con Maple podemos trabajar polinomios en uno o varias variables, fracciones algebraicas y otro tipo de expresiones que veremos en el desarrollo del curso. Para la escritura de las expresiones algebraicas podemos usar el editor de ecuaciones, el cual se activa desde la barra de mens. View - Palettes - Expresion Palete. Si deseamos escribir una ecuacin como texto, podemos usar un editor de ecuaciones.
Los siguientes ejemplos presentan expresiones algebraicas.
> restart: a:=(x-2)^2; 3*x^3+5*x^2+x^5+6; ecua1:=Int(a,x); Limit(sin(x), x=0);
ALGUNAS FUNCIONES
SOBRE EXPRESIONES ALGEBRAICAS
eval
simplify
expand factor
solve
subs
Orden ........: eval , evalf
Sintxis ......: eval(expresin, variable = a, n),
Propsito ...: Evalua la expresin cuando la variable es a con n decimales.
> pol1:=x^3+3*x+2; eval(pol1, x=1); pol2:=x^3+3*y+2*z; eval(pol2, [x=1,y=3,z=7]); evalf(5/3*exp(-2+3)*sin(Pi/4),3);
Orden ........: simply
Sintxis ......: simplify (expresin, opciones )
Propsito ...: Simplifica le expresin del argumento de acuerdo a las opciones.
> restart: ecua:=(x^2)^b+4^(1/2); simplify(ecua); simplify(sin(x)^2+cos(x)^2); ecua2:=sqrt(x^2); simplify(ecua2);
Podramos probar muchsimas propiedades del algebra y de la trigonometria, por ejemplo:
> restart: simplify(x^a*x^b,symbolic); simplify((a^b)^c,symbolic); simplify(ln(x*y)); simplify(ln(x*y), power, symbolic); simplify(1+tan(x)^2, trig); simplify(sin(x)*cos(x),trig); combine(sin(x)*cos(x),trig);
Orden ........: expand
Sintxis ......: expand (expresin, opciones )
Propsito ...: Expande la expresin del argumento de acuerdo a las opciones.
> restart: expand((x+1)*(x+2)); expand((x+1)/(x+2)); simplify(%); expand(1/(x+1)/x); expand(sin(x+y)); expand(cos(2*x)); combine(sin(x)*cos(y)+cos(x)*sin(y));
Orden ........: factor
Sintxis ......: factor (expresin, opciones )
Propsito ...: Factoriza la expresin. Podramos probar todos los ejercicios del Algebra Baldor. !
> restart: factor(x^2+2*x+1); factor(x^3+y^3); factor(x^3-y^3); expand((x-y)^3); factor(%);
Orden ........: solve , fsolve
Sintxis ......: solve (expresin, variable )
Propsito ...: Soluciona la expresin para la variable del argumento
> restart: solve(x^2); solve(x^4-5*x^2+6*x=2); solve(x^4-5*x^2+6*x=2),fsolve(x^4-5*x^2+6*x=2);
Tambin podemos solucionar un sistema de ecuaciones, o encontrar la interseccin de dos ecuaciones. Todo esto se explicar en los captulos de Algebra Lineal y Ecuaciones Diferenciales
> ecua1:=x^2-2=x; sol1:=solve(ecua1); ecuas:={x+y+z=1, 3*x+y=3, x-2*y-z=0}; sol2:=solve(ecuas);
Tal vez quisieramos verificar los resultados, para esto podemos usar el comando subs .
Orden ........: subs
Sintxis ......: subs(variable =a , exprerin)
subs(s1,...,sn , expresin)
Propsito ...: Remplaza el valor de la variable en la expresin
Remplaza el conjunto de soluciones en la expresin.
Supongamos que tenemos una expresin cuadrtica, que calculamos las races y deseamos verificar el resultado. Lo podemos hacer elemento a elemento o todo el conjunto a la vez.
> f:=3*x^2-5; sol:={solve(f,x)}; subs(x=sol[1],f),subs(x=sol[2],f); ecuas:={x+y+z=1, 3*x+y=3, x-2*y-z=0}; sol2:=solve(ecuas); subs(sol2,ecuas);
SOBRE EXPRESIONES RACIONALES
numer
denom
rationalize
> restart: poli:=(1+x)/x^(1/2)/y; numer(poli); denom(poli);
> ecua1:=(x^4-4*x^3+4*x^2+3*x-4)/(x-1); simplify(ecua1); ecua2:=x/(x+sqrt(3)); rationalize(ecua2);
SOBRE EXPRESIONES POLINOMICAS
+, -, *, /
factor
divide
gcd
lcm
roots
coeffs
discrim
randpoly
isolate
Supongamos que tenemos dos polinomios, podemos realizar las operaciones normales entre ellos.
> restart: p1:=x^7+8*x^4-3*x^2+x+12; p2:=x^5-7*x^2+8*x; p1+p2; p1*p2; p1/p2;
Pero adems calcular alguna informacin especfica, por ejemplo, saber si un polinomio es exactamente divisible entre otro,
factor , factoriza un polinomio, divide , evalua si la divisn entre dos polinomios es posible y asigan el resultado a una variable.
gcd y lcm , calculan el mximo comn divisor y el mnimo comn multiplo de dos polinomios respectivamente.
> factor(x^19-x); divide(x^3-y^3, x-y,'ecua'); ecua; gcd(x^2-y^2,x^3-y^3); lcm(x^2-y^2,x^3-y^3);
rem y quo , calculan el residuo y el cociente de la divisin de dos polinomios. roots , calcula las raices del polinomio respecto a una variable. roots se diferencia a solve en que presenta los puntos solucin.
> rem(x^3+x+1, x^2+x+1, x); quo(x^3+x+1, x^2+x+1, x); roots(2*x^3+11*x^2+12*x-9); solve(2*x^3+11*x^2+12*x-9);
coeffs , extrae los coeficientes del polinomio en las variables del argumento. sort , ordena un polinomio. discrim , calcula el discriminante de un polinomio.
> coeffs(2*x^3+11*x^2+12*x-9,x); sort(1+x+x^2); sort(%,lexorder); ecua:=a*x^2+b*x+c; discrim(ecua,x); solve(ecua,x);
ranpoly , nos genera un polimonio aleatoriamente.
> randpoly(x, terms=5); randpoly([x,x,z], terms=7);
La orden isolate , que nos permite despejar un polinomio en trminos de una variable, es decir despejar.
> restart: ecua:=x^2-y+x; ### WARNING: persistent store makes one-argument readlib obsolete readlib(isolate): isolate(ecua,x); isolate(x^2-3*x-5,x^2);
Definicin de Funciones
Podemos definir nuestras propias funciones, inicialmente lo haremos como una asignacin "Flecha" .
Orden ........: ->
Sintxis ......: nombre : = variable -> definicin.
Propsito ...: Asigna un conjunto de ordenes a una variable.
> restart; f:=x->3*x+(x^2+2)/(x^3-8); f(3),f(sin(x)); g:=()->surd(7,3); # Funcin constante g(); g(sin(x));
Funciones definidas a trozos,
Podemos definir usamos una sentencia de seleccin o evaluacin, if ..then...else...fi.
La funcin Valor Absoluto est definida a trozos.
> restart; f:=x->if x<1 then -x else x fi; f(5),f(-5);
Cuando la definicin de la funcin es muy larga o complicada, podemos usar procedimientos, que son un conjunto de sentencias, de todas maneras Maple asigna como un procedimiento las funciones por simples que estas sean.
Adems con ellas podemos usar operaciones entre funciones, como suma, producto y calcular la funcin compuesta.(@). En el siguiente ejemplo definiremos la funcin factorial usando un procedimiento bien recursivo es decir, se llama a si mismo.
> restart; fact:=n-> if n<2 then 1 else n*fact(n-1) fi; fact(4),fact(7),fact(13/4);
Sobre las funciones y polinomios podemos evaluar los procedimientos bsicos del algebra y realizar las operaciones tradicionales, por ejemplo:
> f:=(x+1)(x^2-1)+5*x^2-5; factor(f); f:=x->x^2+sin(x); g:=y->2-exp(y); (f+g)(z); (f*g)(z); (f@g)(m);
>