Escolar Documentos
Profissional Documentos
Cultura Documentos
wxMaxima:
1
Sumário
2 wxMaxima e Cálculo 38
2.1 Limites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.2 Derivadas no wxMaxima . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.2.1 Comandos para diferenciar uma função no wxMaxima: . . . . . . . . . . . . . 40
2.2.2 Derivadas parciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.3 Integrais no wxMaxima . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.3.1 Integrais múltiplas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2
3 Atividades: 45
3.1 Limites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.2 Derivadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.3 Integrais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3
Capítulo 1
1.1 Introdução
Operadores Função
+ É o operador de soma
- É o operador de subtração
* É o operador de multiplicação
/ É o operador de divisão
É o operador de exponenciação
! É o operador de fatoração
Toda entrada de comando no wxMaxima vem acompanhada do símbolo (%iN), sendo o i do inglês
in (entrada ) e o N representa o número de identicação da entrada, por exemplo a 1a linha sempre
vem rotulada com o símbolo (%i1).
1 Software livre, segundo a denição criada pela Free Software Foundation, é qualquer programa computacional
que pode ser usado, copiado, estudado e redistribuído sem restrição.
O conceito de software livre se opõe ao conceito de software restritivo, mas não ao software que é vendido almejando
o lucro(software comercial).
4
As saídas vem acompanhadas do símbolo (%oN) no qual o o é do inglês out (saída ) e o N é o número
que identica a saída.
Caso deseje trabalhar com números decimais, outra opção seria usar o comando
oat(expressão);
(%i11) 11/3;
5
11
(%o11)
3
(%i12) float(%);
(%o12) 3.666666666666667
(%i17) x:4;
(%o17) 4
(%i18) y:%pi;
(%o18) π
(%o19) f (x) := x2 + 1
(%i20) g(y):=sin(y);
6
(%o20) g (y) := sin (y)
Como já declaramos f(x) e g(y), e atribuimos valores a `x' e a `y', podemos cal-
cular:
(%i21) f(x);
(%o21) 17
(%i22) g(y);
(%o22) 0
(%i1) a(theta):=theta^2+2*theta+1;
(%o1) a (θ) := θ2 + 2 θ + 1
(%i2) a(1);
(%o2) 4
(%i3) a(2);
(%o3) 9
Funções Trigonométricas:
7
1.5 Manipulação de expressões matemáticas :
Como foi citado na introdução desta apostila, uma grande vantagem do wxMaxima é
nos permitir a manipulação de expressões complicadas. Seguem abaixo alguns exem-
plos simples nos quais ele se mostra muito útil:
(%i1) cos(x)^3;
(%o1) cos (x)3
(%i2) trigreduce(%);
cos (3 x) + 3 cos (x)
(%o2)
4
(%i3) cos(x)^2+sin(x)^2+2;
(%o3) sin (x)2 + cos (x)2 + 2
(%i4) trigsimp(%);
(%o4) 3
(%i5) trigreduce(%o3);
cos (2 x) + 1 1 − cos (2 x)
(%o5) + +2
2 2
(%i6) ratsimp(%);
(%o6) 3
(%i7) cos(2*theta);
(%o7) cos (2 θ)
(%i8) trigexpand(%);
(%o8) cos (θ)2 − sin (θ)2
(%i9) factor(a(theta));
(%o9) (θ + 1)2
8
1.6 Sistemas de equações lineares:
(%i38) sis:[2*x+y=5,3*x-2*y=4],[x,y];
(%o38) [y + 2 x = 5, 3 x − 2 y = 4]
(%i39) solve(sis);
(%o39) [[y = 1, x = 2]]
Exercício 1:
Em um cinema o valor do ingresso para crianças é R$ 1,50 e para adultos é R$ 4,00.
Num certo dia frequentaram o local 2200 pessoas e o total arrecadado foi R$ 5.050,00.
Quais os números de adultos e crianças que assistiram lmes?
9
(%i40) M:augcoefmatrix(sis,[x,y]);
2 1 −5
(%o40)
3 −2 −4
(%i41) triangularize(M);
2 1 −5
(%o41)
0 −7 7
Utilizando a ferramenta de plotagem gráca do wxMaxima, podemos fazer uma in-
terpretação geométrica do conjunto solução de um sistema, escrevendo cada equação
deste, em função de uma variável.
(%i5) plot2d([5-2*x,(-4+3*x)/2],[x,-0.5,6],[y,-0.5,6]);
(%i1) sis1:[-2*x-y=-5,-8*x-4*y=-25],[x,y];
(%o1) [−y − 2 x = −5, −4 y − 8 x = −25]
(%i2) solve(sis1);
(%o2) []
10
1.6.2 Sistema possível determinado:
--> sis2:[-x-y=-4,-2*x-3*y=-2],[x,y];
(%o1) [−y − x = −4, −3 y − 2 x = −2]
--> solve(sis2);
(%o2) [[y = −6, x = 10]]
(%i1) sis3:[-2*x+4*y=-2,4*x-8*y=4],[x,y];
(%o1) [4 y − 2 x = −2, 4 x − 8 y = 4]
11
A partir das matrizes encontre as equações dos sistemas lineares e de seu resultado:
1 0 0 0 2
2 3 2 10
4 6 4 18 0 1 0 0 3 7 4 2 0 1
0 0 1 0 5 9 2 7 3 5
1 −2 3 5
0 0 0 1 −9
Logo após, diga se os sistemas são S.I(Sistema impossível), S.P.D(Sistema possível e
determinado), ou se é S.P.I(Sistema possível e indeterminado).
Resolvendo :
(%i1) linsolve([2*x+3*y+2*z=10, 4*x+6*y+4*z=18, 1*x-2*y+3*z=5], [x,y,z]);
(%o1) []
12
1.7 Matrizes:
Temos que matriz é a disposição de elementos na forma de tabela na qual uma matriz
A, m x n (m por n), nos leva a distribuição dos termos em m linhas e n colunas,
podendo ser representada da seguinte maneira:
a11 a12 a13 a14
A = a21 a22 a23 a24
a31 a32 a33 a34
No wxMaxima as matrizes podem ser inseridas de diferentes formas, dentre elas te-
mos as linhas de comandos.
Uma das maneiras de inserir matrizes é através do comando: matrix(); , na qual
os argumentos, linhas e colunas com seus respectivos elementos, são inseridos entre
os parênteses e separados por colchetes e vírgulas. É importante a atribuição de
um nome à matriz para posteriormente facilitar as operações com as mesma. Segue
abaixo um exemplo:
(%i1) A:matrix([2,4,1],[3,7,2],[9,7,5]);
2 4 1
(%o1) 3 7 2
9 7 5
O comando entermatrix(m,n), retorna uma matriz m por n de forma interativa,
sendo que se m é igual a n o wxMaxima pergunta pelo tipo de matriz (diagonal,
simétrica, antissimétrica ou genérica) e por cada elemento. Mas se m for diferente
de n o wxMaxima pergunta por cada elemento. Seguem os exemplos abaixo:
(%i1) entermatrix(2,2);
Isthematrix1.Diagonal2.Symmetric3.Antisymmetric4.GeneralAnswer1, 2, 3or4 :
1; Row1Column1
: 4; Row2Column2 : 2; M atrixentered.
4 0
(%o1)
0 2
(%i1) entermatrix(2,3);
Row1Column1 : 2; Row1Column2 : 3; Row1Column3 : 5; Row2Column1 : 1; Row2Column2 :
2; Row2Column3
: 0;M atrixentered.
2 3 5
(%o1)
1 2 0
13
Outra maneira de escrever uma matriz é denindo-a em função das posições dos
elementos da mesma, na qual determinamos a regra que permite denir um ele-
mento e a dimensão da matriz desejada. No exemplo abaixo, i representa o número
da linha e j o da coluna:
(%i9) B[i,j]:=i+3;
(%o9) Bi,j := i + 3
(%i10) genmatrix(B,3,3);
4 4 4
(%o10) 5 5 5
6 6 6
O wxMaxima nos permite carregar pacotes com funções extras, na qual esses são
carregados do diretório de instalação do programa. O pacote `gaal' nos permite ge-
rar uma matriz de maneira aleatória com elementos de −5 a 5 utilizando a função
'randi();'. Segue o exemplo:
(%i8) load("gaal")$
(%o8)
(%i9) randi(3,2);
−3 −3
(%o9) −1 0
−1 −4
Métodos de escalonamento com o wxMaxima:
(%i2) A:matrix([2,5,4],[5,2,1],[9,0,6]);
14
2 5 4
(%o2) 5 2 1
9 0 6
(%i3) echelon(A);
1 0 23
(%o3) 0 1 − 7
6
0 0 1
Outro comando que realiza escalonamento é o `triangularize();'. Entretanto esse
comando que também realiza a eliminação de Gaussian, não normaliza o elemento
líder não nulo em cada linha.
(%i5) triangularize(A);
9 0 6
(%o5) 0 18 −21
0 0 153
O pacote `gaal' também nos permite escalonar matrizes passo a passo com a função
`escalona();', nos retornando as operações entre as linhas como segue no exemplo
abaixo:
(%i1) load("gaal");
(%o1) C : /P ROGRA 2/M AXIM A 1.0/share/maxima/5.26.0/share/gaal.mac
(%i2) M:matrix([2,5,3],[9,1,6],[8,2,5]);
2 5 3
(%o2) 9 1 6
8 2 5
(%i3) escalona(M);
2 5 3
1
9 1 6 1a.eliminao : linha1 − − > ∗ linha1
8 2 5 2
5 3
1 2 2
9 1 6 Continua?(sim = 1; /no = 2; )1; linha2−− > linha2+(−9)∗linha1linha3−
8 2 5
− > linha3 + (−8) ∗ linha1
15
5 3
1 2 2
0 − 43 − 15 Continua?(sim = 1; /no = 2; )1; 2a.eliminao : linha2 − − >
2 2
0 −18 −7
2
− ∗ linha2
43
5 3
1 2 2
15 5
0 1
43
Continua?(sim = 1; /no = 2; )1; linha1 − − > linha1 + (− ) ∗
0 −18 −7 2
linha2linha3 − − > linha3 + (18) ∗ linha2
1 0 27
0 1 15 Continua?(sim = 1; /no = 2; )1; 3a.eliminao : linha3 − − > − 43 ∗
43
43
0 0 − 31 31
43
linha3
27
1 0 43
0 1 15 Continua?(sim = 1; /no = 2; )1; linha1 − − > linha1 + (− 27 ) ∗
43
0 0 1 43
15
linha3linha2 − − > linha2 + (− ) ∗ linha3
43
1 0 0
0 1 0 Continua?(sim = 1; /no = 2; )2;
0 0 1
1 0 0
(%o3) 0 1 0
0 0 1
(%i1) A:matrix([2,5],[3,6]);
2 5
(%o1)
3 6
16
(%i2) B:matrix([3,5],[1,0]);
3 5
(%o2)
1 0
(%i3) A+B;
5 10
(%o3)
4 6
(%i4) A-B;
−1 0
(%o4)
2 6
O operador que realiza a multiplicação entre matrizes, ou produto não comutativo,
é o ponto, '.'. É importante lembrar que ao se trabalhar com matrizes o operador
de multiplicação '*' é usado ao se multiplicar um escalar pela matriz, pois quando
usado entre matrizes retorna o produto comutativo, multiplicação de elemento por
elemento. Seguem exemplos:
(%i1) A:matrix([2,4,5,1],[5,7,4,1],[9,1,5,7],[3,2,5,0]);
2 4 5 1
5 7 4 1
(%o1)
9 1 5 7
3 2 5 0
(%i2) B:matrix([2,5,3,4],[9,0,6,4],[5,6,3,1],[0,0,2,5]);
2 5 3 4
9 0 6 4
(%o2)
5 6 3 1
0 0 2 5
Observe os resultados com o uso dos diferentes operadores:
(%i3) A.B;
65 40 47 34
93 49 71 57
(%o3)
52
75 62 80
49 45 36 25
17
(%i15) A*B;
4 20 15 4
45 0 24 4
(%o15)
45
6 15 7
0 0 10 0
Multiplicação por escalar:
(%i4) 2*A;
4 8 10 2
10 14 8 2
(%o4) 18 2 10 14
6 4 10 0
(%i8) X:matrix([2,5],[6,9]);
2 5
(%o8)
6 9
(%i9) sqrt(2)*X;
3 √
2 2 5 √2
(%o9) 3
3 22 9 2
(%i10) 2.33*X;
4.66 11.65
(%o10)
13.98 20.97
Potência de matrizes:
(%i11) X^3;
8 125
(%o11)
216 729
Como já visto, outro pacote que nos fornece funções extras é o 'nchrpl', que nos
retorna a função 'mattrace();', que calcula o traço da matriz, ou seja, a soma dos
elementos da diagonal principal. Segue o exemplo abaixo:
Primeiro carregamos o pacote:
18
(%i9) load("nchrpl");
(%o9) C : /P ROGRA 2/M AXIM A 1.0/share/maxima/5.26.0/share/matrix/nchrpl.mac
(%i10) f:matrix([2,5,1],[1,7,5],[0,7,2]);
2 5 1
(%o10) 1 7 5
0 7 2
(%i11) mattrace(f);
(%o11) 11
(%i7) N:matrix([3,6,4,1],[9,7,4,1],[0,9,3,1],[8,2,3,1]);
3 6 4 1
9 7 4 1
(%o7)
0 9 3 1
8 2 3 1
(%i8) determinant(N);
(%o8) 50
Uma matriz identidade é aquela que tem todos elementos da diagonal principal 1,
podendo ser facilmente construida com o comando 'ident(n);', na qual n é a dimensão
da matriz:
(%i3) ident(3);
1 0 0
(%o3) 0 1 0
0 0 1
19
Para gerar uma matriz nula, em que todos elementos são zero, utilizamos o co-
mando 'zeromatrix(m,n);', na qual m e n representa o numero de linhas e colunas.
(%i4) zeromatrix(2,3);
0 0 0
(%o4)
0 0 0
Uma matriz diagonal é uma matriz quadrada (m = n),onde para todo i 6= j os
elementos são nulos, ou seja, os elementos que não pertencem a diagonal principal.
Esta é construida através do comando 'diagmatrix();'.
(%i5) diagmatrix(3,x/3);
x
3
0 0
(%o5) 0 x 0
3
0 0 x3
A transposta de uma matriz M , de dimensão m x n, representada por M t , é de-
nida como a matriz n x m que surge da permutação das linhas com as colunas de
M . O comando 'transpose();' realiza esta permutação.
(%i6) M:matrix([2,4,6]);
(%o6)
2 4 6
(%i7) transpose(M);
2
(%o7) 4
6
Adjunta é a matriz transposta da matriz de cofatores de M . O comando 'adjoint();'
nos retorna a mesma.
(%i11) M:matrix([3,5,7],[8,2,7],[1,0,9]);
3 5 7
(%o11) 8 2 7
1 0 9
20
(%i12) adjoint(M);
18 −45 21
(%o12) −65 20 35
−2 5 −34
Se temos que A é uma matriz quadrada de ordem n, dizemos que A−1 é inversa
de A se, e somente se: A.A−1 = A−1 .A = I . A matriz inversa é dada pelo comando
'invert();'. Segue o exemplo abaixo:
(%i1) M:matrix([2,4,5],[6,8,2],[2,5,3]);
2 4 5
(%o1) 6 8 2
2 5 3
(%i2) invert(M);
1 13 16
3 42
− 21
(%o2) − 1 − 2
3 21
13
21
1 1 4
3
− 21 − 21
Ainda é possível obtê-la usando a potência:
(%i18) M^^(-1);
1 13
3 42
− 16
21
(%o18) − 13 2
− 21 13
21
1 1 4
3
− 21 − 21
Para trabalhar com vetores no wxMaxima, será necessário uma simples conversão,
por exemplo os vetores: v = 2i + 4j − 2k e u = 3i − j + 5k , serão armazenados de
seguinte forma:
(%i1) v:[2,4,-2];
(%o1) [2, 4, −2]
(%i2) u:[3,-1,5];
21
(%o2) [3, −1, 5]
(%i3) v+u;
(%o3) [5, 3, 3]
(%i4) u-v;
(%o4) [1, −5, 7]
(%i5) 2*u;
(%o5) [6, −2, 10]
(%i6) 3*u-5*v;
(%o6) [−1, −23, 25]
Uma pequena observação que deve ser feita, é que os operadores `∗' e `/' referen-
tes a multiplicação e divisão de vetores, irá retornar apenas a multiplicação e divisão
feita elemento por elemento, logo para o cálculo do produto escalar devemos usar o
ponto `.'.
(%i7) u.v;
(%o7) −8
(%i3) sqrt(3^2+2^2+1^2);
√
(%o3) 14
(%i2) float(%);
22
(%o2) 3.741657386773941
Encontre a norma de v .
v1 = (1, 2), v2 = (1, −2, 1), v3 = (−7, −2, 2) (1.1)
Resolvendo:
(%i1) load(gaal);
(%o1) C : /P ROGRA 1/M AXIM A 2.0/share/maxima/5.25.0/share/gaal.mac
(%i2) v1:matrix([1,2]);
(%o2)
1 2
(%i3) v2:matrix([1,-2,1]);
(%o3)
1 −2 1
(%i4) v3:matrix([-7,-2,2]);
(%o4)
−7 −2 2
(%i5) no(v1);
√
(%o5) 5
(%i6) no(v2);
√
(%o6) 6
(%i7) no(v3);
√
(%o7) 57
23
Sejam u = (2, −1, 3), v = (4, −2, 1) e w = (1, −2, 1). Calcule o que se pede:
a) |u + v|
b) 3 ∗ |v| − |u|
c) 4 ∗ |w| + 2 ∗ |v| − |u|
Resolvendo:
(%i1) load(gaal);
(%o1) C : /P ROGRA 1/M AXIM A 2.0/share/maxima/5.25.0/share/gaal.mac
(%i2) u:matrix([2,-1,3]);
(%o2)
2 −1 3
(%i3) v:matrix([4,-2,1]);
(%o3)
4 −2 1
(%i4) w:matrix([1,-2,1]);
(%o4)
1 −2 1
(%i5) no(u+v);
√
(%o5) 61
(%i6) (3*no(v))-(no(u));
√ √
(%o6) 3 21 − 14
(%i10) 4*no(w)+2*no(v)-no(u);
√ √ √
(%o10) 2 21 − 14 + 4 6
(%i1) load(draw);
24
(%o1) C : /P ROGRA 1/M AXIM A 2.0/share/maxima/5.25.0/share/draw/draw.lisp
(%i2) wxdraw3d(color = red,vector([0,0,1],[1,1,-2]) )\$
(%t2)
É possível também alterar a cor do vetor, mudando a cor RED para a cor dese-
jada, desde que ela esteja na língua inglesa. A posição do vetor no gráco poderá ser
modicada através do primeiro colchete, e o vetor será incluído no segundo colchete.
Outra ferramente bem útil , é incluir vários vetores no mesmo gráco, isso é possível
adicionando dentro dos parenteses o comando `vector([0,0,1],[x,y,z])', com os tama-
nhos desejados.
Para facilitar o cálculo da norma, foi utilizado o pacote GAAL, para utilizá-lo será
necessário também carregá-lo usando o comando`load(gaal)'. Para calcular a norma
do vetor, é bem simples, basta digitar `no(x)' onde x é o vetor. Veja abaixo:
(%i1) load(gaal);
(%o1) C : /P ROGRA 1/M AXIM A 2.0/share/maxima/5.25.0/share/gaal.mac
(%i2) v:matrix([1,2,3]);
(%o2)
1 2 3
(%i3) no(v);
√
(%o3) 14
(%i4) float(%);
(%o4) 3.741657386773941
25
Um vetor unitário é dado por: eu = u
|u|
. No wxMaxima podemos denir como:
(%i12) e_u:u/mag_u;
3 1 5
(%o12) [ √ , − √ , √ ]
35 35 35
O ângulo entre dois vetores é dado por: θ = cos−1 ( |u|.|v|
u.v
). No wxMaxima será
calculado da seguinte forma:
(%i23) load(vect);
(%o23) C : /P ROGRA 1/M AXIM A 2.0/share/maxima/5.25.0/share/vector/vect.mac
(%i24) u~v;
(%o24) − [2, 4, −2] [3, −1, 5]
(%i25) express(%);
(%o25) [−18, 16, 14]
(%i21) w:[2,3,1];
(%o21) [2, 3, 1]
26
(%i26) abs(u.express(v~w));
(%o26) 26
(%i1) load(gaal);
(%o1) C : /P ROGRA 1/M AXIM A 2.0/share/maxima/5.25.0/share/gaal.mac
(%i2) v:matrix([1,2,2]);
(%o2)
1 2 2
(%i3) u:matrix([3,-1,2]);
(%o3)
3 −1 2
Logo após estes procedimentos, iremos calcular o produto escalar: 'pe(v,u);' e veto-
rial: 'pv(v,u);'
(%i4) pe(v,u);
(%o4) 5
(%i5) pv(v,u);
(%o5)
6 4 −7
Podemos calcular pelo próprio pacote `gaal' as projeções de dois vetores pelo co-
mando `proj(W,V);'
27
(%i1) w:matrix([1,2,3]);
(%o1)
1 2 3
(%i2) v:matrix([2,-1,0]);
(%o2)
2 −1 0
(%i3) load(gaal);
(%o3) C : /P ROGRA 1/M AXIM A 2.0/share/maxima/5.25.0/share/gaal.mac
(%i4) proj(w,v);
(%o4)
0 0 0
(%i5) proj(v,w);
(%o5)
0 0 0
1. u = (2,2), v = (1,−2)
2. u = (−4,2,0), v = (1,2,3)
3. u = (1,0,−7), v = (2,1,3)
Resolvendo :
(%i1) load(gaal);
(%o1) C : /P ROGRA 1/M AXIM A 2.0/share/maxima/5.25.0/share/gaal.mac
(%i10) u1:matrix([2,2,0]);
(%o10) 2 2 0
28
(%i3) u2:matrix([-4,2,0]);
(%o3)
−4 2 0
(%i4) u3:matrix([1,0,-7]);
(%o4)
1 0 −7
(%i11) v1:matrix([1,-2,2]);
(%o11) 1 −2 2
(%i6) v2:matrix([1,2,3]);
(%o6)
1 2 3
(%i7) v3:matrix([2,1,3]);
(%o7)
2 1 3
(%i12) pe(u1,v1);
(%o12) − 2
(%i13) pv(u1,v1);
(%o13) 4 −4 −6
(%i14) pe(u2,v2);
(%o14) 0
(%i15) pv(u2,v2);
(%o15)
6 12 −10
(%i16) pe(u3,v3);
(%o16) − 19
(%i17) pv(u3,v3);
(%o17) 7 −17 1
29
1.9 Autovalores e Autovetores
(%i1) a:matrix([1,2],[0,-2]);
1 2
(%o1)
0 −2
(%i4) eigenvalues(a);
(%o4) [[−2, 1], [1, 1]]
(%i5) eigenvectors(a);
3
(%o5) [[[−2, 1], [1, 1]], [[[1, − ]], [[1, 0]]]]
2
Uma outra forma de acessar os comandos de Autovalor e Autovetor seria o uso
da barra de ferramentas do wxMaxima, assim será encontrado: `Álgebra Autova-
lor' ou `Álgebra Autovetor'.
(%t2)
Polinômio Característico
O Polinômio Característico de uma matriz também pode ser calculado no wxMaxima,
utilizando o comando `charpoly(a, x), expand;', onde `a' é uma matriz quadrada e
`x' a variavel, temos:
30
(%i1) a:matrix([0,-2],[1,2]);
0 −2
(%o1)
1 2
(%i2) charpoly(%, x), expand;
(%o2) x2 − 2 x + 2
(%t2)
31
(%i2) b:matrix([3,-5],[0,7]);
3 −5
(%o2)
0 7
(%i3) c:matrix([5,0],[-1,7]);
5 0
(%o3)
−1 7
(%i4) d:matrix([2,1],[-2,3]);
2 1
(%o4)
−2 3
(%i5) charpoly(a, x), expand;
(%o5) x2 − 2 x + 1
(%i6) charpoly(b, x), expand;
(%o6) x2 − 10 x + 21
(%i7) charpoly(c, x), expand;
(%o7) x2 − 12 x + 35
(%i8) charpoly(d, x), expand;
(%o8) x2 − 5 x + 8
(%i10) eigenvalues(a);
(%o10) [[1], [2]]
(%i11) eigenvalues(b);
(%o11) [[3, 7], [1, 1]]
(%i12) eigenvalues(c);
(%o12) [[5, 7], [1, 1]]
(%i13) eigenvalues(d);
√ √
7i − 5 7i + 5
(%o13) [[− , ], [1, 1]]
2 2
32
4. Encontre as equações características das matrizes seguintes:
1 0 1 7 2 1
−1 2 0 4 3 0
3 0 4 −1 0 1
Resolvendo no wxMaxima:
(%i1) a:matrix([1,0,1],[-1,2,0],[3,0,4]);
1 0 1
(%o1) −1 2 0
3 0 4
(%i2) b:matrix([7,2,1],[4,3,0],[-1,0,1]);
7 2 1
(%o2) 4 3 0
−1 0 1
Introduzindo matrizes:
1o passo: 2o passo:
33
3o passo:
1o passo: 2o passo:
1)Sendo a matriz
2 3 2
A= 1 4 5
2 1 3
encontre:
34
a)Determinante de A;
b)Transposta de A;
c)Adjunta de A;
d)Inversa de A;
e)Conra o resultado da letra d) multiplicando A pela sua inversa;
2x + 3y − z =0 (1.2)
4x + y + z =7 (1.3)
−2x + y + z =4 (1.4)
5. Seja (aij ) uma matriz quadrada de ordem 2 tal que aij = 2i − 3j e seja
1 0
B= . Calcule X tal que X + 2A = 2B.
−1 1
1 0 1/2 −1 1 3 −1/2 1
−2 5 2 −3
6. Sejam as matrizes A = e B = 1 −2 −2 3
1 −1 2 1 −1 1 1 1
−5 1 3/2 0 5 −1 1/2 5
Determine o elemento C34 da matriz C = (A + B)−1
−1 0 2 1
7. Dadas as matrizes AB = e AC = , calcule A(B + C) e
2 1 0 −1
A(BAC).
1 0 2 5
8. Sabendo que A = eB= :
−1 1 3 −1
35
1 0
a.verique se A−1 = ;
1 1
b.determine X tal que AX = B .
1 0 21 −1 1 3 − 12 −1
−2 5 2 −3
9. (ITA-SP) Sejam as matrizes: A = e B = 1 −2 −2 3
1 −1 2 1 −1 1 1 1
3 1
−5 1 2 0 5 −1 2 5
Determine o elemento C34 da matriz C = (A + B)−1 .
10. (UEL-PR) Uma das formas de se enviar uma mensagem secreta é por meio
de códigos matemáticos, seguindo os passos:
1) Tanto o destinatário quanto o remetente possuem uma matriz chave C.
2) O destinatário recebe do remetente uma matriz P, tal que M C = P , onde M é a
matriz mensagem a ser decodicada.
3) Cada número da matriz M corresponde a uma letra do alfabeto: 1 = a, 2 = b,
3 = c, . . . 3, 23 = z.
4) Consideremos o alfabeto com 23 letras, excluindo as letras K, W e Y.
5) O número zero corresponde ao ponto de exclamação.
6) A mensagem é lida, encontrando a matriz M, fazendo a correspondência nú-
mero/letra e ordenando as letras por linhas da matriz conforme segue:
m11 , m12 , m13 , m21 , m22 , m23 , m31 , m32 , m33 .
1 1 0 2 −10 1
Considere as matrizes C = 0 −1 0 e P = 18 38 17
0 2 1 19 14 0
Com base nas informações descritas, assinale a alternativa que a presenta a men-
sagem que foi enviada por meio da matriz M.
a)Boasorte! c)Boatarde! e)Socorro!
b)Boaprova! d)Ajudeme!
11. Realize a translação de uma linha que tem seus pontos limites representados
pelo pontos A(1,1), B(7,1) e C(4,7) pertencentes ao R2 de 5 unidades na coordenada
horizontal e 3 unidades na coordenada vertical.
12. Duplique a escala de um objeto que tem seus pontos limites nos Pontos A(1,1),
B(3,1) e C(2,3).
36
13. Rotacione um objeto por um ângulo de 90o no sentindo anti-horário com relação
à origem sendo que seus pontos limites é A(1,1), B(7,1) e C(4,7).
37
Capítulo 2
wxMaxima e Cálculo
2.1 Limites
Exercício resolvido 1: √
Dada a função f (x) = x2 +16−4
2x2
, calcule lim f (x).
x→0
38
Com o auxílio do software podemos entender melhor o algebrismo utilizado para
encontrar o limite de f (x). Segue os seguintes passos:
(%i4) ratsimp(h(x):=((sqrt(x^2+16)-4)*(sqrt(x^2+16)+4))
/(2*x^2*(sqrt(x^2+16)+4)));
1
(%o4) h (x) := √
2 x2 + 16 + 8
2) Substituimos a variável x por 0, e comparamos com o limite de h(x) quando
x tende a 0.
(%i5) subst(0, x, h(x):=1/(2*sqrt(x^2+16)+8));
1
(%o5) h (0) :=
16
Percebe-se que em h(x) não há restrição quando x = 0 como em f (x).
(%i6) limit(h(x), x, 0);
1
(%o6)
16
3) Agora vamos comparar os grácos gerados por f (x) e h(x).
A princípio notamos que as duas funções geram a mesma curva. Porém se aumen-
tarmos o zoom no ponto onde x = 0 veremos a diferença entre as curvas. Em f (x)
a curva não é contínua quando x = 0, ao contrário de h(x).
(%i7) plot2d(f(x), [x,-5,5],
[plot_format, gnuplot])$
39
(%i8) plot2d(h(x), [x,-5,5],
[plot_format, gnuplot])$
Assim, concluímos que o artifício utilizado para calcular lim f (x), por encontrar
x→0
uma função h(x) que permita calcular o limite através da substiuição direta (x = 0),
não elimina a restrição x 6= 0 de f (x). Podemos ver isso claramente comparando os
grácos das funções.
Para uma função de uma variável usamos di(nome da função, variável, ordem da
derivada) ou apenas di(nome da função, variável) para o caso em que queremos a
primeira derivada da função. Exemplo:
(%i1) diff(cos(x),x,1);
(%o1) − sin (x)
40
Ou simplesmente:
(%i2) diff(cos(x),x);
(%o2) − sin (x)
(%i11) diff(%e^x,x,20);
(%o11) ex
(%i12) diff(log(x),x);
1
(%o12)
x
(%i13) diff(log(x)/log(a),x);
1
(%o13)
log (a) x
(%i14) diff(a^x,x);
(%o14) ax log (a)
(%i15) 'diff(cot(x),x);
d
(%o15) ctg (x)
dx
Para calcular a derivada parcial de uma função com relação a determinada variável,
consideramos as demais como constantes. Desse modo, no wxMaxima, usamos o
seguinte comando: di(nome da função, variável para a qual deseja-se calcular a
derivada); Já para calcular a derivada parcial de uma função em relação a uma
variável e depois em relação a outras, usa-se o comando : di(nome da função,
variável1,ordem da derivada, ..., variável n, ordem da derivada).
Seja f (x, y) = x2 + y 2 , então fx = 2x, fy = 2y, fxx = fyy = 2 e fxy = fyx = 0 no
wxMaxima fazemos:
(%i3) f(x,y):=x^2+y^2;
(%o3) f (x, y) := x2 + y 2
(%i6) f_x:diff(f(x,y),x,1);
(%o6) 2 x
41
(%i8) f_y:diff(f(x,y),y,1);
(%o8) 2 y
(%i9) f_XX:diff(f(x,y),x,2);
(%o9) 2
(%i10) f_yy:diff(f(x,y),y,2);
(%o10) 2
Determine hxxx , hyyy , hθθθ e hxyθ para a função h(x, y, θ) = x6 cos(θ)4 +y 5 sin(xtan(θ)),
utilizando o wxMaxima.
(%i12) h(x,y,theta):=x^6*cos(theta)^4+y^5*sin(x*tan(theta));
(%o12) h (x, y, θ) := x6 cos (θ)4 + y 5 sin (x tan (θ))
(%i13) h_xxx:diff(h(x,y,theta),x,3);
(%o13) 120 cos (θ)4 x3 − tan (θ)3 cos (tan (θ) x) y 5
(%i15) h_yyy:diff(h(x,y,theta),y,3);
(%o15) 60 sin (tan (θ) x) y 2
(%i19) h_ttt:ratsimp(diff(h(x,y,theta),theta,3));
(%o19) 4 sec (θ)2 tan (θ)2 + 2 sec (θ)4 x − sec (θ)6 x3 cos (tan (θ) x) − 6 sec (θ)4 tan (θ) x2 sin (tan (
(%i6) h_xyt:diff(h(x,y,theta),x,1,y,1,theta,1);
(%o6) 5 sec (θ)2 cos (tan (θ) x) y 4 − 5 sec (θ)2 tan (θ) x sin (tan (θ) x) y 4
42
(%i14) integrate(x^2,x);
x3
(%o14)
3
(%i16) integrate(x^2,x,0,6);
(%o16) 72
43
(%i37) load(draw)$
(%i40) draw3d(explicit(x^2+y^2-10,x,-10,10,y,-10,10),color = red
,explicit(10*x-y,x,-10,10,y,-10,10))$
para calcular a integral, faz-se:
(%i12) integrate(integrate(10*x-y-(x^2+y^2-10),x,0,5),y,-5,5);
2750
(%o12)
3R R
Calcule R x2 ydA na região R mostrada abaixo:
(%i5) wxdraw2d(fill_color=blue,rectangle([-2,0],[2,2]),fill_color=
white,rectangle([-1,0],[1,1]));
R2 R2
Uma das maneiras de calcular esse volume é dado pela integral −2 0
x2 ydydx −
R1 R1 2
−1 0
x ydydx. E o wxMaxima nos dá:
(%i6) integrate(integrate(x^2*y,x,-2,2),y,0,2)-
integrate(integrate(x^2*y,x,-1,1),y,0,1);
31
(%o6)
3
44
Capítulo 3
Atividades:
3.1 Limites
3 - Dada a função g(x) = |x|sen( x1 ) plote o gráco de g(x). Veja que a função
oscila com frequência cada vez maior à medida que x se aproxima de 0, tanto do lado
esquerdo como do lado direito, mas com amplitude cada vez menor. Existe o limite
limx→0 g(x)? Se existir, quanto vale?
3.2 Derivadas
45
a. Calcule H 0 (t). Qual é a taxa de variação de H(t) após 1 segundo? Neste instante,
a altura está aumentando ou diminuindo?
b. Em que instante H 0 (t) = 0? Qual é o signicado físico deste instante?
c. Em que instante a pulga "aterrissa"(volta à altura inicial)? Qual é a taxa de varia-
ção de H(t) neste instante? Neste instante, a altura está aumentando ou diminuindo?
8 - Uma empresa usa um caminhão para entregar seus produtos. Para estimar os
custos, o gerente modela o consumo de combustível do caminhão usando a função
1 1.200
G(x) = 250
( x + x)
litros/quilômetro, supondo que o caminhão trafega a uma velocidade constante de x
quilômetros por hora, para x ≥ 5. O motorista recebe R$20,00 por hora para dirigir
o caminhão por 250 quilômetros e o preço do litro de combustível é de R$1,90.
a. Escreva uma expressão para o custo total C(x) de uma viagem de 250 quilômetros.
b. Qual é a taxa de variação do custo C(x) com x quando o caminhão está a 40
quilômetros por hora? A esta velocidade, o custo aumenta ou diminui quando a
velocidade aumenta?
46
3.3 Integrais
9 - Um fabricante constatou que o custo marginal é 3q 2 −60q +400 reais por unidade,
onde q é o número de unidades produzidas. O custo total para produzir as primeiras
duas unidades é de R$900,00. Qual é o custo total para produzir as primeiras cinco
unidades?
47