Professional Documents
Culture Documents
Maple Bsico
Nessa apostila daremos nfase a alguns princpios relacionados s matrias do bsico dos cursos de exatas. Ser bastante proveitoso, se ao final de cada aula, o aluno resolver os exerccios propostos para que possa se familiarizar com os comandos do Maple. Qualquer dvida o estudante pode verificar a ajuda do Maple. HELP>Topic Search ou HELP>Full Text Search. 1. NMEROS .................................................................................................................................................... 3 2. RESOLVENDO EQUAES ................................................................................................................... 6 EXERCCIOS: ..................................................................................................................................................... 9 3. SIMPLIFICANDO EXPRESSES ..................................................................................................... 11 EXERCCIOS: ................................................................................................................................................... 13 4. LGEBRA LINEAR .................................................................................................................................. 14 EXERCCIO: ..................................................................................................................................................... 18 5. GRFICOS.................................................................................................................................................. 19 GRFICOS EM DUAS DIMENSES: ............................................................................................................. 19 GRFICOS DE FUNES PARAMETRIZADAS: ........................................................................................... 23 GRFICOS EM COORDENADAS POLARES: ................................................................................................ 23 FUNES CONTNUAS POR PARTES:......................................................................................................... 25 GRFICOS EM 3D: ....................................................................................................................................... 26 GRFICOS SIMULTNEOS: .......................................................................................................................... 28 EXERCCIOS: ................................................................................................................................................... 29 6. CLCULO DIFERENCIAL E INTEGRAL ........................................................................................ 30 LIMITES, SOMATRIOS E PRODUTRIOS: ............................................................................................. 30 DIFERENCIAO: ......................................................................................................................................... 32 INTEGRAO: ................................................................................................................................................ 34 O PACOTE STUDENT, FERRAMENTAS DE CLCULO: ............................................................................... 36 CLCULO VETORIAL: ................................................................................................................................... 38 EXERCCIOS ..................................................................................................................................................... 41
Minicurso
ANEXO A .......................................................................................................................................................... 43 ANEXO B .......................................................................................................................................................... 44 RESOLUO DE SISTEMAS LINEARES: ..................................................................................................... 44 SOMA DE RIEMANN: .................................................................................................................................... 47 CLCULO DE REA ENTRE DUAS CURVAS: ............................................................................................... 50 INTEGRAL POR PARTES: .............................................................................................................................. 52 EXEMPLOS DE GRFICOS EM COORDENADAS POLARES:....................................................................... 54 RESOLUO DE EDO COM PLOTAGEM DE GRFICO: ............................................................................ 55 GRUPO PET ENGENHARIA ELTRICA - UDESC/JOINVILLE-SC ........................................................ 60 Agosto 2002 ............................................................................................................................................ 60
Minicurso
1. Nmeros
O Maple usualmente procura trabalhar com nmeros de forma exata. Por exemplo, > (23^(1/2)/11+2/5)^2;
1 23 + 2 11 5
Ou seja, se nmeros racionais so dados na entrada, racionais tambm so dados na sada. Uma aproximao decimal pode ser obtida atravs do comando evalf: > evalf(%);
.6988703917
onde a "porcentagem" no argumento de evalf assumem o valor do ltimo resultado calculado. O resultado acima foi dado com uma preciso de dez dgitos, mas podemos obter uma aproximao para um nmero qualquer de dgitos. Por exemplo, para calcular a expresso acima com a preciso de 70 dgitos procedemos do seguinte modo: > evalf(%%,71);
.698870391778115140215350867476295095008024974948399489661741489315245 \ 16
Um modo de induzir a sada em notao flutuante fazer com que ao menos um dos nmeros na entrada seja introduzido desta forma: > 2/3*1.0;
.6666666667
H um modo de estabelecer o nmero de dgitos desejado em qualquer operao de ponto flutuante sem utilizar evalf ,atravs da atribuio varivel Digits. O default, como j vimos dez: > Digits;
10
> Digits:=30;
Digits := 30
> sin(0.3);
.295520206661339575105320745685
Minicurso
Nmeros irracionais no so avaliados sem que o usurio pea, embora simplificaes elementares sejam feitas automaticamente: > Digits:=10;
Digits := 10
> 10*sin(n*Pi)/(10*3);
1 sin( n ) 3
Na expresso acima, n normalmente subentendido como um nmero inteiro. Isto pode ser declarado atravs do seguinte comando: > assume(n,integer); > sin(n*Pi);
0
> cos(n*Pi);
( -1 )n~
Consideremos agora nmeros complexos. Suponhamos que queremos encontrar as razes cbicas de -8: > z:=(-8)^(1/3);
z := ( -8 )
( 1/3 )
Para encontrar explicitamente as razes devemos converter este nmero para a forma RootOf e usar em seguida o comando allvalues: > convert(z,RootOf);
1 + RootOf( _Z 2 + 3, index = 1 )
> allvalues(%);
1+I 3
Expresses envolvendo nmeros complexos em forma explcita so sempre simplificados. Por exemplo: > (2+5*I)*(3-I)^2/(5+I);
129 47 + I 13 13
Minicurso
Simplificaes no ocorrem quando uma varivel simblica estiver envolvida: > z:=(2-a*I)^2/(a+2*I);
z :=
( 2 I a )2 a+2I
Para forar a sada na forma convencional devemos usar o comando evalc (evaluate in complex context): > evalc(z);
( 4 a2 ) a 8a a2 2 ( 4 a2 ) 4 + I 2 2 a + 4 a + 4 a2 + 4 a2 + 4
O comando evalc considera a varivel a como sendo real, a menos que o usurio a declare complexa atravs do comando assume. As partes real e imaginria de um nmero complexo, e o seu valor absoluto, podem ser obtidos, respectivamente, da seguinte forma: > evalc(Re(z));
( 4 a2 ) a 8a 2 2 a +4 a +4
> evalc(Im(z));
a2 2 ( 4 a2 ) a2 + 4 a2 + 4
> evalc(abs(z));
8a a2 2 ( 4 a2 ) ( 4 a2 ) a 4 + 2 2 2 a2 + 4 a + 4 a + 4 a + 4
> simplify(%);
a2 + 4
Minicurso
2. Resolvendo equaes
> restart: Vamos agora considerar equaes algbricas do tipo > eq1:=a*x^2+b*x+c=0;
eq1 := a x2 + b x + c = 0
Podemos resolver esta equao para > sol:=solve(eq1,x);
x:
1 b + b2 4 a c 1 b b2 4 a c sol := , 2 a 2 a
> sol[1];
1 b + b2 4 a c 2 a
> sol[2];
1 b b2 4 a c 2 a
Consideremos algumas equaes mais especficas, dando valores s constantes c : > eq2:=subs(a=1,b=3,c=-4/5,eq1);
a, b e
4 eq2 := x2 + 3 x = 0 5
> sol:=solve(eq2,x);
.246424920, -3.246424920
Minicurso
.246424920, -3.246424920
ou > fsolve(eq2,x);
-3.246424920, .2464249197
Estas duas formas no sempre equivalentes, no entanto. Consideremos, por exemplo, > eq3:=x^3-x^2+1;
eq3 := x3 x2 + 1
> evalf(solve(eq3));
-.7548776662
Para que o comando fsolve possa encontrar tambm razes complexas o argumento complex deve ser dado: > fsolve(eq3=0,x,complex);
eq4 := sin( x ) + x
3 2
> evalf(solve(eq4,x));
.7141134004
> fsolve(eq4);
3.530173727
Minicurso
Portanto, ambos comandos do resultados corretos mas incompletos. O conhecimento do grfico nos d uma indicao da localizao das razes e fsolve pode ser utilizado para determinar os seus valores exatos: > r1:=fsolve(eq4,x,0..2);
r1 := .7141134004
> r2:=fsolve(eq4,x,2..4);
r2 := 3.530173727
> r3:=fsolve(eq4,x,4..6);
r3 := 5.338242169
Inequaes:
Quando uma inequao passada como argumento do solve, o Maple encontra o intervalo que satisfaz a inequao para a varivel contida entre chaves. > solve(x^2+x<2,{x});
{ -2 < x, x < 1 }
Note que quando h mais de uma resposta, o resultado fornecido em conjuntos separados e no deve ser confundido com o caso em que as duas condies de um mesmo conjunto devem ser satisfeitas simultaneamente. > solve(x^2+x>2,{x});
Minicurso
{ x < -2 }, { 1 < x }
Exerccios:
1. Determine todas as razes das seguintes equaes: (a) sin( x ) + sin( 2 x ) x + (b)
1 =0, 2
x 3 ex = 0 ,
5 4 3 2
(c) 3 x 3 x 7 x + 4 x x + 3 =0.
48 x5 + 8 x4 6 x3 + 114 x2 37 x + 18
= ( x + 1 )2
2 sin( 1 x ) = 2 x
5. Resolva para x as seguintes inequaes. Lembrando que <, >, <=, >= e <> (menor, maior, menor-igual, maior-igual, diferente).
(a) (b)
x < x3 3x
x+1 x < 2x 3+x 1 1 5 x+1 x3
(c)
(d)
3 x1 + x <2
Minicurso
10
Minicurso
3. Simplificando expresses
O problema de simplificao de expresses um problema clssico de computao algbrica, e tambm um dos mais difceis. Embora heuristicamente seja fcil ter uma noo sobre o que a forma mais simples de uma expresso, quando se trata de traduzir este procedimento em termos de algoritmos, formidveis dificuldades de programao aparecem. Em Maple h certos comandos destinados a simplificao de expresses. Como veremos nas Sees seguintes, cabe ao usurio decidir qual comando de simplificao utilizar em cada momento. simplify tentar simplificar a expresso matemtica. expand, factor e combine so comandos mutuamente complementares. expand abre os parnteses executando as propriedades distributivas. factor e combine tentam combinar os termos de modo a agrupar as expresses. normal transforma funes racionais para suas formas normais. O comando simplify tenta simplificar uma expresso matemtica dada aplicando vrias regras de transformao. Por ser um comando geral de simplificao, a sua utilizao sempre a primeira tentativa em tornar a expresso mais simples. Pode ser que no faa exatamente a mudana desejada pelo usurio e neste caso outros comandos devero ser tentados.
> diff(x/(1-x^2),x$3);
48
x2 ( 1 x2 )
3
6 ( 1 x2 )
2
48 x4 ( 1 x2 )
4
> simplify(%);
6 x2 + x4 + 1 ( 1 + x2 )
4
Expresses contendo trigonometria, potncia e logaritmos simplificadas com suas respectivas propiedades de manipulao.
tambm
podem
ser
> sin(theta)^2+cos(theta)^2=simplify(sin(theta)^2+cos(theta)^2);
sin( )2 + cos( )2 = 1
O comando factor executa o processo inverso do expand tentando converter as vrias parcelas de uma soma em um conjunto de produtos
11
Minicurso
> x*(x-2*b)^2*(x+a);
x ( x 2 b )2 ( x + a )
> expand(%);
x4 + x3 a 4 x3 b 4 x2 b a + 4 b2 x2 + 4 x b2 a
> factor(%);
x ( x 2 b )2 ( x + a )
Neste comando a fatorizao feita tanto para o numerador como para o denominador de funes racionais. > factor((x^2+x-6)/(x^2-1));
(x + 3) (x 2) (x 1) (x + 1)
Quando o factor no encontra razes inteiras, o formato original mantido. Entretanto, adicionando um argumento pode ajudar o Maple na fatorizao. > factor(x^2+1);
x2 + 1
> factor(x^2+1,I);
(x I) (x + I)
c 2 y 4 4 c y 3 + ( ( a 2 + 1 ) x 4 + 2 a x 2 b + 2 x c + b2 + 4 ) y 2 4 x y + x 2 + x 3
12
Minicurso
Exerccios:
6. Transforme
x2 + 2 x + 1 +
em
1 x +2x+1
2
( x + 1 )4 + 1 ( x + 1 )2
e vice-versa.
13
Minicurso
4. lgebra linear
Os comandos de lgebra Linear formam um pacote chamado linalg, que deve ser carregado com o comando with: > restart: > with(linalg): Normalmente, terminarmos o comando de carregar pacotes com dois pontos para que as funes do pacote no sejam mostradas. Somente as mensagens de aviso de redefinio de comandos sero mostradas. Isto o que acontece com os comandos norm e trace, que servem primeiramente para calcular norma de polinmios e para correo de procedimentos, respectivamente. Aps o pacote linalg ser carregado, eles passam a calcular norma de vetores e trao de matrizes. Definindo matrizes Os comandos do pacote linalg para definir matrizes so: matrix, entermatrix, genmatrix, randmatrix, band e diag. A ttulo de exemplo, vamos definir duas matrizes e grav-las nas variveis A e B: > A := matrix( [ [1,2,3], [4,5,6] ] );
1 A := 4
2 5
3 6
a B := 1 e
1 d 1
Na primeira matriz, entramos os elementos fornecendo cada linha na forma de uma lista. Neste caso, no necessrio especificar as dimenses da matriz. Na segunda, primeiro estipulamos as dimenses da matriz como sendo 3x2, depois fornecemos todos os elementos numa nica lista. O prprio Maple separa as linhas de acordo com as dimenses da matriz. Podemos tambm fornecer os elementos da matriz interativamente. Primeiro, gravamos uma matriz com dimenso especificada em uma determinada varivel, e depois usamos o comando entermatrix: > C:=matrix(2,2);
C := array( 1 .. 2, 1 .. 2, [ ] )
> entermatrix(C); enter element 1,1 > 1/2; enter element 1,2 > 1/3;
14
Minicurso
enter element 2,1 > 1/5; enter element 2,2 > 1/6;
1 2 1 5
1 3 1 6
Aps a matriz ter sido definida, possvel trocar um elemento. Temos que atribuir o novo valor ao elemento correspondente. Por exemplo, vamos trocar 1/6 por 1/7 na posio <2,2> da matriz C: > C[2,2] := 1/7;
C2, 2 :=
1 7
Vamos verificar que a mudana foi feita com sucesso. Para ver os elementos de uma matriz temos que usar algum comando de avaliao, por exemplo evalm: > evalm(C);
1 2 1 5
1 3 1 7
Quando uma matriz tem uma regra de formao, possvel repassar esta regra como terceiro argumento do comando matrix. Os dois primeiros argumentos devem ser as dimenses da matriz. Suponha que queiramos definir uma matriz de dimenso 3x4, onde o elemento <i,j> dado por > matrix(3, 4, (i,j) -> i/j);
i : j
1 2 3
1 2 1 3 2
1 3 2 3 1
1 4 1 2 3 4
Existem vrias matrizes especiais que so usadas com freqncia em lgebra Linear. Muitas delas tm comandos especficos para ger-las. Por exemplo, as matrizes diagonais quadradas podem ser geradas atravs do comando diag. Neste caso, bem mais econmico entrar os elementos atravs deste comando do que com o comando matrix, pois neste ltimo, teramos que fornecer os zeros fora da diagonal. Vejamos alguns exemplos:
15
Minicurso
> diag(1,2,3,4);
1 0 0 0
0 2 0 0
0 0 3 0
0 0 0 4
> diag(a$3);
a 0 0
0 a 0
0 0 a
O comando a $ 3 gera uma seqncia de trs elementos a , de forma que o ltimo comando dado acima equivalente a diag(a,a,a). Podemos tambm criar matrizes diagonais em bloco. Vamos usar a matriz C, definida acima com o comando entermatrix, para criar a seguinte matriz: > diag(C,C);
1 2 1 5 0 0
1 3 1 7 0 0
0 0 1 2 1 5
0 0 1 3 1 7
Para criar matrizes com valores randmicos o comando randmatrix usado. Como parmetro adicional pode ser usado: sparse, symmetric, unimodular e entries. No exemplo abaixo limitamos o intervalo de escolha aleatria dos nmeros de 0 a 10, quando esta opo omitida os valores podem estar entre -99 e 99. > randmatrix(2,2,entries=rand(0..10));
9 1
4 4
Manipulao de matrizes:
Os principais comandos para manipulao estrutural com matrizes so: addcol, addrow, augment, col, row, coldim, rowdim, concat, copyinto, delcols, delrows, extend, mulrow, mulcol, stack, submatrix, swapcol e swaprow. A maioria dos nomes dos comandos falam por si s. As terminaes ou prefixos row e col se referem a linha e coluna, respectivamente. O comando coldim, por exemplo, fornece o nmero de colunas da matriz. O comando swaprow troca duas linha de uma matriz. Vejamos alguns exemplos. Primeiro vamos criar duas matrizes genricas A e B:
16
Minicurso
A manipulao aritmtica de matrizes, alm dos comandos de soma e ponteciao vistos, abrange os comandos transpose, det, trace, rank e map entre outros. > A:=matrix([[1,2,3],[4,-5,6],[9,8,7]]);
1 A := 4 9
2 3 -5 6 8 7
1 2 3
4 -5 6
9 8 7
200
A matriz inversa de A pode ser obtida da seguinte forma: > B:=evalm(A^(-1));
1 20 -1 10 1 20
17
Minicurso
Exerccio:
8. Considere as seguintes matrizes
1 0 3 -3 A= ,B= 2 -1 3 0 4 1 8 7
Calcule:
2 1 4
( -1 )
A At Bt A B
18
Minicurso
5. Grficos
Grficos em duas dimenses:
Comecemos com alguns exemplos. > g1:=ln(x);
g1 := ln( x )
> plot(g1,x=0..3);
Note que no exemplo acima, o comando plot foi capaz de lidar com a singularidade de ln( x ) em x = 0 . Vejamos outros exemplos: > g2:=(1-x)/(1+x);
g2 :=
1x 1+x
> plot(g2,x=-2..0);
Neste caso, para fazer com que o grfico seja legvel, devemos limitar os valores da ordenada prximo singularidade:
19
Minicurso
> plot(g2,x=-2..0,y=-20..20);
> plot(tan(x),x=-Pi..Pi,-10..10);
Podemos esboar grficos de vrias funes simultaneamente. Por exemplo: > g3:=exp(-x^2)*cos(8*x);
g3 := e
2 ( x )
cos( 8 x )
> plot(g3,x=-Pi..Pi);
20
Minicurso
Podemos traar este mesmo grfico com sua envoltria: > plot({g3,exp(-x^2),-exp(-x^2)},x=-Pi..Pi);
21
Minicurso
g4 := x + 30 sin( x )
> plot(g4,x=0..30);
No caso acima, o nmero de pontos de default (50), no foi suficiente. Devemos ento usar a opo numpoints > plot(g4,x=0..300,numpoints=100);
22
Minicurso
fx := t cos( t ) fy := t sin( t )
> plot([fx,fy,t=0..10]);
23
Minicurso
> plot([sin(t)/t,t,t=-Pi..Pi],coords=polar);
> plot([sin(t)/t,t,t=-2*Pi..2*Pi],coords=polar);
> plot([sin(t)/t,t,t=-3*Pi..3*Pi],coords=polar);
Se no especificarmos coords=polar o grfico acima apareceria em forma simplesmente paramtrica: > plot([sin(t)/t,t,t=-4*Pi..10*Pi]);
24
Minicurso
-1 F := 1 -1
x < -1 x1 otherwise
> plot(F,x=-3..3);
> plot(F,x=-3..3,-2..2);
25
Minicurso
> G:=int(F,x);
2 x G := x 2x
x -1 x1 1<x
> plot(G,x=-2..2);
Grficos em 3D:
> with(plots): > sphereplot(1, theta=0..Pi, phi=0..3*Pi/2, scaling=constrained);
> g1:=sphereplot(5,theta=0..Pi,phi=-Pi..Pi):
26
Minicurso
Para ver um dos grficos isoladamente, basta avaliar a varivel onde o grfico foi guardado. Por exemplo, para ver o cilindro: > g2;
f1 := x3 + y3
f2 := 10 x y
> plot3d({f1,f2},x=-2..2,y=-2..2,axes=boxed);
27
Minicurso
Grficos simultneos:
Podemos exibir grficos simultaneamente em duas ou trs dimenses: > h1:=sin(x); h2:=cos(x);
h1 := sin( x ) h2 := cos( x )
> plot([h1,h2],x=-Pi..Pi,color=[blue,red]);
28
Minicurso
Exerccios:
9. Plote a funo x
sin( t ) d t 10. O seno integral Si definido como Si( x ) = . Plote o seno integral no t 0
intervalo (0,10), calcule observao do grfico. 11. Plote a funo x e + ln( 4 x ) no intervalo (0,5). O que voc acha deste grfico?
x x
1 f := 1 + x
29
Minicurso
).
Quando o comando executado com a primeira letra maiscula (Limit), ele assume a forma inerte e nenhum clculo feito. Esta forma muito usada para visualizar a expresso antes que o clculo seja realmente feito com o auxlio do value. > Limit((sqrt(1+x)-1)/x,x=0);
x 0
lim
1+x 1 x
> value(%);
1 2
> Limit(tan(Pi/4+x)^cot(2*x),x=0)=limit(tan(Pi/4+x)^cot(2*x),x=0);
1 + x lim tan x 0 4
cot ( 2 x )
=e
> Limit(x!/x^x,x=infinity)=limit(x!/x^x,x=infinity);
lim
x! =0 xx
O resultado avaliado simbolicamente sempre que possvel, mesmo quando a expresso possui variveis desconhecidas. > f:=(x^a-x^(-a))/(x-1/x);
xa x f := 1 x x
( a )
> limit(f,x=1);
a
O limite tambm pode ser calculado com funes multivariveis. Para isso a coordenada em que se quer calcular o limite deve ser especificada da forma {x=x0,y=y0,...}.
30
Minicurso
1 quando x 0 o Maple no encontra x2 1 dificuldade de dizer que , porm para a funo veja o resultado: x
Quando queremos calcular o limite da funo > Limit(1/x^2,x=0)=limit(1/x^2,x=0);
x 0
lim
1 = x2
> Limit(1/x,x=0)=limit(1/x,x=0);
x 0
lim
1 = undefined x
O motivo deste resultado que o Maple reconhece que o limite desta funo para este valor depende da direo de aproximao. > Limit(1/x,x=0,left)=limit(1/x,x=0,left);
x 0-
lim
1 = x
> Limit(1/x,x=0,right)=limit(1/x,x=0,right);
x 0+
lim
1 = x
Para representar somatrio usa-se o comando sum: o primeiro parmetro representa a funo e o segundo contm o intervalo da varivel do somatrio. Assim como no limite este comando tambm possui a sua forma inerte. > Sum(1/x^n,n=1..5);
n=1
1 xn
> value(%);
1 1 1 1 1 + 2+ 3+ 4+ 5 x x x x x
Se a varivel j possui um valor previamente associado ento esta varivel deve estar entre aspas simples (') e o todo primeiro parmetro tambm.
31
Minicurso
> z:=10;
z := 10
> Sum(1/z^3,z=1..5)=sum(1/z^3,z=1..5); Error, (in sum) summation variable previously assigned, second argument evaluates to 10 = 1 .. 5 > Sum('1/z^3','z'=1..5)=sum('1/z^3','z'=1..5);
z=1
1 256103 = z 3 216000
Quando se desejar fazer um somatrio infinito basta especificar no intervalo. > Sum(1/2^n,n=1..infinity)=sum(1/2^n,n=1..infinity);
n=1
1 =1 2n
Diferenciao:
Esta seo trata dos comandos relacionados ao clculo de derivadas. O comando que calcula a derivada o diff. Funes definidas por equaes tambm podem ser derivadas pelo comando implicitdiff. O operador relacionado com a derivada a letra d maiscula (D). Para o comando de derivada deve-se passar a funo e a varivel de derivao como argumentos tanto para a forma normal como para a forma inerte. > restart; > Diff(x^3+x^2+x,x);
3 2 (x + x + x) x
> value(%);
3 x2 + 2 x + 1
> Diff(x^3+x^2+x,x,x)=diff(x^3+x^2+x,x,x);
2 x
2
( x3 + x2 + x ) = 6 x + 2
Para derivadas de ordem superiores a dois convm utilizar o operador dlar ($) responsvel pelas repeties.
32
Minicurso
> Diff(x^3+x^2+x,x$3)=diff(x^3+x^2+x,x$3);
3 3 2 (x + x + x) = 6 x 3
Obviamente o Maple conhece todas as regras de derivao como regra da cadeia, regra do produto e da diviso de derivadas. > Diff(sin(cos(x)),x)=diff(sin(cos(x)),x);
f( g( x ) ) = D( f )( g( x ) ) g( x ) x x
possvel derivar em funo de qualquer varivel da epresso. > Diff((x^2+y^3)^4,x,y)=diff((x^2+y^3)^4,x,y);
4 2 2 ( x2 + y3 ) = 72 ( x2 + y3 ) x y2 y x
Para derivadas de funes definidas implicitamente poderia ser feito o seguinte procedimento: > diff(x^2+y(x)^2=1,x);
y( x ) 2 x + 2 y( x ) =0 x
> solve(%,diff(y(x),x));
x y( x )
x y
33
Minicurso
cos
> D(sin@cos);
cos
(2)
sin
Quando a funo tem vrios parmetros devemos colocar entre colchetes o nmero correspondente varivel sobre a qual se deseja derivar. > f:=(x,y)->sin(x)+cos(y)+sin(x*y);
( x, y ) cos( x ) + cos( x y ) y
> D[2](f);
( x, y ) sin( y ) + cos( x y ) x
Podemos, ainda, passar novos valores a serem substitudos na expresso do resultado. > D[2](f)(alpha,beta);
sin( ) + cos( )
Integrao:
Do ponto de vista matemtico, a integrao simblica mais complexa do que a derivao pois no h um mtodo nico que resolva todas as integrais. Existem regras de integrao capazes de reduzir expresses em formas de integrais conhecidas ou tabeladas. O Maple possui um extenso acervo de soluo algbrica de integrais, mas certamente no resolve toda aquelas existentes na matemtica. Quando encontrarmos uma dessas possvel encontrar a sua soluo numrica. Para fazer uma integrao simblica o comando utilizado o int sendo que, assim como nos comandos vistos neste captulo, quando a primeira letra maiscula, o comando assume a sua forma inerte. > Int(x^2+x^3,x);
2 3 x + x d x
> value(%);
34
Minicurso
1 3 1 4 x + x 3 4
> Int(x^2+x^3,x=a..b)=int(x^2+x^3,x=a..b);
1 1 1 1 x2 + x3 dx = b3 a 3 + b4 a 4 3 3 4 4 a
Para fazer a integral numrica, dos limites devem estar definidos > Int(x^2+x^3,x=2..3)=int(x^2+x^3,x=2..3);
271 x2 + x3 d x = 12 2
O Maple no encontra dificuldade quando o integrando possui uma descontinuidade no intervalo de integrao. > f:=cos(x)/sqrt(1-sin(x));
f :=
cos( x ) 1 sin( x )
> plot(f,x=0..2*Pi,discont=true,color=black);
> Int(f,x=0..2*Pi)=int(f,x=0..2*Pi);
cos( x ) dx = 0 1 sin( x )
O Maple reconhece a funo degrau (Heaviside) e a funo delta de Dirac (Dirac) durante o processo de integrao
35
Minicurso
> Int(g(x)*Heaviside(x-2),x=0..5)=int(g(x)*Heaviside(x-2),x=0..5);
g( x ) Heaviside( x 2 ) d x = g( x ) d x 0 2
> Diff(Heaviside(x),x)=diff(Heaviside(x),x);
Heaviside( x ) = Dirac( x ) x
>Int(sin(x)*Dirac(x-Pi/4),x=-infinity..infinity)=int(sin(x)*Dirac(x-Pi/4),x=infinity..infinity);
1 1 sin( x ) Dirac x dx = 2 4 2
Para representar integrais mltiplas necessrio colocar um comando de integral dentro de outro. > Int(Int(x^2,x=0..2),x=0..3)=int(int(x^2,x=0..2),x=0..3);
x2 d x d x = 8 0 0
Freqentemente encontramos integrais que no possuem soluo algbrica. Quando o Maple no consegue encontrar uma soluo algbrica retornada a integral na forma inerte. Para encontrar a soluo numrica utiliza-se o comando evalf. > int(sin(1/x^3),x=1..2);
sin 1 d x x3 1
> evalf(%);
.3548334332
O Pacote student, ferramentas de clculo:
O pacote student possui ferramentas teis para o aluno iniciante de clculo pois demonstram conceitos elementares e fundamentais para o seu aprendizado. Ele deve ser carregado com o comando with, que seguido de ponto-e-vrgula imprime todos os seus comandos. > with(student);
36
Minicurso
[ D, Diff, Doubleint, Int, Limit , Lineint , Product, Sum, Tripleint , changevar, completesquare, distance , equate, integrand , intercept, intparts , leftbox, leftsum, makeproc, middlebox, middlesum , midpoint , powsubs, rightbox, rightsum, showtangent, simpson, slope, summand , trapezoid ]
O exemplo abaixo soluciona uma integral pelo mtodo de substituio de varivel que o Maple no consegue resolver sem esta manipulao. Porm outras integrais podem ser resolvidas com este comando para mostrar o procedimento do mtodo.
> p3 := value(p2);
1 p3 := u 6 6
> p4 := subs(u=sin(x), p3);
1 p4 := sin( x )6 6
> p1 = p4 + C;
inter := ..
> Doubleint(exp(-x^2-y^2),x=inter,y=inter);
( x2 y2 ) e dx dy
37
Minicurso
> value(%);
Para mostrar como uma aproximao numrica de integrais opera podemos utilizar os comandos leftbox, middlebox ou rightbox. Com eles pode-se visualizar os retngulos representando as reas que sero somadas na aproximao.
> leftbox(sqrt(x),x=1..3,8);
Clculo Vetorial:
As operaes gradiente, divergente, rotacional e laplaciano esto programadas no Maple como as funes grad, diverge, curl e laplacian. Estes comandos devem ter no mnimo dois argumentos, onde o primeiro uma funo, ou melhor, uma expresso que depende de certas variveis, e o segundo uma lista de variveis que representam as coordenadas. O sistema de coordenadas default o sistema cartesiano. Vamos dar um apelido para a expresso f(x,y,z), e calcular o gradiente, divergente o laplaciano desta funo: > restart;with(linalg): Warning, the protected names norm and trace have been redefined and unprotected > alias(f=f(x,y,z));
f
> v:=[x,y,z]; # lista das coordenadas
v := [ x, y, z ]
38
Minicurso
> grad(f,v);
f, f, f x y z
> diverge(%,v);
2 2 2 f + f + f x 2 y 2 z 2
> laplacian(f,v);
2 2 2 f + f + f x 2 y 2 z 2
O rotacional deve ser aplicado a uma funo vetorial. Assim, vamos dar apelidos para g(x,y,z) e h(x,y,z): > alias(g=g(x,y,z),h=h(x,y,z));
f, g, h
> curl([f,g,h],v);
h g , f h , g f z z x x y y
Podemos confirmar que o divergente do rotacional zero: > diverge(%,v);
0
e, da mesma forma, confirmar que o rotacional do gradiente o vetor nulo: > curl(grad(f,v), v);
[ 0, 0, 0 ]
Todas estas operaes podem ser feitas em sistemas de coordenadas no-cartesianas. Vamos ver um exemplo de clculo de gradiente no sistema de coordenadas esfricas: > f1 := r^2*sin(theta)*cos(phi);
f1 := r 2 sin( ) cos( )
> v:= [r, theta, phi];
39
Minicurso
v := [ r, , ]
> grad(f1, v, coords=spherical);
40
Minicurso
Exerccios
13. Calcular a derivada da funo ponto 3.
f( x ) =
x2 + 2 x + 1 x2 + 3 x
(a) 0
1 1 x2
dx
e ( x ) ln( x ) d x (c) 0
( t ) e (d) 1 4 ( t 1e 0
dt
t)
x 0
sin( x ) x
41
Minicurso
1 x
(c) lim
x 0
1 cos( x ) x
ln( x ) x
(b) lim
ln( x ) ex
(c) lim
x2 + sin( x ) 2 x2 + cos( 4 x )
42
Minicurso
ANEXO A
Antes de comear a usar o Maple leia esse anexo para facilitar o entendimento do programa.
1 - Para criar uma nova linha de comando: Existe vrias maneiras de se criar isso, com atalho Ctrl- J, no boto [ > ou Insert / Execution Group > After Cursor
2 - Criar uma nova regio de texto: De forma anloga: Ctrl-T, no boto T ou Insert / Text
3 - Ponto e Vrgula e Dois Pontos: Todo fim de comando deve ser finalizado com ; ou com : (para que fique oculto).
4 - Remover todos os clculos da Worksheet: Usando o menu: Edit / Remove Output > From Worksheet
5 - Expandindo ou "Escondendo" todas sees: Usando o menu: View / Expand All Sections (ou Collapse All Sections).
6 - Usando a ajuda:
O Maple possui um sistema de ajuda muito bem organizada e com exemplos para cada comando. Para verificar a ajuda do Maple, HELP>Topic Search ou HELP>Full Text Search, para busca de algum comando ou assunto. Assim voc encontrar muitos exemplos de notaes e comandos do maple.
Exemplo de cores utilizadas pelo Maple: Aquamarine black blue navy coral cyan brown gold green gray grey khaki Magenta maroon orange pink plum red sienna tan turquoise violet wheat white Yellow
43
Minicurso
ANEXO B
Aqui esto alguns exemplos de exerccios, que esto resolvidos para serem consultados e alguns tpicos de matria em que no foram apresentadas no curso por ser um curso rpido.
2x+4y2z=8
x+2y+z=6 3x+y3z=2
> restart: Resolvendo: > with(linalg): Warning, the protected names norm and trace have been redefined and unprotected > A:=matrix([[2,4,-2],[1,2,1],[3,1,-3]]); # Definindo matriz
2 1 A := 3
4 2 1
-2 1 -3
8 B := 6 2
> AB:=augment(A,B); # Fazendo a matriz aumentada
2 AB := 1 3
4 2 1
-2 8 1 6 -3 2
44
Minicurso
1 1 C := 3
2 2 1
-1 4 1 6 -3 2
1 0 C := 3
2 0 1
-1 4 2 2 -3 2
1 0 C := 0
2 -1 4 0 2 2 -5 0 -10
1 0 C := 0
2 -1 4 -5 0 -10 0 2 2
1 0 C := 0
2 -1 4 -5 0 -10 0 1 1
1 0 C := 0
2 1 0
-1 4 0 2 1 1
1 0 C := 0
2 1 0
0 0 1
5 2 1
45
Minicurso
1 0 C := 0
0 1 0
0 0 1
1 2 1
x3 := 1.
> x2:=evalf(C[2,4]-C[2,3]*x3);
x2 := 2.
> x1:=evalf(C[1,4]-C[1,3]*x3-C[1,2]*x2);
x1 := 1.
Podemos calcular diretamente atravs do Maple e assim conferir: > AA:=augment(A,B);
2 1 AA := 3
4 2 1
-2 8 1 6 -3 2
> BB:=gausselim(AA);
2 0 BB := 0
4 -2 8 -5 0 -10 0 2 2
> Resp2:=backsub(BB);
Resp2 := [ 1, 2, 1 ]
Logo verificamos que est correto o clculo.
46
Minicurso
Soma de Riemann:
Nessa lio, ns iremos ver exemplos da Soma de Riemann e mostrar a relao com a integral definida. > restart: with(student): with(plots): Warning, the name changecoords has been redefined Seja f(x) =
f := x x2 + 3
Fazendo o grfico, temos: > plot(f(x), x = 0..4, color = blue);
Agora vamos analisar o grfico da funo com um preenchimento de vrios retngulos inscritos. > leftbox(f(x), x = 0..4, 16, color = blue, shading = magenta);
47
Minicurso
Pelo somatrio das reas dos retngulos, teremos uma aproximao da rea dessa funo no intervalo x=(0,4) > leftsum(f(x), x = 0..4, 16);
15 1 1 2 i 3 + 4 i= 0 16
> evalf(%);
31.37500000
Assim obtivemos a chamada Soma de Riemann, que nos deu uma aproximao razovel da rea. Agora iremos efetuar o clculo com uma subdiviso de 128 retngulos, ou seja, teremos uma boa aproximao: > leftbox(f(x), x = 0..4, 128, color = blue, shading = magenta);
> evalf(%);
33.08398438
Agora vamos analisar o resultado com o valor exato calculado pela integral. > Int(f(x),x)=int(f(x),x);
x2 + 3 d x = 1 x3 + 3 x 3
48
Minicurso
100 3
> evalf(%);
33.33333333
Vemos ento que a partir do momento que aumentamos o nmero de subdivises, diminumos o erro com uma preciso tal qual possamos desejar.
49
Minicurso
+2
Encontrar a rea da regio de interseo entre as duas curvas em x = 0 at x = 6 > restart: > with(plots): Warning, the name changecoords has been redefined > g:= x -> x^2 + 2; > f:= x -> 2*x + 5;
g := x x2 + 2
f := x 2 x + 5
> a:= plot(g(x), x = -2..6, color = red): > b:= plot(f(x), x = -2..6, color = blue): > display({a,b});
Ns precisamos encontrar os pontos de interseo dos dois grficos: > solve(x^2 + 2 - 2*x - 5, x);
3, -1
Logo, a rea da regio delimitada pelos grficos variando de x = 0 at x = 6 :
50
Minicurso
9
> int(x^2 + 2 - 2*x - 5, x = 3..6);
27
Portanto a rea 9 + 27 = 36 U.A (Unidade rea)
51
Minicurso
> p3 := value(p2);
1 p3 := u 6 6
> p4 := subs(u=sin(x), p3); # Substituindo novamente na equao
1 p4 := sin( x )6 6
> p1 = p4 + C;
52
Minicurso
> p3 := value(p2);
1 p3 := u 5 5
> p4 := subs( u=tan(x), p3);
p4 :=
1 tan( x )5 5
> p1 = p4 + C;
53
Minicurso
54
Minicurso
> with(plots,odeplot);
[ odeplot ]
> eq:=diff(y(x),x$2)+3*diff(y(x),x)+2*y(x)=exp(x);
2 x y( x ) eq := y( x ) +3 + 2 y( x ) = e 2 x x
> inits:=y(1)=2, D(y)(1)=4; > p:=dsolve({eq,inits},y(x),type=numeric);
inits := y( 1 ) = 2, D( y )( 1 ) = 4
p := proc (rkf45_x) ... end proc
> odeplot(p,[x,y(x)],-2..10);
55
Minicurso
p(0);
x = 0, y( x ) = -19.4207642746757437, y( x ) = 57.3932551267091427 x
56
Minicurso
Exemplo 2:
Order := 8
> eq := diff(y(x),x,x)+x*diff(y(x),x)+(2*x^2-1)*y=0;
2 + ( 2 x2 1 ) y = 0 eq := y( x ) +x x y( x ) x 2
> serie := dsolve( {eq}, y(x), type=series);
1 5 1 1 serie := y( x ) = y( 0 ) + D( y )( 0 ) x + y( 0 ) x2 y( 0 ) x4 D( y )( 0 ) x5 y( 0 ) x6 + 2 24 10 80 1 D( y )( 0 ) x7 + O( x8 ) 105
> D(y)(0):=a[1];
D( y )( 0 ) := a1
> serie;
1 5 1 1 1 a x7 + O( x8 ) y( x ) = y( 0 ) + a1 x + y( 0 ) x2 y( 0 ) x4 a1 x5 y( 0 ) x6 + 2 24 10 80 105 1
> y(0):=a[0];
y( 0 ) := a0
> eq:=serie;
1 5 1 1 1 eq := y( x ) = a0 + a1 x + a0 x2 a0 x4 a1 x5 a0 x6 + a x7 + O( x8 ) 2 24 10 80 105 1
> eq:=convert(eq,polynom);
1 5 1 1 1 eq := y( x ) = a0 + a1 x + a0 x2 a0 x4 a1 x5 a0 x6 + a x7 2 24 10 80 105 1
> eq:=collect(eq,a[1]);
1 5 1 7 1 1 5 6 2 4 eq := y( x ) = 10 x + x + 105 x a1 + a0 80 a0 x + 2 a0 x 24 a0 x
57
Minicurso
> eq:=collect(eq,a[0]);
1 6 1 2 5 4 1 x5 + x + 1 x7 a eq := y( x ) = 1 1 80 x + 2 x 24 x a0 + 10 105
Exemplo 3: Circuito LC
2 1 q q + =0 t 2 LC
Condies iniciais: L=1H C=1F q(0) = 1
q'(0) = 0 A
2 q( t ) Ed := q( t ) + =0 2 t LC
> Q:=dsolve({Ed,q(0)=10^(-6),D(q)(0)=0});
Q := q( t ) =
1 LC t cos 1000000 LC
> L:=1;C:=1;
L := 1
C := 1
> Q;
q( t ) =
1 cos( t ) 1000000
58
Minicurso
59
Minicurso
Referncias
Maplesoft - www.maplesoft.com
Fernando Deeke Sasse - www.geocities.com/fsasse Departamento de Matemtica Universidade Estadual de Santa Catarina (UDESC)
desonroso para os homens sbios desperdiarem seu tempo como escravos no trabalho de clculo, que poderia ser relegado, com segurana, a qualquer um que usasse uma mquina. (Gottfried Wilhelm Leibnitz , 1646-1716)
Gostaramos de agradecer ao pessoal do DEE (Departamento de Engenharia Eltrica) e ao professor Fernando Deeke Sasse do DMAT (Departamento de Matemtica) que nos incentivou a realizao deste curso.
60
Minicurso
cpompermaier@yahoo.com.br
**
61