Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1
4.4.3 - Integração indefinida .............................................................................................................................................. 85
4.4.4 - Integração definida ................................................................................................................................................. 87
4.4.5 - Integrais duplas e triplas ......................................................................................................................................... 94
4.5 - Equações Diferenciais ................................................................................................................................................... 95
4.5.1 - Introdução ........................................................................................................................................................ 96
4.5.2 - Equações Diferenciais Lineares .............................................................................................................................. 96
4.5.3 - Equações Diferencias de variáveis separáveis ...................................................................................................... 100
4.5.4 - Equações Diferenciais Exatas ............................................................................................................................... 102
4.5.5 - Solução numérica de equações diferenciais .......................................................................................................... 103
4.5.6 - Equações Diferenciais de Ordem Superior ........................................................................................................... 105
4.6 - Exercícios ................................................................................................................................................................ 111
CAPÍTULO 5 - LISTAS, VETORES E MATRIZES ......................................................................................................... 116
5.1 - Introdução .................................................................................................................................................................... 116
5.2 - Listas ........................................................................................................................................................................... 116
5.2.1 -Introdução .............................................................................................................................................................. 116
5.2.3 - Gerando listas com o comando Table ................................................................................................................ 120
5.2.4 - Criando gráficos a partir de listas ......................................................................................................................... 122
5.3 - Matrizes ....................................................................................................................................................................... 128
5.3.1 - Introdução ............................................................................................................................................................. 128
5.3.2 - Operações básicas ................................................................................................................................................. 130
5.3.3 - Resolução de sistemas lineares ............................................................................................................................. 136
5.3.4 - Máximos e mínimos utilizando programação linear ............................................................................................. 139
5.4 - Cálculo Vetorial........................................................................................................................................................... 140
5.4.1 - Introdução ............................................................................................................................................................. 140
5.4.2 - Sistemas de coordenadas, gradiente, divergente, rotacional e laplaciano ............................................................. 141
5.4.3- Gráficos de funções vetoriais no plano .................................................................................................................. 148
5.4.4 - Gráficos de funções vetoriais no espaço ............................................................................................................... 151
5.5 - Exercícios ................................................................................................................................................................ 152
2
CAPÍTULO 1 - INTRODUÇÃO
1.1 - Introdução
3
No final de cada capítulo existe uma série de exercícios para que você possa fixar os comandos
apresentados. Para estes exercícios propostos há uma lista com as soluções, valendo a pena ressaltar que
estas podem não ser as únicas soluçõese possíveis.
Quando você não sabe o nome completo de uma função mas sabe a letra com que ela começa você
pode utilizar o comando ? letra* que retorna todas as funções que começam com a letra digitada. Se
você souber apenas uma letra do meio do corpo da função você pode utilizar? *letra* que retorna
todos os comandos que possuem “letra” na sua definição. Vale a pena ressaltar que o
Mathematicadistingue entre letras maiúsculas e letras minúsculas, portanto? p* tem resultado diferente
de ? P*. Caso queira saber o nome de todas as funções implementadas na versão que você está usando
tecle ? *.
Vejamos os exemplos abaixo:
Para encontrar o nome de os comandos que começam com “Z” podemos digitar
? Z*
ZeroTest Zeta
?*Z*
JacobiZeta RiemannSiegelZ TimeZone ZeroTest
Zeta
? *z*
AbsolutePointSize Hypergeometric0F1Regularized
PointSize
BetaRegularized Hypergeometric1F1Regularized
Rationalize
GammaRegularized Hypergeometric2F1Regularized
StartingStepSize
HorizontalForm MaxStepSize
Trapezoidal HypergeometricPFQRegularized
Se quisermos também podemos encontrar comandos que contem uma certa seqüência de caracteres
como mostrado abaixo onde desejamos saber todos os comandos que contem “Sin” :
? *Sin*
ArcSin Sin SingularValues
SinhIntegral ArcSinh SingularityDepth
4
Sinh SinIntegral IncludeSingularTerm
Caso você esteja utilizando o Mathematica e fique em dúvida sobre o que um certo comando
realiza você pode ou utilizar o Help no formato Windows ou entrar com o comando ?? comando.
Fazendo isto você estará conseguindo informações sobre o que o comando realiza e também sobre qual a
sintaxe correta a ser utilizada.
??Zeta
nos retorna o objetivo do comando Zeta e nos da a forma correta de dar o comando. Observe que
ele também nos da todas as opções disponíveis no camamdo Zeta(IncludeSingularTerm ->
False). Enquanto que
Information[PrimeQ]
nos da informações sobre a função PrimeQ. Caso você deseje apenas saber quais são as opções
de um certo comando você devera entrar com Options[comando] por exemplo para saber quais são
as opções do comando ContourPlot3D nós podemos entrar com
Options[ContourPlot]
5
Background -> Automatic, ColorFunction -> Automatic,
ColorOutput -> Automatic, Compiled -> True,ContourLines -> True
,Contours -> 10,ContourShading -> True, ContourSmoothing-> True
,ContourStyle-> Automatic,DefaultColor-> Automatic,Epilog -> {}
,Frame -> True,FrameLabel -> None,FrameStyle -> Automatic,
FrameTicks -> Automatic, PlotLabel -> None, PlotPoints -> 15,
PlotRange -> Automatic, PlotRegion -> Automatic, Prolog -> {},
RotateLabel -> True, Ticks -> Automatic,
DefaultFont :> $DefaultFont,DisplayFunction:> $DisplayFunction}
Nesta tela você poderá ou digitar a palavra sobre a qual você que uma informação ou utilizando a
barra localiza a direita selecionar diretamente a palavra. Feito isto basta clicar em Show Topics para que
ele mostre os tópicos sobre o comando que estão disponíveis no Help. Agora basta escolhar um dos tópicos
e pressionar Go To para obter a informação sobre a palavra escolhida.
6
CAPÍTULO 2 - CÁLCULOS NUMÉRICOS E DEFINIÇÃO DE FUNÇÕES
Para calcular numericamente o valor de um uma expressão contendo números e sinais aritméticos
basta digitar a expressão desejada finalizando com ENTER ou Shift + ENTER.
a)
1+1
2
b)
3231-9876
-6645
-2*2
-4
12 156 156
292032
3/2
3
-
2
7
a)
(-2)^123
-10633823966279326983230456482242756608
b)
7^(1/9)
1/9
7
Percebemos que no exemplo b) a saída dada pelo Mathematica não condiz com a que era esperada
por nós. Para que obtenhamos o valor numérico esperado devemos entrar com o comando
N[expressão] para que obtenhamos um resultado numérico da expressão entre colchetes. Se você
entrar com o comando N[expressão, n] o resultado será uma aproximação da expressão com n casas
no total.
Neste caso teremos:
a)
N[(-5)^123]
85
-9.40395 10
b)
N[7^(1/9)]
1.24137
Sqrt[241]
Sqrt[241]
O Mathematica retorna a mesma entrada pois esta é a forma mais simplificada da expressão.
Para obtermos uma aproximação com 8 casas no total podemos entrar com o comando:
8
N[Sqrt[241],8]
15.524175
O Mathematica possui os valores de várias constantes pré-definidas tais como (pi) que é
denotado por Pi, e (Número de Euler) que é denotado por E. i 1 é denotada por I. O sinal de infinito
( ) é definido como Infinity (-infinito é denotado como -Infinity).
Para obtermos uma aproximação destas constantes é só procedermos como nos exemplos abaixo:
N[E,20]
2.7182818284590452354
N[Pi,30]
3.14159265358979323846264338328
Sqrt[-25]
5 I
(3+I) (-I)
1 - 3 I
2.2 - Funções
O Mathematica consegue manipular expressões não numéricas da mesma maneira que ele
manipula as numéricas. Dentro os comandos possíveis destacamos alguns de grande utilidade.
9
Exemplo: a) Fatore 2 x 3 6x 2 y 4 x 12 y .b) Calcule (3 x - 12) (23 x - 4)(x - 5),
x 2 (5x 3)
.c)transforme ( x 5) em uma única fração.
5 x
2
2 (-2 + x ) (-x + 3 y)
2 3
-240 + 1488 x - 633 x + 69 x
Together[(x^2/5)+((5 x-3)/x) + x - 5]
2 3
-15 + 5 x + x
---------------
5 x
x 2 2x
Exemplo: Determine a decomposição em frações parciais da expressão e .simplifique
x4
x 3 2x 2 2x 4
a .expressão .
x2
10
Apart[(x^2-2 x)/(x -4)]
8
2 + ------ + x
-4 + x
2
-2 + x
Definir uma função e realizar cálculos com ela com o Mathematica é simples, para isto você
deverá somente utilizar a sintaxe abaixo:
onde V1, V2, ..., Vn são as n variáveis da função definida pela equação matématica. Nos
exemplos abaixo esta definição ficará mais clara.
Clear[f];
f[x_]:=x^3 - 5 x^2 - 10
Clear[f,g,h,c]
11
e teremos apagado as definições destas funções e o valor da constante c.
Voltando ao exemplo em questão, para verificarmos se a definição da função f(x) esta correta é
só darmos o comando
f[x]
2 3
-10 - 5 x + x
com este comando nós podemos ver a atual definição da função f(x).
Para calcular f(0), f(7), f(-2), f(d), f(c2) basta digitar f[ponto] ou f[x] /. x->ponto
f[0]
-10
f[x] /. x->7
88
f[-2]
-38
f[d]
2 3
-10 - 5 d + d
f[c^2]
4 6
-10 - 5 c + c
Exemplo: Defina g(x)= a.b.x3 onde a e b são duas constantes. Calcule g(0), g(5),g(-3) quando
.a=2 e b=-3. Repita os cálculos para a=3 e b=5.
Primeiramente devemos “limpar” qualquer definição anterior de g(x) que possa existir após
definimos os valores de a e b, então definimos a função g(x), sendo que não há nenhuma ordem a ser
seguida quanto na definição de g(x) , a e b, podendo-se também definir primeiro g(x) e após definir os
valores de a e b.
Clear[g]
a=2;
b=-3;
g[x_]:=a b x^3
12
Digitando
g[x]
3
-6 x
Encontramos a atual definição de g(x), enquanto que digitando
g[0]
0
g[5]
-750
g[-3]
162
Para efetuarmos as contas quando a=3 e b=5 basta definir os novos valores de a e b e então
calcular os valores da função nos pontos.
a=3
b=5
g[x]
3
15 x
Note que agora g(x) é definida como sendo 15x3 e não mais -6x3 pois nós mudamos os valores
de a e b. Digitando novamente
g[0]
0
g[5]
1875
g[-3]
-405
Entretanto é bom entender que o Mathematica consegue realmente calcular o valor da função
no ponto apenas porquê ela era definida como g[x_]:= se ao invés disso você a tivesse definido como
g[x]:= ele NÃO retornaria o valor da função no ponto como pode ser visto abaixo.
Clear[h]
h[x]:=x^2;
13
h[2]
h[2]
Se definíssemos novamente h(x) mas dessa vez utilizando o “_” após a variável teríamos:
Clear[h];
h[x_]:=x^2;
h[2]
Percebemos que dessa vez a resposta é realmente o valor da função no ponto desejado (h(2)=4).
Quando a função é definida como f[x_]:= o Mathematica pode calcular o valor de f(x) para
qualquer número real, desde que ele pertença ao domínio da função é claro.
Nós também podemos definir uma função diferentemente para intervalos distintos como no
exemplo abaixo:
Clear[f]
f[x_]:=x^2 /; -2<=x<0
f[x_]:=1-x /; 0<=x<2
f[x_]:=x
que define a função f(x) da maneira como queriamos, enquanto que para calcular os valores de
f(x) nos pontos teremos:
f[-2]
4
f[0]
1
f[10]
10
f[-100]
-100
14
onde estamos calculando f(-2)=4, f(0)=1, f(10)=10, f(-100)=-100 respectivamente. É bom notar
que em cada ponto se utiliza a definição de f(x) para o intervalor ao qual o ponto pertence.Assim f(-2) é
calculado com f(x)=x2 enquanto que f(-100) utiliza f(x)=x.
Neste exemplo nós pudemos verificar que uma função pode ser definida de uma maneira diferente
em cada intervalo. O comando/; tem o significado matemático de “tal que”, os sinais de <, >, <=,
>= podem ser utilizados para definir os intervalos. O sinal != significa diferente.
Nós podemos também entrar com expressões do tipo n1<=( ou outro sinal matemático) n2 sendo
que o Mathematica nos retorna se a expressão e verdadeira ou falsa.
Neste caso digitando
1<2
True
1>=3
False
a + b != b + a
False
Para se definir funções de duas ou mais variáveis nós podemos proceder da mesma maneira como
fizemos no caso de funções de uma variável, bastando apenas definir quem são as variáveis de nossa
função.
Clear[f,g,a,b,c];
f[x_,y_]:=2 x^2 - 5 y^5;
g[a_,b_,c_]:=(2 a - 3 b^2)/(c^(1/4));
Entrando com
15
f[x,y]
2 5
2 x - 5 y e
g[a,b,c]
2
2 a - 3 b
----------
1/4
c
Estaremos observando as atuais definições das funções f(x, y) e g(a, b, c).Para calcularmos os
valores nos pontos pedidos basta digitar
f[1,1]
-3
g[1,1,1]
-1
g[2,1,3]//N
0.759836
g[r,s,t]
2
2 r - 3 s
----------
1/4
t
16
2.2.4 - Funções pré-definidas.
O Mathematica possui uma grande quantidade de funções que já estão pré-definidas, podendo
ser utilizadas a qualquer momento. Entre elas nós poderíamos citar função módulo, Abs[x], função
exponencial, Exp[x], função logaritmo natural (Ln), Log[x], função logarítmica numa base b,
Log[b,x] , e as funções trigonométricas, Sin[x], Cos[x],
Tan[x],Sec[x],Csc[x],Cot[x] e também as funções trigonométricas inversas ArcSin[x],
ArcCos[x], ArcTan[x], ArcSec[x], ArcSec[x], ArcCsc[x], ArcCot[x].
Primeiramente vamos calcular o valor de e-1/5, como Exp[x] é uma função já definida no
Mathematica basta entrar com o comando
Exp[-1/5]
-(1/5)
E
O Mathematica devolve a expressão acima porquê ela é a melhor aproximação para e-1/5, para
que possamos obter uma aproximação numérica devemos entrar com(Note que Exp[-1/5]//N também
poderia ser utilizado.).
N[Exp[-1/5],8]
0.81873075
onde f(x) é uma função cujo gráfico nós queremos observar no intervalo {x, xmín, xmáx} sobre as
opções possiveis para esta função gráfica nós falaremos detalhadamente mais tarde, porém podemos
adiantar que será possivel mexer na escala do gráfico, no intervalo da varíavel dependente, nomes de
eixos, linhas de grade, enfim muitas coisas.
Voltando ao nosso exemplo fazendo o gráfico teremos:
Plot[Exp[x],{x,-3,3}]
17
-Graphics-
Abs[5]
5
Calcula o modulo de 5 = | 5|
Abs[-5]
5
enquanto que
Abs[4 - 5 I]//N
6.40312
calcula |4 - 5I| = 4 2 52 , sendo o comando //N usado para obtermos uma aproximação. Nós
podemos também plotar gráficos de módulos de funções, como abaixo
Clear[f];
f[x_]:=Abs[x^3 - 5 x]
Plot[f[x],{x,-2,2},AxesLabel->{"x","f[x]"}]
18
-Graphics-
Log[20]
Log[20]
Log[233]//N
5.45104
Log[10,1000]
3
Log[.5,150]//N
-7.22882
19
Exemplo: Calcule sen 2 , cos 3 , tan 34 , sec 4 e plote os gráficos de sen(x) e sec(x) no
.intervalo [-2 , 2 ].
Para calcular o valor de uma função trigonométrica em um ponto basta digitar o nome da função
e no lugar do argumento colocar o ponto desejado.Neste caso teremos:
Sin[Pi/2]
1
Cos[Pi/3]
1
-
2
Tan[3 Pi/4]
-1
Sec[Pi/4]
Sqrt[2]
Estes comandos calculam, respectivamente, sen 2 =1, cos 3 =0,5, tan 34 =-1 e sec 4 = 2.
Para obtermos uma aproximação de sec 4 1,41421 podemos entrar com o comando:
%//N
1.41421
O comando % significa repetir o último comando dado, ou seja, no exemplo o Mathematica irá
repetir o comando Sec[Pi/4] acrescido de //N para que possamos obter a aproximação desejada.
Agora iremos plotar os gráficos utilizando o comando gráfico Plot
Plot[Sin[x],{x,-2Pi,2Pi},PlotStyle->RGBColor[0,0,1]]
20
-Graphics-
Plot[Sec[x],{x,-2Pi,2Pi},PlotStyle->Dashing[{.02}],
PlotPoints->40]
-Graphics-
Exemplo: Calcule os valores de cos-1(0.75), sen-1(0.75), tan-1 34 , arcsec 34 e faça também
.gráfico de cosh(x) no intervalo [-2, 2].
21
ArcCos[.75]//N
0.722734
ArcSin[.65]//N
0.707584
N[ArcTan[3 Pi/4]]
1.16942
N[ArcSec[3Pi/4],8]
1.1324826
Plot[Cosh[x],{x,-2Pi,2Pi}]
-Graphics-
22
Exemplo: Seja f ( x ) = x2 - x , g( x ) = x3 + x e k( x ) = Ln (x) + cos( x ) calcule:
a) (f og)( x ) = f( g ( x ) ), b) (gog)(x - 1) = g ( g ( x - 1))
c) (f o k )(pi/2) = f( k (pi/2)) e d) f ( cos ( x - i y)).
Clear[f,g,k];
f[x_]:=x^2 - x;
g[x_]:=x^3 + x;
k[x_]:=Log[x] + Cos[x];
f[g[x]]
3 3 2
-x - x + (x + x )
Composition[f,g][x]
3 3 2
-x - x + (x + x )
Composition[f,f][x-1]
2 2 2
-1 + (1 + (-1 + x) - x) - (-1 + x) + x
%//Simplify
2 3 4
2 - 9 x + 12 x - 6 x + x
Lembrando que o sinal % faz com que o Mathematica® repita o último comando dado.
Composition[f,k][Pi/2]
23
Pi Pi 2
-Log[--] + Log[--]
2 2
%//N
-0.247656
f[Cos[x - y I]]
2
-Cos[x - I y] + Cos[x - I y]
Clear[g]
g[x_]:=x^2-12;
Nest[g,x,4]//Simplify
2 4 2 2
-12 + (-12 + (132 - 24 x + x ) )
Nest[Tan,x,7]
Tan[Tan[Tan[Tan[Tan[Tan[Tan[x]]]]]]]
Para calcularmos o valor da função num valor específico de x basta trocarmos o “x” no comando
Nest pelo valor em questão.
Desta forma:
Nest[Tan,0,7]
0
24
Nest[Tan,23.4,7]
-0.171589
Solve[lhs==rhs, incógnitas]
Por exemplo para solucionarmos a equação 2 x - 7 = 4 nós devemos entrar com o comando
Solve[2 x - 7 ==4, x], embora como neste caso só temos uma variável poderíamos entrar somente
com Solve[2 x - 7 ==4]. Vejamos os exemplos seguintes:
x2 2
Exemplo: Encontre a solução das equações 2 x - 7 = 4 , 3 x2 - 2 x - 5 = 2 , 0e
x 1
.x3 - 2 x2 + x + 12 = 0
Solve[2 x - 7 ==4, x]
11
{{x -> --}}
2
25
Solve[2 x - 7 ==4]
11
{{x -> --}}
2
Clear[eq2]
eq2 = x^2 - 2 x - 5 = = 10
2
-5 - 2 x + x == 10
Solve[eq2, x]
x2 2
Para encontrarmos assoluções de 0 que são x 2 ou x 2 faremos
x 1
26
Solve[(Sin[x])^2 - Sin[x]==0]
Entretanto nós podemos perceber que o Mathematica da como solução da equação sen(x) = 1 e
sen(x) = 0 e não os valores de x tais que sen(x) = 1 e sen(x) = 0(Pois o conjunto de completo de soluções
e formado por x = 2 k ou x = 0 k onde k é um número inteiro). Entretanto quando digitamos
2
Solve[(Sin[x])^2 - Sin[x]==0,x]
Solve::ifun:
Warning: Inverse functions are being used by
Solve, so some solutions may not be found.
Pi
{{x -> --}, {x -> 0}}
2
Ele nos retorna os valores de x mas também nós mostra uma mensagem de erro pois ele não está
nos dando todas as soluções da equação que são infinitas já que x = + 2 k e x = 0 + 2 k onde k
2
ao conjunto dos números inteiros forma o conjunto de todas as possíveis soluções da equação.
Para resolvermos sistemas de equações nós podemos utilizar o comando Solve da seguinte
maneira
Solve[{lhs1==rhs1, lhs2==rhs2,...,lhsn==lhsn},{x1,x2,...xn}]
9 x 3y z 1
5x 2 y 4
a) e b) x y 2
2 y 4 x 5 3y 4 z 6
41
a) Resolvendo o sistema ( x = 9 e y = ) utilizando o comando explicado acima teremos:
2
27
Solve[{5 x - 2 y==4, 2 y - 4 x ==5},{x,y}]
41
{{x -> 9, y -> --}}
2
8 62 29
b) Para acharmos a solução para este sistema ( x ,y ,z ) faremos:
27 27 9
8 62 29
{{x -> -(--), y -> -(--), z -> -(--)}}
27 27 9
O Mathematica também pode isolar uma variável em função de outras como pode ser observado
no exemplo abaixo:
Exemplo: Seja v = 2r2 h, onde v é o volume do cilindro de base circular (com raio r) e altura
.h, isole r em função do volume e da altura. Seja também x = x0 + vel t a equação dos espaços isole vel
.em função das outras variáveis.
Solve[v==2 Pi r^2 h, r]
Sqrt[v]
Sqrt[v]
{r -> -(------------------)}}
Sqrt[h] Sqrt[2 Pi]
Sendo que somente a primeira solução (r-> + ...) é a única válida pois não podemos ter
r<0.
28
Solve[x == x0 + vel t, vel]
x - x0
{{vel -> ------}}
t
No exemplo abaixo mostraremos como o comando Solve pode ser utilizado com a opção //N
que faz com que tenhamos uma aproximação da solução encontrada. Utilizaremos também o comando
Nsolve que produz os mesmos resultados.
Exemplo: Calcule o valor que satisfaz a equação 3 x4 - 2 x + 1 = 0 e também o valor que satisfaz
x - 4 x + 2 x2 = 6.
3
É bom saber que o comando com//N pode ser sempre utilizado quando se quer uma aproximação
numérica de com, sendo que isto muitas vezes é indispensável. Para você ter uma idéia da importância
deste comando tente realizar o comando Solve[x^3 - 4 x ...,x] sem o //N e veja o tamanho
da resposta dada pelo Mathematica.
29
2.3.2 - Aproximação de soluções vizinhas a um ponto
Como dissemos no início deste item o comando Solve apenas consegue encontrar a solução
para polinômios de ordem igual ou menor que 4. Para encontrar uma solução para polinômios de ordem
maior que 4 devemos utilizar um dos comandos abaixo (sendo que estes comando podem ser utilizados
para um polinômio de qualquer ordem) :
NRoot[ polinomio1==polinomio2, x]
FindRoot[polinomio1==polinomio2, {x,ponto}]
Enquanto que Nroot não precisa de mais nenhum conhecimento além do polinômio do qual
queremos encontrar a solução o comando FindRoot necessita que saibamos os pontos próximos as
raízes do polinômio em questão, estes pontos podem ser encontrados fazendo-se um gráfico da função
definida por este polinômio e estimando os pontos onde há o cruzamento com o eixo da variável
independente.
x == -0.608441 + 0.787402 I ||
x == 0.907194 - 1.14797 I ||
Vimos que o Mathematica nos retorna as 6 soluções da equação cada qual separada por ||.
Clear[eq]
eq=x^6 - 3 x^5 - 2 x^2 - 7 x - 5 ;
Plot[eq, {x,-4,4}, PlotRange->{-1,1}]
30
-Graphics-
Veja que inicialmente nós definimos eq como sendo a função para não termos que escreve-la
toda vez que formos utilizar o comando FindRoot. A opção PlotRange->{-1,1} e incluída pois só estamos
interessados nos valores de y iguais a zero. Feito isto podemos estimar que x= -1 e x = 3 devem estar
próximos do valor das raízes reais da equação. Então
FindRoot[eq==0, {x,-1}]
{x -> -0.748532}
FindRoot[eq==0, {x,3}]
{x -> 3.15103}
FindRoot[eq==0,{x,-1 -1 I}]
Clear[k,h]
31
h[x_]:= x^3 - 5 x^2 + 2 x -5 ;
k[x_]:=(x^2)/9 - x/2 - 5;
Para podermos utilizar o comando FindRoot na solução da equação iremos fazer o gráfico das
funções para saber onde elas possuem pontos em comum.
graf1=Plot[h[x],{x,-1,7},PlotStyle->Dashing[{0.04}],
PlotPoints->150,DisplayFunction->Identity]
graf2=Plot[k[x],{x,-1,7},PlotPoints->50,
DisplayFunction->Identity]
-Graphics-
-Graphics-
Para mostrar os dois objetos gráficos sobre o mesmo eixo basta fazer:
Show[graf1,graf2,PlotRange->{-20,5},
DisplayFunction->$DisplayFunction]
-Graphics-
FindRoot[h[x]==k[x], {x,0}]
{x -> 0.}
Enquanto que
FindRoot[h[x]==k[x], {x,1}]
{x -> 0.547854}
32
FindRoot[h[x]==k[x], {x,4.5}]
{x -> 4.56326}
No exemplo seguinte mostraremos como utilizar o mouse para encontrar o ponto no qual uma
função se encontra com outra ou com um dos eixos.
x2 x x
Exemplo: Seja f( x ) = Sen( ) e g( x ) = Exp( ) 2 Cos( ) encontre os pontos tais que f( x ) =
3 3 2
. g( x ) e que estejam no intervalo [-5,5].
Neste caso não podemos utilizar o comando Nroots pois f e g não são funções polinomiais
devemos então utilizar o comando FindRoot que funciona com qualquer tipo de função.
Definindo f e g temos:
Clear[f,g]
f[x_]:= Sin[(x^2)/3];
g[x_]:=Exp[-(x/3)^2] Cos[x/2]
graff=Plot[f[x],{x,-5,5},PlotStyle->RGBColor[0,0,1],
DisplayFunction->Identity];
grafg=Plot[g[x],{x,-5,5},DisplayFunction->Identity];
Show[graff,grafg,DisplayFunction->$DisplayFunction]
33
-Graphics-
Agora que já temos o gráfico feito precisamos encontrar aproximadamente os pontos nos quais f
( x ) = g( x ). Para fazer isto podemos clicar uma vez o botão esquerdo do “mouse” em cima da figura.
Agora pressionando Ctrl e movendo o ícone que aparece sobre a figura, nós estaremos vendo no canto
inferior da tela a exata localização do cursor, o que nos ajuda a encontrar os pontos de intersecção das
funções. Neste caso nós estaremos vendo a seguinte tela:
34
Podemos notar que no canto inferior esquerdo aparecem as coordenadas {1.392, .596} estas são
as coordenadas {x, y} em que o cursor está. Agora para encontrarmos estes pontos com mais precisão
basta clicar uma vez fora do gráfico e digitar:
FindRoot[f[x]==g[x],{x,1.392}]
{x -> 1.40615}
FindRoot[f[x]==g[x],{x,-4.283}]
{x -> -4.31737}
FindRoot[f[x]==g[x],{x,-3.09}]
{x -> -3.06322}
FindRoot[f[x]==g[x],{x,-1.428}]
{x -> -1.40615}
FindRoot[f[x]==g[x],{x,3.09}]
{x -> 3.06322}
FindRoot[f[x]==g[x],{x,4.283}]
{x -> 4.31737}
Teremos então encontrado os seis pontos que f e g possuem em comum no intervalo [-5,5].
EXERCÍCIOS
3x65
a) 1 12 23
2 2x5
2 3/ 4
b) 5
20
35
c) 3 8961.4
d) E 6 23
Solução:
a) -17,75 ; b) 4,91591 ; c) 2,21022 ; d) 3,33399.
Solução:
a) -58.5097 + 87.7645 x + 14.6274 x 3 - 21.9411 x x 3 ; b) 5E 23x 5xE 23x
Solução:
a) (x - 5) (x - 4) (x - 2) (x - 1) ; b) (x - 4) (x - 3) (x - 0,5) (x - 0,1).
2 x 5x x 2 1
a)
x 4 x2
2 2 x x 2 2x 1
b) x
9x x3 x 1
y3 2y
c) 2 35y
y y 1
Solução:
x 3 14 x 2 20x 16 3 9 x 2x 2x 9 x 6
a) b)
4 x 8x
2
9 x ( x 3)
y
35y 3 2 y 2 3 y
y 1
c)
y2
36
x 2 4x 4
a) ;
x2
sen( / 2)(2 x 4 4 x 3 x 2 2 x 1)
b) ;
x 2 2x 1
(5x 2)(3 2i )
c) ;
4i
Solução:
1 3i
a) x 2 ; b) 2 x 2 1 ; c) ( )(2 5x) .
2 4
f ( x h ) f ( x)
Exercício 2.07 - Defina e calcule f(0), f(-1), , f(2) e f(5) quando f(x) é dada
h
por:
a) 2 x 3 3x ;
b) sen( x) tg(2 x)
c) aE ax onde a = 2
d) idem ao item c mas com a= -1.
Solução:
f ( x h ) f ( x)
a) f(0)=0, f(-1)= 1, f(2)=10, f(5) = 235 e = 6x 2 6hx 2 h 2 3 .
h
f ( x h ) f ( x)
b) f(0) = 0 ; f(-1) = -3,02651; f(2) = -0,248524; f(5) = -1,60729 e =
h
sen( x h) sen( x) tg(2x 2h) tg(2x)
.
h
f ( x h ) f ( x)
c) f(0)= 2; f(-1)= 14,7781; f(2)=0,0366313; f(5)=0,0000907999 e =
h
1 1
exp( ) exp( )
h hx
.
h
f ( x h ) f ( x)
d) f(0)= -1; f(-1)=-0,367879; f(2)= -7,38906; f(5)=-148.413 e =
h
Exp( h)(1 Exp( x))
.
h
Exercício 2.08 - Defina e calcule g(0,0), g(1,1), g(2,-3) g(-1,-1) sendo g(x, y) dada por:
a) ln(| x 2y|) xy ;
37
b) log 10 ( y 3x) ;
x
c) sen 1 ( 2 y 2 ) 1/ 3 ;
y
d) cosh(3x 2y) ;
Solução:
a) g(0,0)-> - infinito; g(1,1) = -1; g(2,-3) = 8,07944; g(-1,-1) = -1.
b) g(0,0)-> i*infinito; g(1,1) = 0,921472+i 0,7403241; g(2,-3)= 1,14438 +i 0,596121
e g(-1,-1) = 0,548662.
c) g(0,0) é indeterminado; g(1,1)=0,374734 + i 0,831443; g(2,-3)=0.49446 + i0,6873
e g(-1,-1)= 0.374734 + 0.831443 i.
d) g(0,0)= 1; g(1,1) = 1.54308; g(2,-3) = 81377.4 e g(-1,-1) = 1.54308.
Solução:
a) fog(x) = f(g(x)) = sen( x 2 2 ln( x)) 2 ; gof(x) = 2 ln(sen( x) 2) (sen( x) 2) 2 ;
fof(x)= 2 sen(2 sen( x)) ; gog(x)= ( x 2 2 ln( x)) 2 2 ln( x 2 2 ln( x))
b) fof(2) = -2,88695; gof(-1) = 5.98531 - i 6.28319; gog(cos(x))=
(cos2 ( x) 2 ln(cos( x))) 2 2 ln(cos2 ( x) 2 ln(cos( x)))
c) fofofofof(x)= -2-sen(2+sen(2+sen(2+sen(2-sen(x))))) e fofofofof(3)=-2,31695
d) gogogogogog(senh(2)) = 2,45125 10 63 .
Solução: g(-1,5)=-3,5; g(0) = 0; g(2) = 0; g(3,5) = 5,25; g(5) = 15; g(1000) = 1000. Para fazer o
gráfico devemos utilizar Plot[g[x], {x,-3,7}].
a) x 2 3x 5 0
b) x 3 6x 2 12 x 3 5
x 2 2x 8
c) 2
x 2 3x
38
d) x 4 2 x 2 6x 4 0
Solução:
a) x 4,19258 e x -1,19258 ; b) x 7,6116, x -1,42702 e x -0,184141; c) x 5,4641
e x -1,4641; d) x 2, x 0,574743, x -1,28737 + 1,35 i e x -1,28737 - 1,35 i.
7x 12y 9
a)
5x 4y 7
x 4 y 3z 1
b) 2 x 5y 4 z 4
x 3y 2 z 5
x y 2z 4
c) 2 x 5y 2 z 3
x 7y 7z 5
5 x1 2 x 2 3x3 5 x 4 5
2 x 0 x x 3x 6
1 2 3 4
d)
0 x1 7 x 2 2 x3 5 x 4 4
1x1 4 x 2 0 x3 0 x 4 0
Solução:
3 1 17 11
a) {x, y} = { , }; b) {x, y, z} = {3, -2, 2}; c) {x, y, z} ={ 9, , };
2 8 3 3
34 17 97 7
d) {x1 , x 2 , x 3 , x 4 } { , , , }.
5 10 10 10
a) 2 x 6 5x 4 3x 2 0 ;
b) x 7 2 x 5 6x 2 4 x 8 0 ;
c) f(x) = g(x) em [-5,5] sendo f(x) = Exp(x)( x 3 2 x 2 3x 1) e g(x) = cos(2x)
d) k(x) = h(x) onde k(x) = sen( x)( x 2 2 x) e h(x) = x 3 ln( x 2 1) .
Solução:
a) 𝑥 = −0,659817 0,70213 𝑖 , 𝑥 = 0,0919095 1,64251 𝑖 , 𝑥 =
0,567908 0,274799 𝑖 .
b) 𝑥 = −1,88434, 𝑥 = −0,778799 1,14964 𝑖, 𝑥 = 0,295277 0,917245 𝑖 , 𝑥 =
1,42569 0,581954 𝑖.
39
c) x = -1,76279, x = 0,x = 2,91673.
d) x = 0(multiplicidade 2), x = 1,65985.
40
CAPÍTULO 3 - GRÁFICOS
3.1 - Introdução
Saber como uma função se comporta com a variação de seus parâmetros é muito importante e uma
maneira simples de verificar esta mudança é utilizando um gráfico da função em questão.
Neste capítulo aprofundaremos o estudo de gráficos de funções que podem ser expressas por uma
equação matemática. Com o auxílio do Mathematica nós podemos fazer gráficos de funções de uma e
de duas variáveis, gráficos de funções paramétricas, curvas de níveis de funções de duas e três variáveis,
e também fazer figuras geométricas como quadrados, circunferências, retângulos, etc. Gráficos gerados
por uma tabela de dados serão estudados no capítulo que fala sobre matrizes, vetores e listas.
Para fazermos gráficos de funções de uma variável nós podemos proceder como no capítulo
anterior, porém existem algumas opções que, quando acrescidas ao comando básico
(Plot[f(x),{x,xmín,xmáx}]), fazem com que o gráfico seja mostrado com alguma característica
especial que nós necessitamos para algum caso em particular.
Exemplo: Faça o gráfico de ln(x) no intervalo [0, 15], chame o eixo das abcissas de x e o das
.ordenadas de Ln(x), mostre somente valores de ln(x) no intervalo [-2.5, 2] e de um título para este
.gráfico.
Plot[Log[x],{x,0,15},PlotRange->{0,2},
AxesLabel->{"eixo x","Ln(x)"},PlotLabel->"Função Ln(x) "]
41
-Graphics-
Percebemos que o Mathematica, apesar de fazer corretamente o gráfico, nos mostra uma
mensagem de erro ( Plot::plnr: ...). Essas mensagens de erro indicam que a função não está bem definida
no intervalo dado, ou como neste caso que a função não possui um valor em todos os pontos do intervalo
(já que quando x-> 0 ln(x) -> -). Percebemos que só é mostrado o gráfico no intervalo [-2.5, 10] isto é
conseguido com a introdução da opção PlotRange->{ymín, ymáx} e pode ser útil quando estamos
interessados em apenas uma parte dos valores assumidos pela função. A opção PlotLabel->
“Título do Gráfico” serve para colocar um título no gráfico.
Exemplo: Faça o gráfico de f(x) = sen(x2) e g(x) = sen(x), no intervalo [-2, 2]. Mostre ambos
os gráficos num mesmo eixo para que possamos fazer uma comparação entre as duas funções.
Clear[f,g];
f[x_]:=x^3;
g[x_]:=x^2;
g1=Plot[f[x],{x,-2,2},PlotPoints->70,DisplayFunction-Identity]
g2=Plot[g[x],{x,-2,2},PlotStyle->Dashing[{.05}],
PlotPoints->70,DisplayFunction->Identity]
-Graphics-
-Graphics-
Note que nada e mostrado na tela pois a inclusão do comando DisplayFunction->Identity faz com
que o gráfico não seja mostrado na tela (sempre que utilizamos esta opção gráfica devemos nos lembrar
de incluir a opção Display Function ->$DisplayFunction no comando Show para que o
gráfico seja mostrado. Chamamos de g1 e g2 os comandos de Plot... para que possamos mostrar os dois
gráficos ao mesmo tempo com o comando abaixo.
Show[g1,g2,DisplayFunction->$DisplayFunction]
42
-Graphics-
O comando
Faz com que vários objetos gráficos (gráfico1, gráfico2,... gráfico n) sejam mostrados ao mesmo
tempo sobre os mesmos eixos.
Utilizando o comando Options para obter informações sobre as opções do comando Plot nós
podemos digitar:
Options[Plot]
1
{AspectRatio -> -----------,Axes->Automatic,AxesLabel -> None,
GoldenRatio
AxesOrigin -> Automatic, AxesStyle -> Automatic,
Background->Automatic,ColorOutput->Automatic,Compiled-> True,
DefaultColor -> Automatic, Epilog -> {}, Frame -> False,
FrameLabel -> None, FrameStyle -> Automatic,
FrameTicks -> Automatic, GridLines -> None, MaxBend -> 10.,
PlotDivision -> 20., PlotLabel -> None, PlotPoints -> 25,
PlotRange -> Automatic, PlotRegion -> Automatic,
PlotStyle -> Automatic, Prolog -> {}, RotateLabel -> True,
Ticks -> Automatic, DefaultFont :> $DefaultFont,
DisplayFunction :> $DisplayFunction}
Sendo que :
43
Exemplo: Faça o gráfico de g ( x ) no intervalo [-2,4] tal que
g(x) = x se 0 x 2
g(x) = Cos( x ) se 2 x 8
g(x) = g(x-8) se x 8.
Clear[g]
g[x_]:=x/; 0<=x<2
g[x_]:=Cos[x] /;2<=x<8
g[x_]:=g[x -8]/; x>=8
Plot[g[x],{x,0,24},
Ticks-{{2,4,6,8,10,12,14,16,18,20,22,24},{-1,0,1,2}}]
44
-Graphics-
-SurfaceGraphics-
No exemplo acima verificamos que para fazer o gráfico de uma função de duas
variáveis devemos utilizar o comando
Plot3D[f(x,y),{x,xmín,xmáx},{y,ymín,ymáx}, opções].
45
Onde f(x, y) é a função de duas variáveis, {x,xmín,xmáx},{y,ymín,ymáx} especificam
os intervalos sobre o qual as variáveis(x e y respectivamente) irão assumir valores e as
opções podem ser conseguidas digitando-se Options[Plot3D].
Entre estas opções estão a de se ter ou não o gráfico envolvido por uma caixa
(Boxed->True ou Boxed->False respectivamente.). Os eixos também ser ou não
incluídos sendo que a opção é Axes->True ou Axes->None. Um gráfico que
incorpora algumas destas opções pode ser observado no exemplo abaixo:
-SurfaceGraphics-
No exemplo acima nós podemos ver que foram incluídas as opções Boxed-
>False essa opção faz com que o gráfico não seja inserido dentro de uma moldura se
desejarmos podemos definir o tamanho da moldura, bastando para isso que digitemos
BoxRatios->{x, y, z}. A opção Axes->None faz com que não sejam mostrados
os eixos enquanto que Shading->False faz com que o gráfico seja mostrado em
preto e branco. Porém percebemos que o gráfico não está muito nítido, pois o intervalo
das variáveis e relativamente grande, para que possamos obter um gráfico com maior
nitidez podemos digitar
46
-SurfaceGraphics-
-SurfaceGraphics-
47
A posição pela qual você vê este gráfico é a do ponto de vista pré-definido que é
{1.3, -2.4, 2.}. Suponha agora que você deseje visualizar o gráfico sob outro ponto de
vista, digamos que pôr traz por exemplo, uma maneira muito simples de você conseguir
isto seria selecionando o ícone Action no menu superior, e após feito isto selecionar a
opção 3D ViewPoint Selector. Neste instante você estaria vendo a seguinte tela
Nesta tela bastaria você movimentar as barras para obter um novo ponto de vista
(Você também poderia escolher o sistema de coordenadas que mais o agrada
(coordenadas cartesianas ou esféricas). Escolhido este “novo” ponto de vista basta clicar
Paste para que o Mathematica escreva a localização do ponto de vista escolhido. Feito
isto basta incluir ViewPoint->{x, y, z}, onde x, y, z são as coordenadas do
ângulo de visão escolhido, no comando gráfico para obter o ponto de vista desejado.
Vejamos o exemplo abaixo
48
-SurfaceGraphics-
No exemplo acima utilizamos o sistema de coordenadas esféricas e após proceder
como no explicado acima obtivemos uma vista posterior do gráfico do exemplo anterior
(ViewPoint->{.193,2.723,2.}).
-SurfaceGraphics-
49
Este exemplo nos mostra a utilização da opção BoxRatios->{nx,ny,nz}
onde nós podemos observar que o eixo z tem 3 vezes a dimensão do eixo x ou y.
Quando desejamos ter uma visão geométrica de uma função de duas variáveis
podemos utilizar as suas curvas de nível. Denomina-se curva de nível de f correspondente
ao nível z = c ao conjunto de todos os pontos do domínio de f tais que f ( x, y ) = c.
O comando básico para que consigamos fazer curvas de nível de uma função é
ContourPlot[f(x,y),{x,xmín,xmáx},{y,ymín,ymáx}, opções].
onde f(x,y) é uma função de duas variáveis na qual estamos interessados na suas
curvas de nível, {x,xmín,xmáx},{y,ymín,ymáx} especificam os limites sobre o qual as
variáveis poderão assumir valores.
Vejamos o exemplo abaixo:
-SurfaceGraphics-
50
-ContourGraphics-
51
Percebemos que o gráfico é mostrado todo preenchido por cores. Para que tenhamos só
linhas tais que f(x, y) = c devemos incluir a opção ContourShading->False como
pode ser observado a seguir.
ContourPlot[x^2+y^2,{x,-2,2}, {y,-2,2},ContourShading-
>False]
-ContourGraphics-
x2
Exemplo: Faça o gráfico das curvas de nível da função f ( x, y ) = 2 no
x y2
retângulo .[-7,7]x[-1,5].
52
-ContourGraphics-
Sendo que o comando Contours->n faz com que se tenha um gráfico com n
curvas de nível se você desejar saber o aspecto de uma curva de nível em especial você
pode digitar Contours->{n} e então terá a curva de nível dada por f ( x, y ) = n. No
exemplo abaixo exploraremos estes comandos.
x2 y2
Exemplo: Faça a curva de nível tal que f( x, y ) = 1.
4 9
Semelhantemente teremos:
ContourPlot[(x^2)/4+(y^2)/9,{x,-5,5},{y,-5,5},
ContourShading->False,Contours->{1},PlotPoints->40,
Frame->False,AxesOrigin->{0,0},Axes->True,
AxesLabel->{"x","y"}]
53
-ContourGraphics-
Clear[x,y,r,t];
x[t_]:= r Cos[t];
y[t_]:= r Sin[t];
Com o comando acima nós definimos x[t] e y[t] agora para fazermos o gráfico
faremos
r=1;
54
ParametricPlot[{x[t],y[t]},{t,-4,4}, PlotPoints->35]
-Graphics-
Antes de darmos o comando Plot... digitamos r=1 para definir que r neste
caso valeria 1. Percebemos, entretanto, que o gráfico não tem o aspecto de uma
circunferência, como esperávamos que ele tivesse, pois, os eixos não estão pré-definidos
com a mesma escala. Para que o gráfico seja mostrado da maneira como esperávamos
devemos incluir a opção AspectRatio->n onde n=1 para que y e x tenham a mesma escala
1
de medidas ( o valor pré definido da relação entre as escalas é 0.618034
GoldenRatio
1 5
já que GoldenRatio = ) . Feito isso o gráfico ficará
2
ParametricPlot[{x[t],y[t]},{t,-4,4},AspectRatio->1,
PlotPoints->35]
-Graphics-
Podemos também fazer vários gráficos num único para plano para isso faremos
55
ParametricPlot[{{f[t], g[t]}, {h[t], i[t]}...},{t, tmín,
tmáx},
opções]
Onde {{f[t], g[t]}, {h[t], i[t]}...} especificam as parametrizações das funções nas
quais estamos interessados e {t, tmín, tmáx} especifica o intervalo sobre o qual a variável t
pode assumir valores, para sabermos um pouco mais sobre as opções disponíveis
podemos digitar Options[ParametricPlot].
ParametricPlot[{{Cos[t],2Sin[t]},{Sin[t], Sin[t]}},
{t,-5,5},
AspectRatio->1,PlotStyle-
>Dashing[{.03}]},{RGBColor[1,0,1]}},
PlotPoints->150]
-Graphics-
x2
Exemplo: Faça o gráfico de y2 1.
4
56
x = 2 cos( t ) e
y = sen( t )
ParametricPlot[{2 Cos[t],Sin[t]},{t,-Pi,Pi},
AxesLabel->{"x","y"},PlotPoints->35,
PlotStyle->RGBColor[0,0,1]]
-Graphics-
Sendo que a curva é definida por x = x[t], y = y[t], z = z[t] desde tmín até tmáx .
Se desejarmos obter uma superfície no espaço devemos entrar com o comando
57
Exemplo: Faça o gráfico da curva dada por F (t) = ( cos( 3t ), sen( 3t ), t/7 ) no
intervalo .[0, 30].
-Graphics3D-
x2 y2
Exemplo: Faça o gráfico do elipsóide dado por z 2 1.
9 4
x ( t, r ) = 3 cos( t ) cos( r ).
y( t, r ) = 2 cos( t ) sen( r ).
z( t, r ) = 1 sen( t ).
onde t e - t .
2 2
58
-Graphics3D-
EXERCÍCIOS
Solução:
a) Plot[x^3 - 2 x^2, {x,-5,5}];
b) g[x_]:=(x^2 - 2 x + 1)/(x+2); Plot[g[x], {x,-1.5,7}];
c) Plot[Abs[x-2 x^3 + 3], {x,-6,6}].
Solução:
a) Plot[Log[10,x],{x,.5,10},PlotLabel->"log(x)",AxesLabel-
>{"x","log(x)"}];
b) Plot[Log[Abs[x-Abs[x-2]]], {x,-10,10},PlotLabel->"ln|x-| x-2||",
AxesLabel->{"x","y"},PlotPoints->50]
c) Plot[Log[.5,(x - x^2)],{x,0.02,.99},PlotLabel->" Log1/2x - x2 ",
AxesLabel->{"eixo x","eixo y"}]
d) Plot[Exp[Abs[x + 2 I]],{x,-5,5}, PlotLabel->“Exp|x+2i|”,
AxesLabel->{"x","y"}].
59
Exercício 3.03 - Construa os gráficos das funções abaixo sobre um mesmo par
de eixos, utilizando recursos gráficos para distinguir as funções:
Solução:
a) Plot[{Sin[x],Sin[2 x]},{x,-2Pi,2Pi},PlotStyle-
>{{Dashing[{0.05}]},{}},
Ticks->{{-2Pi,-Pi,Pi,2Pi},{-1,-.5,.5,1}},PlotPoints->100]
b) Plot[{Sin[x],Cos[x],Sec[x]},{x,-2Pi,2Pi},PlotPoints->50,
PlotStyle-
>{RGBColor[0,0,1],RGBColor[0,1,1],RGBColor[1,0,0]}]
c) gra1=Plot[x^2,{x,-10,10},PlotPoints->75, DisplayFunction-
>Identity,
PlotStyle->{RGBColor[0,1,1],Dashing[{0.05}]}]
gra2=Plot[x^-2,{x,-10,10},PlotStyle->RGBColor[0,0,1],
DisplayFunction->Identity]
Show[gra1,gra2,DisplayFunction->$DisplayFunction]
d) Plot[{Exp[x] Cos[x], x^2 Log[Abs[x+1]]},{x,-2,2},PlotPoints-
>100,
PlotStyle-
>{{RGBColor[1,0,0],Dashing[{0.05}]},{RGBColor[0,0,1]}}]
Solução:
a) Plot3D[x^2 y^3 - 2 x y, {x,-3,3},{y,-2,2},PlotPoints->30]
b) Plot3D[Cos[x] Sin[y -2], {x,-Pi,Pi},{y,-Pi,Pi},PlotPoints->30]
c) Plot3D[Log[Abs[x y - 2 y + 3 x]], {x,-2,2},{y,-2,2},Shading->False,
PlotPoints->30]
d) Plot3D[y Exp[x], {x,-2,8},{y,-4,4},PlotPoints->30,
BoxRatios->{2,2,1}]
60
b) f(x, y) = Exp[-x] sen(y-x) no intervalo [-2,6]x[-4,4],
sem cores, dando nome aos eixos, marcações em x= -2,0,2,4,6
e z= -1,1.
c) f(x, y) = x2 - 2 x y + y3/4 no intervalo [-3,3]x[-3,3], com
z tendo o dobro do eixo y e z.
d) f(x, y) = cos(sen(|x-3i|)) no intervalo [-5,5]x[-5,5],sem
eixos e sem caixa.
Solução:
a) Plot3D[Cos[x y],{x,-4,4},{y,-4,4},PlotPoints->40,Boxed-
>False,Axes->None]
b) Plot3D[Exp[-x] Sin[y-x], {x,-2,6},{y,-4,4},Shading-
>False,PlotPoints->35,
AxesLabel->{"x","y","z"},Ticks->{{-2,0,2,4,6},None,{-1,1}}]
c) Plot3D[x^2 - 2 x y + y^2, {x,-3,3},{y,-3,3},BoxRatios->{1,1,2}]
d) Plot3D[Cos[Sin[Abs[x-y I]]],{x,-5,5},{y,-5,5},PlotPoints->35,
Axes->None,Boxed->False]
Solução:
a) Plot3D[Exp[-x] Sin[y-x], {x,-2,6},{y,-4,4},Shading-
>False,PlotPoints->35,
ViewPoint->{0.450,4.000,-0.280},BoxRatios->{2,2,2}] em
coordenadas cartesianas.
b) Plot3D[Exp[-x] Sin[y-x], {x,-2,6},{y,-4,4},Shading->False,
PlotPoints->35,
ViewPoint->{3.611,-0.142,0.514}, BoxRatios->{3,3,3}] em
coordenadas esféricas.
c) Plot3D[Cos[Sin[Abs[x-y I]]],{x,-5,5},{y,-5,5},PlotPoints->35,
Axes->None,Boxed->False,ViewPoint->{0,0,-3.384}] em
coordenadas esféricas.
Solução:
a) ContourPlot[x^2 y^3 - 2 x y, {x,-3,3},{y,-2,2},ContourShading-
>False,
Contours->25]
b) ContourPlot[Cos[x] Sin[y -2], {x,-Pi,Pi},{y,-
Pi,Pi},ContourShading->False,
Contours->25]
c) ContourPlot[Log[Abs[x y - 2 y + 3 x]], {x,-2,2},{y,-2,2},
ContourShading->False,Contours->30]
d) ContourPlot[y Exp[x], {x,-2,8},{y,-4,4},ContourShading->False,
61
Contours->30]
a) x2 + y2 - 2 x y = 4
x2 y2
b) 1
16 25
c) 4x 2 + 9y 2 9
d) x2 - y2 = 16
Solução:
a) ContourPlot[x^2 + y^2 - 2 x y, {x,-10,10},{y,-10,10},
ContourShading->False, Contours->{4},Frame->False,
AxesOrigin->{0,0},Axes->True,PlotPoints->150]
b) ContourPlot[x^2/16 + y^2/25, {x,-10,10},{y,-10,10},
ContourShading->False, Contours->{1},Frame->False,
PlotPoints->50, Axes->True,AxesOrigin->{0,0}]
c) ContourPlot[Sqrt[4 x^2 + 9 y^2],{x,-5,5},{y,-5,5},
ContourShading->False, Contours->{9},
PlotPoints->50]
d) ContourPlot[x^2 - y^2, {x,-5,5},{y,-5,5},PlotPoints->50,
ContourShading->False, Axes->True, AxesOrigin->{0,0},
Contours->{4}]
a) f(x, y) = (1, t)
b) f(x, y) = (2t -1, t+1)
c) f(x, y) = (t cos(t), t sen(t))
d) f(x, y) = (e-tcos(t), sen(t))
Solução:
a) ParametricPlot[{1, t}, {t,-5,5},PlotPoints->50,
PlotStyle->RGBColor[0,1,0],Axes->True,AxesOrigin->{0,0},
AspectRatio->1]
b) ParametricPlot[{2 t -1, t + 1},{t,-5,5},PlotStyle->RGBColor[0,1,1]]
c) x[t_]:=t Cos[t];
y[t_]:=t Sin[t];
ParametricPlot[{x[t],y[t]},{t,-10,10},PlotStyle->RGBColor[0,0,1],
PlotPoints->40,AspectRatio->1]
d) x[t_]:=Exp[-t] Cos[t];
y[t_]:=Sin[t];
ParametricPlot[{x[t],y[t]},{t,-5,5},AspectRatio->1,
PlotStyle->RGBColor[1,0,0],PlotPoints->35]
62
a) x y = 4;
b) x2 + y2 = 16;
x2 y2
c) 1;
16 9
x2 y2
d) 1.
4 9
Solução:
a) x[t_]:=t;
y[t_]:=4/t;
ParametricPlot[{x[t],y[t]},{t,-2,2},PlotStyle->RGBColor[0,0,1]]
b) x[t_]:=4 Cos[t];
y[t_]:=4 Sin[t];
ParametricPlot[{x[t],y[t]},{t,-5,5},AspectRatio->1,PlotPoints->35]
c) x[t_]:=4 Cos[t];
y[t_]:=3 Sin[t];
ParametricPlot[{x[t],y[t]},{t,-5,5},PlotStyle->RGBColor[1,0,0]]
d) x[t_]:=2 Sec[t];
y[t_]:=3 Tan[t];
ParametricPlot[{x[t],y[t]},{t,-5,5},PlotStyle->RGBColor[0,0,1],
PlotPoints->35]
63
CAPÍTULO 4 - CÁLCULO DIFERENCIAL E INTEGRAL
4.1 - Introdução
4.2 - Limites
Como iremos utilizar cada função três vezes iremos inicialmente definir cada uma
delas.
Clear[f,g,h]
f[x_]:=x^2 + 1;
g[x_]:=c;
h[x_]:=x^2 - x^3;
Limit[f[x],x->0]
1
64
que calcula o lim x 2 1 1 , enquanto que digitando
x0
Limit[f[x],x->1]
2
Limit[f[x],x->13]
170
Digitando
Limit[g[x],x->0]
Limit[g[x],x->1]
Limit[g[x],x->13]
c
c
c
Limit[h[x],x->0]
Limit[h[x],x->1]
Limit[h[x],x->13]
0
0
-2028
3s 2 8s 16 y2 9 1 cos( 2 x)
Exemplo: Calcule lim , lim e lim
s4 2s 9s 4 y3
2
2y 2 7y 3 x0 sen( 3x)
, se existirem.
65
16
--
7
3s 2 8s 16
que calcula lim = 16/7.
s4 2s 2 9s 4
y2 9 6 1 cos( 2 x)
Calcula o limite lim = . E para calcular lim
y3 2y 2 7y 3 5 x0 sen( 3x)
= 0 teremos :
0.
O Mathematica também pode ser utilizado no cálculo de limites laterais tais que
x->“a” pela direita ou pela esquerda. Neste caso deve-se utilizar o comando
2 3
Exemplo: Calcule os seguintes limites: lim 2 , lim
x4 x 3x 4 x 4 x1
x1 sen x
e ; lim .
2x x2 1 x x
2 3
Primeiramente iremos calcular lim 2 = -infinito. Para
x4 x 3x 4 x 4
isto iremos digitar
Infinity
66
-Infinity
x1
Estaremos calculando lim = infinito. E ainda
2
x1 2x x 1
Podemos também calcular limites para uma f(x) quando x-> infinito( na notação
do Mathematica Infinity). Vejamos o exemplo abaixo:
3x 2 2 x 5 x2 5
Exemplo: Calcule os seguintes limites: lim , lim e
x x2 4 x 2 x 4
x
lim , .caso estes limites existam.
x x2 1
3x 2 2 x 5
Para encontrar o valor de lim = 3 faremos:
x x2 4
-Infinity
x2 5
encontramos lim = - infinito. E
x 2 x 4
x
encontra a resposta para lim = 1.
x x2 1
67
4.3 - Derivadas
4.3.1 - Introdução
A derivada de uma função, que pode ser denotada por f’ ( x ), é definida como
f ( x x) f ( x)
sendo f ' ( x) lim , caso este limite exista.
x 0 x
O Mathematica pode nos ajudar no cálculo de derivadas tanto algebricamente
como também calculando o valor da derivada em um ponto. Ele também calcula derivadas
de funções implícitas e derivadas parciais.
Para calcular a derivada de uma função f ( x ),que foi inicialmente definida , você
pode proceder de uma das maneiras abaixo:
f ( x x) f ( x) f ( x x) f ( x)
Exemplo: Simplifique a expressão , calcule lim ,
x x 0 x
caso este limite exista sendo que f(x) = 2 x3 + 7.
f[x_]:=2 x^3 + 7;
preder=(f[x + delta_x] - f[x])/delta_x;
Simplify[preder]
2 2
2 deltax + 6 deltax x + 6 x
Limit[preder,delta_x->0]
68
6 x
Clear[f];
D[f[x]*g[x], x]
Clear[n];
D[x^n,x]
-1 + n
n x
D[f[x]/g[x],x]//Together
d d
Exemplo: Calcule (2 x 4 4 x 3 7 x 1) , (4cos(t 2 )) , f ‘( x ) onde f ( x )
dx dt
sec 2 x
= ,
1 x2
g ‘ ( x ) sendo g ( x ) = sen(cos( 3 x )) - 3 cos2( 2 x ) e h’( x ) sendo h(x) =
1
.
2
1 cos (2 x )
69
Para calcular a derivada da segunda expressão podemos utilizar o comando:
D[4 Cos[t^2],t]
2
-8 t Sin[t ]
f[x_]:=Sec[x]^2/(1+x^2);
D[f[x],{x,1}]
2 2
-2 x Sec[x] 2 Sec[x] Tan[x]
------------ + ----------------
2 2 2
(1 + x ) 1 + x
Para calcular g’(x) iremos inicialmente definir a função g(x) e depois basta digitar
g’(x) para obtermos a derivada.
12 Cos[2 x] Sin[2 x] -
2 Cos[2 x] Sin[2 x]
-------------------
2 3/2
(1 + Cos[2 x] )
d4 3
Exemplo: Encontre as seguintes derivadas: Dx3 (x4 - 2 x2 + x - 5),
dx 4 2 x 1
, f ’’’ ( x ) .sendo f ( x ) = 2 tg(3x) e g(5) (x) se g(x) = cos 2x - sen 2x.
70
Para calcular a n-ésima derivada de uma expressão podemos digitar
D[expressão, {var,n}] então teremos:
24 x
d4 3
Que calcula Dx3 (x4 - 2 x2 + x - 5) = 24 x . Para calcular = 1152 (2
dx 4 2 x 1
x - 1)-5 digitamos:
1152
-----------
5
(-1 + 2 x)
Clear[f];
f[x_]:=2 Tan[3 x];
D[f[x],{x,3}]
4 2 2
108 Sec[3 x] + 216 Sec[3 x] Tan[3 x]
Clear[g];
g[x_]:=Cos[2 x] - Sin[2 x];
g'''''[x]
Sabemos que a equação da reta tangente ao ponto (x0, y0 ) pode ser dada pela
equação y - y0 = m(x - x0) onde m é o coeficiente angular da reta é e encontrado
71
calculando-se o valor da derivada no ponto (x0, y0 ) . Definindo f(x) e calculando o valor
m teremos:
Clear[f,x];
f[x_]:=Sqrt[x^2 + 9];
f'[x]
x
------------
2
Sqrt[9 + x ]
der[x_]:=x/(Sqrt[9 + x^2])
m=der[4]
4
-
5
Clear[x,y,y0,x0]
y0=5;
x0=4;
y[x_]:= y0 + m (x - x0);
y[x]//Together
9 + 4 x
-------
5
graff=Plot[f[x],{x,-1,7},PlotStyle->RGBColor[0,0,1],
DisplayFunction->Identity];
graftan=Plot[(9+4 x)/5,{x,-1,7},DisplayFunction-
>Identity];
ponto=Graphics[{PointSize[.04],Point[{4,5}]}];
-Graphics-
-Graphics-
-Graphics-
72
Show[graff,graftan,ponto,DisplayFunction-
>$DisplayFunction]
-Graphics-
Nem todas as funções com as quais nós podemos trabalhar estão definidas
explicitamente. Quando temos uma função do tipo x 5 2 y 3 3y x x 2 2 por
exemplo onde y=f(x) nós não podemos explicitar y como uma única função f(x) pois
podem existir varias funções que satisfaçam esta definição. Neste caso dizemos que y é
definida implicitamente como uma função de x ou que a função f é definida
implicitamente pela equação dada. Quando temos uma equação deste tipo o processo que
encontra a derivada de y em relação a x é denominado derivação implícita.
Para calcularmos derivadas implícitas iremos utilizar o comando
Dt[Expressão, variável] que encontra a derivada total da expressão com relação
d (exp ressão )
a variável( enquanto que Dst[Expressão]encontra o diferencial total
d (var iá vel)
dy
da expressão(d(expressão)). Deste modo Dt[y,x] é equivalente a y´= .Nos exemplos
dx
seguintes iremos mostrar a utilização deste comando que juntamente com o comando
Solve nos auxiliará no cálculo das derivadas implícitas.
73
Exemplo: Calcule as seguintes derivadas implícitas, com relação a x :
a) x 2 y 2 16,
b) x 2 y 2 x 2 y 2 .
Clear[eq];
eq=x^2 + y^2==16
2 2
x + y == 16
derivada=Dt[eq,x]
2 x + 2 y Dt[y, x] == 0
Solve[derivada,Dt[y,x]]
x
{{Dt[y, x] -> -(-)}}
y
y
Logo a derivada procurada é .
x
Clear[eq];
eq=x^2*y^2- x^2- y^2==0
2 2 2 2
-x - y + x y == 0
deriv=Dt[eq,x]
2 2
-2 x + 2 x y - 2 y Dt[y, x] + 2 x y Dt[y, x] == 0
Solve[deriv,Dt[y,x]]
2
-x + x y
{{Dt[y, x] -> -(---------)}}
74
2
-y + x y
d( x 2 y 2 x 2 y 2 ) x. xy 2
Logo 2 .
dx x yy
Uma outra maneira de encontrarmos estas derivadas implícitas é definir a equação
da seguinte maneira:
Clear[eq];
eq=x^2y[x]^2==x^2 + y[x]^2
2 2 2 2
x y[x] == x + y[x]
primeiropasso=D[eq,x]
2 2
2 x y[x] + 2 x y[x] y'[x] == 2 x + 2 y[x] y'[x]
Solve[primeiropasso,y'[x]]
2
-x + x y[x]
{{y'[x] -> -(---------------)}}
2
-y[x] + x y[x]
Clear[eq,step1];
eq = 16 x^4 + y^4 == 32
75
4 4
16 x + y == 32
step1=Dt[eq,x]
3 3
64 x + 4 y Dt[y, x] == 0
Solve[step1,Dt[y,x]]
3
-16 x
{{Dt[y, x] -> ------}}
3
y
m[x0_,y0_]:=-(16 x0^3)/(y0^3)
retatangente[x0_,y0_]:=y-y0==m[x0,y0]*(x-x0)
retatangente[1,2]//Simplify
-2 + y == 2 - 2 x
-ContourGraphics-
-ContourGraphics-
-Graphics-
76
Mostrando todos os objetos gráficos:
Show[ponto,tgplot,eqplot,DisplayFunction-
>$DisplayFunction,
Axes->True,AspectRatio->1]
-Graphics-
77
f ´(x) f ´´(x) Conclusão
f ´(x) > 0 f(x)é crescente no intervalo.
f ´(x) < 0 f(x) é decrescente no intervalo.
f ´´(x) > 0 O gráfico é côncavo para cima.
f ´´(x) < 0 O gráfico é côncavo para baixo.
f ´(x) = 0 f ´´(x) > 0 Ponto de máximo local.
f ´(x) = 0 f ´´(x) < 0 Ponto de mínimo local.
f ´(x) = 0 Não existe. Ponto de inflexão.
f ´(x) = 0 f ´´(x) = 0 Ponto de inflexão.
Não existe. Não existe. Ponto de inflexão.
f[x_]=x^2 - 2 x + 4;
f'[x]
-2 + 2 x
Solve[f'[x]==0,x]
f[1]
f'[1]
3
0
f''[x]
portanto percebemos que f ‘’(x) >0 para todos os valores de x, o que implica que
f(x) é côncava para baixo e possui um mínimo em x=1 como pode ser notado a partir do
gráfico de f(x).
Plot[f[x],{x,-10,10}]
78
-Graphics-
g[x_]:=2 Sin[x];
g'[x]//Simplify
2 Cos[x]
Plot[g'[x],{x,-Pi,Pi}]
-Graphics-
FindRoot[g'[x]==0,{x,1}]
{x -> 1.5708}
FindRoot[g'[x]==0,{x,-1}]
{x -> -1.5708}
79
Encontrando a derivada segunda de g(x) e calculando seu valor nos pontos
críticos teremos:
g''[x]//Simplify
-2 Sin[x]
g''[-1.5708]
2.
g''[1.5708]
-2.
Plot[g[x],{x,-Pi,Pi},PlotRange->All]
-Graphics-
80
A expressão que nos dá o volume pode ser definida como:
V[x_]:=x*(15-2 x)*(8-2 x)
derivada=V'[x]
(8 - 2 x) (15 - 2 x) - 2 (8 - 2 x) x - 2 (15 - 2 x) x
Para que tenhamos um ponto de máximo ou de mínimo esta derivada tem que ser
igual a zero portanto devemos achar estes pontos utilizando Solve:
Solve[derivada==0,x]
5
{{x -> -}, {x -> 6}}
3
Entre estes dois pontos devemos nos decidir qual representa um ponto de máximo
e qual representa um ponto de mínimo. Calculando V[5/3] e V[6]
V[5/3]//N
81
V[6]
90.7407
-72
Plot[V[x],{x,-10,10},Ticks->{{8},Automatic}]
-Graphics-
f[x_]:=x^3 + 5 x^2 + 3 x - 4;
f'[x]
2
3 + 10 x + 3 x
Para encontrarmos os pontos críticos de f(x) devemos encontrar os pontos nos
quais a sua primeira derivada se anula
Solve[f'[x]==0,x]
82
1
{{x -> -3}, {x -> -(-)}}
3
ou seja f ’(x) = 0 para x=-3 e x=-1/3. Analisando a derivada segunda teremos para
sabermos se estes pontos são de máximo ou de mínimo faremos
f''[x]
f''[-3]
f''[-1/3]
10 + 6 x
-8
8
Percebemos pela equação de f ‘’(x) que ela define uma reta crescente portanto f
‘’(x) = 0 em um único ponto, encontrando este ponto teremos:
Solve[f''[x]==0,x]
5
{{x -> -(-)}}
3
Então f ‘’(x) < 0 para x < -5/3 e f ‘’(x) > 0 para x >-5/3. Do exposto acima
podemos concluir que no intervalo -<x<-5/3 o gráfico é côncavo para baixo e no
intervalo -5/3<x< o gráfico é côncavo para cima. Podemos perceber que o ponto -5/3 é
um ponto de inflexão. O gráfico da função é mostrado abaixo.
-Graphics-
4.4 - Integrais
4.4.1 - Introdução
83
Neste capítulo introduziremos o método para se calcular somatórias,
introduziremos também o conceito de integral definida e indefinida, mostrando com
utilizar o Mathematica para nos auxiliar na solução de integrais de ambos os tipos.
Mostraremos também a utilização de integrais para calcular áreas, volumes de sólidos de
revolução e comprimento de arcos entre outras coisas.
4.4.2 - Somatórias
n
Quando estamos interessados numa soma do tipo f (i) nós podemos utilizar o
ii0
comando Sum[f(i), {i,imín, imax}] onde i varia desde imín até imax variando de
um em um. Se você desejar que a variação ocorra com outro passo basta fazer
Sum[f(i), {i,imín, imax, passo}].
Sum[x^2 - 3 x,{x,10}]
220
10
que realiza a x 2 3x , como não é especificado nenhum índice o programa
x 1
interpreta que imín é igual a 1. Uma outra maneira de calcularmos esta somatória seria
digitar
Sum[x^2 - 3 x,{x,1,10}]
220
b) Para realizar esta somatória é só identificar o passo como 2, pois como a soma
se inicia em 0 a seqüência dos x-ésimos termos ficará 0, 2, 4, 6,... Então teremos:
84
N[Sum[x^(1/3),{x,0,100,2}],10]
176.033524
Sum[f(i,j,...),{i,imín,imáx,passo},{j,jmín,jmáx,passo},
{...,...,...},...]
10
i 2 j3
Calcula
i , j 0 3i 2
941899.
85
Exemplo: Calcule as seguintes integrais indefinidas:
x 1/ 3 2 x 1/ 2
a) xdx b) ( )dx
x
1
c) dx . d) log xE x dx
cot g( x 1)
e) 2
x 2 Exp(5x)dx
a)
Integrate[x,x]
2
x
--
2
x2
que calcula xdx = 2
.
b) Também podemos definir a expressão como uma função (no caso f(x)) e então
nos referenciarmos a ela como f(x) no comando Integrate desta maneira:
Clear[f];
f[x_]:=(x^(1/3) - 2 x^.5)/x
Integrate[f[x],x]
1/3 0.5
3 x - 4. x
x 1/ 3 2 x 1/ 2
calcula ( x
)dx .
Integrate[(1)/(Cot[x-1]),x]
-Log[Cos[1 - x]]
Integrate[Log[x] Exp[-x],x]
86
Log[x]
ExpIntegralEi[-x] - ------
x
E
Você pode notar que a solução dada pelo Mathematica inclui uma função pré-
definida no programa que se chama ExpIntegralEi para saber o que esta função faz
nós podemos utilizar o Help. Desta forma teremos:
??ExpIntegralEi
ExpIntegralEi[z] gives the exponential integral
function Ei(z).
Attributes[ExpIntegralEi] = {Listable, Protected}
Caso você precise calcular o valor desta integral num ponto determinado basta
entrar com o ponto pois o programa consegue calcular o valor de ExpIntegralEi.
5 x 2
2 Sqrt[E x ] (-2 + 5 x)
--------------------------
25 x
Agora que já calculamos a integral indefinida de uma função iremos definir o que
vem a ser a integral definida.
Se f é uma função definida no intervalo fechado [a,b] então a integral definida de
b b n
f, de a até b, denotada por f ( x)dx é dada por f ( x)dx = lim f ( i ) i x , se o limite
a a
|x|0 i 1
existir.
No Mathematica para calcularmos uma integral definida devemos utilizar o
seguinte comando:
Integrate[f(x), {x,a,b}]
87
Exemplo: Calcule as seguintes integrais definidas:
5
(x
2
a) 2 x)dx b)
0
2
cos x
2
sec 5 ( x 1) dx
0
7 8
ln xExp( x)dx
3
c) Ln( x 2)dx d)
2 0
2
e) xsin(cos( x 2)dx
1
Integrate[x^2 - 2x,{x,0,5}]
50
--
3
Integrate[Cos[x^2] Sec[x-1]^5,{x,0,1.2}]//N
3.96917
Integrate[Sqrt[Log[x^3 - 2]],{x,2,7}]//N
10.2638
Integrate[Log[x] Exp[-x],{x,0,8}]//N
-0.577951
Integrate[Sqrt[x Sin[Cos[x-2]]],{x,1,2}]//N
1.05187
88
a) Inicialmente iremos definir as funções f e g(lembre-se de “limpar” qualquer
definição anterior de f e g!).
Clear[f,g,Area];
f[x_]:=Sin[x]
g[x_]:=x^3 - 3 x
Plot[{f[x],g[x]},{x,-10,10},PlotStyle-
>{RGBColor[1,0,0],
RGBColor[0,0,1]},Ticks->{{-2,-5,-
10,2,5,10},Automatic}]
-Graphics-
Precisamos saber quais são os pontos tais que f(x) = g(x) para encontra-los
utilizaremos FindRoot sendo que as raízes estão próximas a -2, 0, 2.
FindRoot[f[x]==g[x],{x,-2}]
{x -> -1.87338}
FindRoot[f[x]==g[x],{x,0}]
{x -> 0.}
FindRoot[f[x]==g[x],{x,2}]
{x -> 1.87338}
Como já sabemos quais são os pontos basta encontrar o valor da integral definida
em cada intervalo para sabermos qual é a área entre as curvas(note que há locais onde f é
maior que g e também locais onde ocorre o inverso).
Area=Integrate[g[x]-f[x],{x,-
1.87338,0}]+Integrate[f[x]-g[x],{x,0,1.87338}]
6.96615
Clear[f,g,h,Area];
89
f[x_]:=Cos[x];
g[x_]:=x^2-2;
h[x_]:=x^3;
Plot[{f[x],g[x],h[x]},{x,-3,1},PlotStyle-
>{RGBColor[1,0,0],
RGBColor[0,1,0],RGBColor[0,0,1],RGBColor[0,1,1]},
AspectRatio->1,PlotRange->{-2,2.5}]
-Graphics-
Feito o gráfico percebemos que existe três pontos de intersecção entre f(x), g(x) e
h(x).Como o comando Roots não pode ser utilizado devemos utilizar FindRoot sendo
que as raízes estão próximos a x=-1.5, x=-1 e x=1. Logo para achar as raízes com mais
precisão teremos:
FindRoot[f[x]==g[x],{x,-1.5}]
{x -> -1.45462}
FindRoot[g[x]==h[x],{x,-1}]
{x -> -1.}
FindRoot[f[x]==h[x],{x,1}]
{x -> 0.865474}
A área entre as curvas e dada por f(x) - g(x) no intervalo -1.45462 até -1 mais f(x)
- h(x) no intervalo de -1 até .86474, utilizando o comando Integrate e definindo a
área entre as curvas como Area teremos:
Area=Integrate[f[x]=g[x],{x,-1.45462,-1}]-
Integrate[f[x]-h[x],{x,-1,0.86474}]
2.85377
90
Exemplo: Volume de sólido de revolução - Calcule os seguintes volumes dos
sólidos de revolução gerados por:
a) Região delimitada por y = x2 , o eixo x,e as retas x=1 e x=3
quando y(x) sofre uma rotação em torno do eixo x.
b) Região delimitada por y = x2 + 2 e a reta y = x + 4 em torno do
eixo x.
Clear[f,volume];
f[x_]:=x^2;
a=1;
b=2;
volume=Pi*Integrate[f[x]^2,{x,a,b}]
31 Pi
-----
5
b) Neste caso para ter uma idéia geométrica do sólido gerado nós iremos fazer o
gráfico das funções (não no espaço mas no plano).
Clear[f,volume]
f[x_]:=x^2 + 2
g[x_]:=x+4;
Plot[{f[x],g[x]},{x,-3,3},PlotStyle->{RGBColor[0,0,1],
RGBColor[.3,0.7,0.2]}]
-Graphics-
Utilizando o comando Roots para encontrar os pontos nos quais f(x) = g(x)
teremos:
Roots[f[x]==g[x],x]
91
x == 2 || x == -1
O que implica que o intervalo de integração é a=-1 e b=2 logo utilizando a fórmula
teremos:
volume=Pi*Integrate[(g[x]^2)-(f[x])^2, {x,-1,2}]
162 Pi
------
5
162
Ou seja o volume do solido gerado é de unidades de volume. No exemplo
5
seguinte mostraremos a utilização de integrais no cálculo de comprimentos de arcos.
Clear[eq,f,y]
y[x_]:=((x^2 +Sqrt[x])^(3/2))/3
y[x]
2 3/2
(Sqrt[x] + x )
-----------------
3
y'[x]
1 2
(--------- + 2 x) Sqrt[Sqrt[x] + x ]
2 Sqrt[x]
------------------------------------
2
Integrate[Sqrt[1+(y'[x])^2],{x,0,5}]//N
92
48.1297
Clear[y,eq];
eq=y[x]^4/2-(2 x^2 - 3 x +2)
4
2 y[x]
-2 + 3 x - 2 x + -----
2
Solve[eq==0,y[x]]
2 1/4
{{y[x] -> -(4 - 6 x + 4 x ) },
2 1/4
{y[x] -> -I (4 - 6 x + 4 x ) },
2 1/4
{y[x] -> I (4 - 6 x + 4 x ) },
2 1/4
{y[x] -> (4 - 6 x + 4 x ) }}
4
Entretanto somente 4x 2 6x 4 é a solução que nos interessa pois é onde se
encontra os nossos pontos então definindo y(x) como sendo esta equação e encontrando
y´(x) teremos:
y[x_]:=(4-6 x + 4 x^2)^(1/4)
y'[x]
-6 + 8 x
---------------------
2 3/4
4 (4 - 6 x + 4 x )
Integrate[Sqrt[1 + y'[x]^2],{x,1,6}]//N
5.42033
93
4.4.5 - Integrais duplas e triplas
Uma integral dupla pode ser resolvida com o auxílio do Mathematica utilizando
o comando Integrate sendo que deveremos acrescentar as variáveis da seguinte
forma:
Integrate[f(x1,x2,...,xn), {x1,x2,...,xn}]
onde f(x1, x2, ..., xn,y) é integrada em relação a x1, x2, ... xn, ou seja estaremos
encontrando ... f ( x1, x2,... xn)dx1dx2... dxn . Se tivermos uma integral dupla nossas
variáveis serão apenas x1 e x2(ou x e y se você preferir). Para integrais triplas teremos
uma tripla de variaveis(x,y,z). Se estivermos querendo saber o valor de uma integral
definida podemos utilizar o comando
/2 1 xy sen x 3 3x
a) x 2 ydxdy b) x 0 y 0 1 4 y 2 dxdy c) x 0 y x*x 2 x xydxdy
94
2 2
-2 x 8 x y 8 y
Sqrt[x - 2 y] (----- + ----- - ----)
15 15 15
Log[5]
------
8
Integrate[x y,{x,0,3},{y,x^2 - 2 x, Sqrt[x]}]
9
--
20
Integrate[Sin[x ] z y Cos[y],x,y,z]
2
z Cos[x] (-Cos[y] - y Sin[y])
------------------------------
2
Integrate[Sqrt[1-z^2],{x,0,1},{y,0,1},{z,0,1}]
Pi
--
4
4.52808
95
4.5.1 - Introdução
dy
Uma equação diferencias que pode ser escrita na forma p(x)y q(x) é
dx
chamada uma equação diferencial de 1 Ordem. Para resolver este tipo de equção
manualmente teriamos que achar um fator integrante que reduz a equação original a uma
equação de variáveis separáveis(Para relembrar como encontrar estes fatores integrantes
veja por exemplo a Ref. 2 no final desta apostila). Em equações deste tipo o Mathematica
pode nos ajudar a encontrar a solução diretamente utilizando o comando DSolve .
Digitando
DSolve[eqdif, y[x], x]
dy
Exemplo: Encontre a solução de 3xy x cos(2x) .Faça também o gráfico da
dx
solução para .c=-8,-4,0,4,8.
Primeiramente iremos definir a equação diferencial como sendo eq. Feito isto
basta utilizar o comando DSolve para encontrar a solução para y(x).
Clear[eq,x,y];
eq=y'[x] - 3 x == x Cos[2 x]
sol=DSolve[eq,y[x],x]
2
6 x + Cos[2 x] + 2 x Sin[2 x]
{{y[x] -> C[1] + ------------------------------}}
4
96
Plot[Evaluate[Table[sol[[1,1,2]]/. C[1]->i,{i,-
16,8,4}]],
{x,.01,2 Pi}]
60
40
20
1 2 3 4 5 6
-Graphics-
O comando Table faz com que apliquemos a função “sol” cada um dos C[1]
definidos por i, isto é, ele aplica C[1] = -16, -12, ..., 8 variando de 4 em 4 já que o passo
foi assim definido. Para saber maiores detalhes sobre a função Table veja o capítulo 5.
No exemplo seguinte mostraremos como calcular a solução de uma equação sujeita a uma
certa condição inicial y(x0)=k0.
Clear[eq,x,y,sol]
sol=DSolve[{eq,y[0]==1},y[x],x]//Simplify
x
11 E Cos[x] 3 x Cos[x] 3 Sin[x]
{{y[x] -> ----- - ------- - ---------- + -------- -
10 2 x 2 2
10 E
3 Sin[x] 3 x Sin[x]
-------- + ----------}}
2 x 2
10 E
note que foi incluido a condição inicial y(0)=0 para a resolução do problema.
97
dy
Exemplo: Compare as soluções de y f (x) , onde f(x) e definida como
dx
sendo Sen(x), .Cos(x), Tan(x), Exp(-x), Exp(x), x Exp(-x) Sen(x) sujeitas a condição
inicial y(0)=0.
Podemos utilizar o comando DSolve para resolver cada uma das equações
dadas, entretanto e mais rápido e prático resolver todas as equações ao mesmo tempo,
utilizando alguns comandos novos.
Primeiramente iremos definir lista com todas as funções f(x) e então iremos
resolver a equação diferencial para cada uma delas.
Clear[eq,f,x,y,sol];
func={Sin[x],Cos[x],x Sin[2 x],Exp[-x],Exp[x],x
Exp[x]}
-x x x
{Sin[x], Cos[x], x Sin[2 x], E , E , E x}
1 -Cos[x] + Sin[x]
{{{y[x] -> ---- + ----------------}}, {{<<1>>}},
x 2
2 E
1
<<3>>, {{y[x] -> ---- + <<1>>}}}
x
4 E
Agora para termos uma idéia de como são as soluções destas equações iremos
fazer os gráficos de todas elas.
Para isso utilizaremos o comando Table para extrair cada uma das soluções em
sol e coloca-las numa tabela. Colocaremos o nome de toplot pois iremos utlizá-la para a
construção dos gráficos. O comando Short é incluido para mostrar o que temos em
toplot.
toplot=Table[y[x] /. sol[[i,1]],{i,1,6}];
Short[toplot,2]
1 -Cos[x] + Sin[x] -1
98
{---- + ----------------, ---- + <<1>>,
x 2 x
2 E 2 E
x
-4 1 E (-1 + 2 x)
----- + <<1>>, <<2>>, ---- + -------------}
x x 4
25 E 4 E
O comando Partition faz com que a os gráficos gerados por Table[g[i]... sejam
mostrados em linhas de dois objetos gráficos cada. Se tivéssemos colocado
Partition[Table[g[i],{i,1,6}],3] teríamos três gráficos em cada linha e
assim por diante.
O comando Show[GraphicsArray[graphs]] faz com que os objetos
gráficos sejam mostrados como um array ou seja como um vetor.
4
3 -6 -4-2.5
-2 2 4 6
2 -5
-7.5
1 -10
-12.5
-6-4-2 2 4 6 -15
2
-20
-6 -4 -2 2 4 6
-40
-6 -4 -2
-2 2 4 6 -60
-80
-4 -100
-6 -120
100 150
125
50 100
75
50
-6 -4 -2
-50 2 4 6 25
-100 -6-4-2 24 6
-GraphicsArray-
99
4.5.3 - Equações Diferencias de variáveis separáveis
Seja uma equação diferencial que pode ser escrita na forma g(y) y´= f(x) então ela
é dita uma equação diferencial separavel. Reescrevendo esta equação como
dy
g( y) f ( x) g( y)dy f ( x)dx podemos facilmente encontrar a solução por
dx
g( y)dy f ( x)dx C onde C é uma constante arbitrária que irá depender das
condições iniciais do problema.
2
-Cos[2 x] y[x]
Solve[--------- + Log[y[x]] - ----- == C[1], y[x]]
2 2
Você pode perceber que o Mathematica não e capaz de solucionar este problema
diretamente. Entretanto percebemos que trata-se de uma equação de variáveis separáveis
logo podemos utilizar o método descrito acima para achar a solução do problema.
Separando as equações e chamando-as de eqx e eqy teremos:
eqx=Sin[2 x];
eqy=(1-y^2)/y;
solx=Integrate[eqx,x]
-Cos[2 x]
---------
2
soly=Integrate[eqy,y]
2
-y
100
--- + Log[y]
2
solgeral=soly==solx+C
2
-y Cos[2 x]
--- + Log[y] == C - --------
2 2
Para termos uma idéia de como estão se comportando as soluções desta equação
diferencial podemos fazer um mapa de contorno das soluções, sendo que este é definido
por solx-soly = Cte.
ContourPlot[solx-soly,{x,1,6},{y,1,6},
ContourShading->False,Contours->25]
1
-ContourGraphics- 1 2 3 4 5 6
Finalmente achando uma solução particular para quando y(1)=2 teremos que
resolver a equação para C quando x=1 e y(1)=2. Resolvendo esta equação
aproximadamente
101
Chamando esta solução particular de solpart e colocando o valor de C como sendo
-1.51493 encontraremos:
Uma equação diferencial que pode ser escrita na forma M(x,y) dx + N(x,y) dy =
M N
0 tal que é chamada equação diferencial exata. Se isto ocorrer então existirá
x y
uma função ( x, y) tal que d M( x, y)dx N ( x, y)dy 0 . A solução da equação
diferencial exata será ( x, y) =C onde C é uma constante. Vejamos o exemplo abaixo:
Inicialmente iremos definir as funções eqM e eqN que são as funções que
acompanham dx e dy respectivamente.
Clear[eqM,eqN,x,y,phi];
eqM=y Exp[x y] Cos[2 x] - 2 Exp[x y] Sin[2x] + 2 x;
eqN=x Exp[x y] Cos[2 x] - 3;
M N
Feito isto, iremos verificar se caso isto ocorra podemos solucionar o
y x
problema como explicado anteriormente.
D[eqM,y]==D[eqN,x]
True
Como as derivadas parciais são iguais então existe uma função phi como definida
acima, para encontra-la iremos integrar eqM com relação a x.
phi=Integrate[eqM,x]+f[y]
2 x y
x + E Cos[2 x] + f[y]
Integrando eqN com relação a y para descobrir quem é a função f[y] teremos:
102
soln=Integrate[eqN,y]
x y
-3 y + E Cos[2 x]
Comparando soln e phi percebemos que f[y] =-3y e que, portanto, a solução da
equação é phi=c = phi= x 2 Exp( xy)Cos(2x) 3y c onde c é uma constante.
onde eqdif define a equação diferencial com a qual estamos trabalhando, condini
são as condições iniciais, lembrando que para uma equação diferencial de n-ésima ordem
precisamos de n condições iniciais. Fun indica a função em que estamos interessados em
obter, isto é, se queremos y(x), y´(x)...y(n-1)(x). O intervalo no qual estamos procurando a
solução e definido por varmin e varmax, para o menor e o maior valores da variavel var
respectivamente.
É bom salientar que o Mathematica não irá retornar uma função com a qual você
pode trabalhar, isto é, você não saberá uma fórmula matemática para aquela função a qual
ele chama de InterpolationFunction, portando a melhor maneira de visualizar a
solução será através da construção de um gráfico da solução obtida utilizando o comando
Plot. Vejamos o exemplo abaixo:
Clear[y,sol]
sol=NDSolve[{y'[x] x^2 - y[x]^2 ==Cos[3 x] Exp[ y[x]],
y[.5]==1},y[x],{x,.5,10}]
Para colocar a solução sol em y[x] faça y[x] /. sol. Fazendo o gráfico,
utilizando a solução anterior sol colocada em y[x] teremos:
Plot[y[x]/.sol,{x,1,10}]
103
1.6
1.4
1.2
2 4 6 8 10
0.8
-Graphics-
toplot=Table[y[x] /. sol[i],{i,1,5}];
Plot[Evaluate[toplot],{x,2,10},AspectRatio->1]
104
8
4 6 8 10
-Graphics-
Seja uma equação diferencial do tipo p(x,y) y´´(x) + q(x,y)y´(x) + r(x,y) y(x) =
g(x,y) se p(x,y) =a q(x,y) = b , r(x,y) =c e g(x,y) = 0 então ficaremos com ay´´(x) +
by´(x) + cy(x) = 0 onde a, b e c são constantes. Uma equação deste tipo é chamada uma
equação diferencial homogênea de 2 odem com coeficientes constantes. Supondo a
solução deste tipo de equação como sendo y(x) = Exp(r x) então y´(x) = rExp(r x) e y´´(x)
= r2Exp(rx). Substituindo na equação diferencial teremos:
ar2Exp(r x) + brExp(r x) + cExp(r x) = 0
já que Exp( r x) sempre é diferente de zero teremos que ar2 + br + c = 0 e o nosso
problema se reduz a solução da equação do 2 grau em r. Sendo r1 e r2 as soluções da
equação anterior poderemos ter três tipos de solução:
Se r1 e r2 forem reais e desiguais, a solução da equação diferencial é
y=C1Exp(r1x) + C2Exp(r2x)
Se r1 e r2 forem complexos conjugados, i a solução geral é
y=C1Exp( x )Cos( x ) + C2Exp( x )Sen( x )
Se r1 e r2 forem iguais entâo a solução geral será
y=C1Exp(r1x) + C2xExp(r2x)
105
Clear[x,y]
DSolve[y''[x] - 4 y'[x]+ 4 y[x]==0,y[x],x]
2 x 2 x
{{y[x] -> E C[1] + E x C[2]}}
DSolve[{y''[x] - 6 y'[x]+ 5
y[x]==0,y[0]==1,y'[0]==0},y[x],x]
x 5 x
5 E E
{{y[x] -> ---- - ----}}
4 4
Clear[x,y]
sol=DSolve[{2 y''[x] - 3 y'[x]+ 43/2 y[x]==0,y[0]==1
,y'[0]==0},y[x],x]
3 I
---
1 2 ((6 - 2 I Sqrt[163]) x)/8
{{y[x] -> (- - ---------) E +
2 Sqrt[163]
3 I
---
1 2 ((6 + 2 I Sqrt[163]) x)/8
(- + ---------) E }}
2 Sqrt[163]
Note que a solução apresentada está na forma de número complexo, para coloca-
la na forma de soma de cosenos e senos deveremos utilizar a função ComplexExpand
que faz essa transformação já que nossas variáveis são reais. Fazendo sol[[1,1,2]]
para pegar a parte da solução que nos interessa(veja mais sobre isto no capítulo 5)
faremos:
sol[[1,1,2]]//ComplexExpand
(3 x)/4 Sqrt[163] x
3 E Sin[-----------
]
106
(3 x)/4 Sqrt[163] x 4
E Cos[-----------] - --------------------------
-
4 Sqrt[163]
Plot[y[x] /. sol,{x,0,7}]
50
1 2 3 4 5 6 7
-50
-100
-150
-Graphics-
Clear[x,y]
DSolve[{9 y''[x] - 12 y'[x]+ 4
y[x]==0,y[0]==1,y'[0]==0},y[x],x]
(2 x)/3
(2 x)/3 2 E x
{{y[x] -> E - ------------}}
3
Exemplo: Encontre a solução da equação diferencial yIV - 2 y´´´ -33 y´´ - 22 y´+56
y =0
107
Nós podemos encontrar soluções para equações diferenciais até quarta ordem
diretamente utilizando DSolve, assim sendo teremos:
Clear[sol,eq,y]
eq=D[y[x],{x,4}]- 2 D[y[x],{x,3}] -33 y''[x] - 22 y'[x]
+ 56 y[x]
(3) (4)
56 y[x] - 22 y'[x] - 33 y''[x] - 2 y [x] + y [x]
sol=DSolve[eq==0,y[x],x]
C[1] C[2] x 7 x
{{y[x] -> ---- + ---- + E C[3] + E C[4]}}
4 x 2 x
E E
onde colocamos a solução da equação em sol e C[1], C[2], C[3] e C[4] são
constantes que dependem das condições iniciais.
Primeiramente iremos definir a função wronskiano, que terá como entrada uma
lista de funções(listas serão discutidas em detalhes no próximo capitulo) e nos retornará
o wronskiano das funções dadas. Uma lista é definida como um conjunto de
dados(funções, números, etc) que são delimitados por chaves{}. Por enquanto apenas
tecle sem se preocupar muito com o significado dos novos comandos.
wronskiano[list_]:=Module[{n,r,matrix},
n=Length[list];
r[1]=list;
108
r[k_]:=r[k]=D[r[k-1],x];
matrix=Table[r[i],{i,1,n}];
Det[matrix]];
e teremos que o wronskiano das funções é zero ou seja elas são linearmente
dependentes.
Seja agora o problema de encontrar uma solução particular para uma equação
diferencial da forma y´´+ p(x) y´+ q(x) y = g(x), teremos que a solução particular será
dada por:
y 2( x ) g ( x ) y1( x ) g ( x )
Y ( x ) y1( x ) dx y 2( x ) dx
W ( y1, y 2)( x ) W ( y1, y 2)( x )
onde y1(x) e y2(x) são as soluções da equação diferencial homogênea associada
e W(y1,y2)(x) é o wronskiano como definido acima.
Desta forma a solução da equação diferencial será
y=C1y1(x) + C2y2(x) + Y(x).
eqhom=y''[x] + y[x]
DSolve[eqhom==0,y[x],x]
y[x] + y''[x]
y2[x]=Cos[x]
y1[x]=-Sin[x]
Cos[x]
-Sin[x]
109
Agora podemo calcular o wronskiano que será utilizado na obtenção da equação
particular e que aqui recebeu o nome de W[x].
W[x]=wronskiano[{y1[x],y2[x]}]
2 2
Cos[x] + Sin[x]
x x x x
Cos[x] (Log[Cos[-] - Sin[-]] - Log[Cos[-] + Sin[-]])
2 2 2 2
C[2] Cos[x] +
x x x x
Cos[x] (Log[Cos[-] - Sin[-]] - Log[Cos[-] + Sin[-]])-
C[1] Sin[x]
2 2 2 2
Para acharmos uma solução numérica para uma equação diferencial de ordem
superior quando não conseguimos encontrar uma solução explicita com o comando
DSolve devemos utilizar o comando NDSolve. Para tanto devemos proceder como o
mostrado para equações de primeira ordem, não esquecendo de colocar todas as condições
iniciais necessárias.
110
Sin[1 + 1.25 x]
-E + 0.75 y'[x] + y''[x]
sol=NDSolve[{eq==0,y[1]==1,y'[1]==2},y[x],{x,1,10}]
Plot[y[x] /. sol,{x,1,10}]
14
12
10
8
6
4
2
2 4 6 8 10
-Graphics-
4.6 - Exercícios
x Exp( x 5 ) x
c) lim d) lim
x 1 x 1 x 0 2x
Sec( x) Cos( x) sen x
e) lim f) lim 2
x 0 Sin( x) 2Tg( 2 x) x 0 3x 2 x
111
Solução: a), b) -, c) -, d) 0, e) 0, f) 1/2.
df ( x )
4.03 - Encontre as seguintes derivadas onde f(x) é igual a:
dx
x 4 4 x 2 3x 2 Ln(2 x 3 )
a) b)
x3 Tg(3x ln( x))
x x 1
d) 3 c) ln 3
x 13
x2 1
3x 4 12x 3 4 x 2 24x 7
Solução:a)
( x 3) 2
3Co tan(3x ln x) (1 3x) * Co sec(3x ln( x)) 2 * ln(2 x 3 )
b)
x
1 2x 3
x 2x x 2
c) d)
3x 2 / 3 ( x 3 1) 4 / 3 3( x 1)( x 2 1)
i 20 i9
a) i 2 (2i 3)
i0
b) i 3i
i3
3
mas pegando só i ímpares.
i 5, j 6 , k 4 j 7 , i 8
c) jik 2 j2 i ji 2
i 0. j 0 , k 0
d) ji 2 j
j 3 , i 0
3
mas pegando i pares e j
ímpares.
4(1 x 3/ 2 ) 3/ 2
Solução: a) +c, b) sec(t)(2 + 3 sen (t))+c, c)
9
x x 2 2 x 3 ln(1 2 x)
+c
2 2 3 4
5
ln(1/ x )
Tan 1 ( )
d) (
4
) +c, e) x 2
5
10 2 x
+c,
ln(4) 5 2 ln(10)
(57 28 cos(2 x) 35 cos(4 x)) sec 7 ( x)
f) +c onde c é uma constante.
840
112
4.06 - Encontre um valor aproximado para as seguintes integrais definidas:
/4 /4
a)
0
tg 4 x sec 6 xdx b) Exp(3x) sen(4x)dx
0
5 x 7 arccos( x)
c)
0
5 x 4
dx d)
0
1 x3
dx
188
Solução: a) , b) 1.84812, c) 1.55465, d) 4.70246.
315
113
a) y’’ + 10 y’ - 2 y = 0
b) 4 y’’ + 4 y’ = 0
c) 2 y’’ + 2 y = 0 , y(0) =1, y’(0)=0.
d) 2 y’’ - 5 y’ + y = Exp[2 x] Sin[ 3 x -2]
Cos(2 x)
e) y’’ + y =
Sec(3x)
Solução: a) y = C[1] Exp(-10.1962 x) + C[2] Exp(0.196152 x)
b)C[1] Exp( -x) + C[2]
c)Cos[x]
d) C[1] Exp(0.212022 x) + C[2] Exp(2.28078 x) -
0.0408332 Exp(2x) Cos(2 - 3 x) + 0.08581 Exp(2 x) Sin(2 - 3 x)
e) C[2] Cos[x] -C[1] Sin[x] - 0.0208333 Cos[5x] + 0.25 x Sin[x] + 0.125
Cos[x]
Solução:
b)
3 Exp(2 x) x
Exp( x)
4 4 2
c) C[1]
Exp(-x) + C[2] + x C[3] + C[4] Exp(x) + C[5] Exp(2x).
a) y’’’ - y’ + 5 y = Cos(3 y)
114
Solução: a) Utilize MaxSteps->3000.
b) Utilize MaxSteps->2000.
115
CAPÍTULO 5 - LISTAS, VETORES E MATRIZES
5.1 - Introdução
5.2 - Listas
5.2.1 -Introdução
num={1,2,3,4,5}
momes={renato,ana,fabricio}
{1, 2, 3, 4, 5}
{renato, ana, fabricio}
Para manipular uma lista podemos por exemplo somar um número a cada
elemento da lista, multiplica-los por uma constante, soma-los com outra lista, etc.
Vejamos o exemplo abaixo.
116
Exemplo: Com a definição de num acima some 5 a cada elemento, multiplique a
lista por 2 e chame o resultado de mult, some mult com num termo a termo. Aplique
também f(x) = x2 a cada elemento de num.
5 + num
{6, 7, 8, 9, 10}
mult=2*num
{2, 4, 6, 8, 10}
mult + num
{3, 6, 9, 12, 15}
Para aplicar uma função a uma lista basta definir a função e colocar como
argumento da função a lista, assim sendo :
f[x_]:=x^2
f[num]
nomes[[2]]
ana
A várias outras funções que manipulam posições de elementos em uma lista tais
como as listadas abaixo:
117
Take[lista, n] - Retira os primeiros n elementos de uma lista.
Take[lista, -n] - idem começando do final para o começo.
Take[lista,{m,n}] - Retira os elementos de m a n.
Drop[lista, n] - Apaga os n primeiros elementos de uma lista.
Drop[lista,{n}] - Apaga o n-ésimo elemento da lista.
Prepend[lista, elem] - coloca o elem no inicio da lista.
Append[lista, elem] - coloca o elem no final da lista.
Insert[lista,elem,n] - coloca o elem na posição n da lista.
Delete[lista,n] - Apaga o n-ésimo elemento da lista.
Union[lista1,...,listan] - cria uma única lista com todos os
elementos de
lista1,lista2,...,listan. Não repete elementos.
Intersection[lista1,...,listan] - Faz a intersecção das n listas.
Complement[lista1,...,listan] - Encontra o complementar das
listas.
Partition[lista,n] - Transforma a lista em uma nova lista na qual cada
elemento é uma lista com n elementos.
2.34 3.76 9.79 3.44 1.00 3.55 18.90 34.22 0.99 -2.33
Pede-se:
a)Determine o 1° e o ultimo elemento, b) O tamanho desta lista , c)Coloque os
elementos em ordem crescente, d) Extraia o 7° elemento desta nova lista, e)A localização
do elemento 3.76
nesta lista, f) Reparta esta lista em 5 listas.
lista={2.34,3.76,9.79,3.44,1.00,3.55,18.90,34.22,
0.99, -2.33}
{2.34, 3.76, 9.79, 3.44, 1., 3.55, 18.9, 34.22, 0.99,
-2.33}
Digitando
First[lista]
2.34
Last[lista]
-2.33
estaremos pegando o primeiro e o último elementos da lista( 2.34 e -2.33
respectivamente).
Length[lista]
118
10
novalista=Sort[lista]
{-2.33, 0.99, 1., 2.34, 3.44, 3.55, 3.76, 9.79, 18.9,
34.22}
Digitando
Position[novalista,3.76]
{{7}}
Como a lista tem 10 elementos cada nova lista devera conter 2 elementos para que
tenhamos cinco listas logo fazendo
Partition[novalista,2]
{{-2.33, 0.99}, {1., 2.34}, {3.44, 3.55}, {3.76, 9.79},
{18.9, 34.22}}
Perceba que o comando Solve retorna uma lista com as soluções da equação. Na
verdade ele retorna uma lista que contém duas listas(uma matriz). Para termos acesso a
primeira das duas listas basta fazer
sol[[1]]
{x -> 1 - 2 I}
sol[[1,1]]
x -> 1 - 2 I
119
sol[[1,1,2]]
1 - 2 I
pois ele é o segundo elemento da primeira lista que esta contida na lista principal.
Caso quiséssemos ter acesso ao “x” deveríamos digitar
sol[[1,1,1]]
já que ele é o primeiro elemento da primeira lista que esta contida na lista
principal.
O comando Table serve para gerar listas(que podem ser consideradas tabelas)
a partir de uma regra de formação, que pode ser uma seqüência, uma função matemática,
etc.
A sintaxe do comando é a seguinte
Table[expressão,{var,varmin,varmax}]
onde expressão representa a regra de formação e a lista {v ar,varmin,varmax}
representa a variação da variável var da qual e composta a expressão. Desta forma o passo
da variável var é tomado como sendo 1, se desejarmos podemos alterar este passo para
um outro passo qualquer fazendo {var,varmin,varmax, passo}.
Vejamos o exemplo abaixo:
Table[x^2,{x,1,10}]
{1, 4, 9, 16, 25, 36, 49, 64, 81, 100}
que nos retorna uma lista com os valores de x2 para o intervalo especificado.
Identicamente para um passo de ½ teremos:
Table[x^2,{x,1,10,1/2}]
120
4 4 4 4 4 4 4
4
361
81, ---, 100}
4
Table[{n,Prime[n]},{n,1,10}]//TableForm
1 2
2 3
3 5
4 7
5 11
6 13
7 17
8 19
9 23
10 29
Caso desejássemos poderíamos colocar legendas na tabela para isto faríamos por
exemplo:
TableForm[Table[{n,n^2,n^3},{n,1,7}],
TableHeadings->{None,{"x","Quadrado","Cubo"}},
TableAlignments->Center]
x Quadrado Cubo
1 1 1
2 4 8
121
3 9 27
4 16 64
5 25 125
6 36 216
7 49 343
1 1 1 1 1
4 16 64 256 1024
Table[expressão,{v1,v1min,v1max},{v2,v2min,v2max},
...{vn,vnmin,vnmax}]
onde vn mudará “mais rápido” de valor do que vn-1 e assim por diante.
122
Muitas vezes nós não dispomos de uma equação matemática para que possamos
criar um gráfico. Pode ser que os dados de que dispomos foram obtidos
experimentalmente e que não façamos idéia de que tipo de equação matemática eles são
originados. Assim a única coisa de que dispomos é uma lista dos dados e então não
podemos utilizar o comando Plot.
Quando isto acontecer deveremos utilizar o comando ListPlot que gera um
gráfico a partir de pontos de uma lista. Sua sintaxe básica é a seguinte
ListPlot[lista]
onde a lista contém os dados que queremos fazer o gráfico.
Inicialmente criaremos uma lista que irá conter os valores de Cos(2x) no intervalo
dado. A esta lista daremos o nome de valores.
valores=Table[N[Cos[2 x]],{x,0,500}];
Note que esta é uma lista um tanto quanto grande, por isso nós incluímos o ; no
final da expressão para que nada fosse mostrado. Para ver uma parte do conteúdo de
valores podemos digitar:
Short[valores,2]
{1., -0.416147, -0.653644, 0.96017, -0.1455, <<8>>2,
ListPlot[valores]
0.5
-1
-Graphics-
123
Note que a cada um dos valores da tabela o comando ListPlot esta associando a
sua posição, isto é, ele esta fazendo o gráfico dos pares ordenados (1,cos(2)), (2,cos(4)),
...(500,cos(1000) se quiséssemos que ele associasse valores de modo diferente teríamos
que proceder como no exemplo seguinte.
Perceba que aqui teremos que definir uma lista com os valores que formarão os
pares ordenados já que estamos interessados em fazer o gráfico de (1992,2.56) e não
(1,2.56). Inicialmente iremos definir uma lista que conterá os anos e as respectivas
produções. Nos chamaremos esta lista de dados para simplificar. Desta forma teremos:
dados={{92,2.56},{93,3.65},{94,7.01},{95,5.45},{96,7.8
8}}
{{92, 2.56}, {93, 3.65}, {94, 7.01}, {95, 5.45}, {96,
7.88}}
Onde definimos os dados com os quais será feito o gráfico. Utilizando o comando
ListPlot teremos:
ListPlot[dados]
8
93 94 95 96
-Graphics-
O gráfico acima não ficou tão interessante quanto desejávamos pois os pontos
estão demasiadamente pequenos. Para que os pontos não pareçam tão pequenos em
comparação com o restante do gráfico podemos incluir a opção PointSize->[n] onde n
124
representa uma porcentagem do total do gráfico assim para ter um gráfico em que os
pontos ocupem 3% do total do gráfico teremos:
ListPlot[dados,PlotStyle->PointSize[0.03]]
93 94 95 96
-Graphics-
Também podemos encontrar uma curva por mínimos quadrados, obtendo assim
uma função que se aproxima dos pontos. O comando necessário para fazer isto é Fit que
tem a seguinte sintaxe
Fit[lista,{funções},vars]
onde lista são os dados de que dispomos, {funções} é uma lista que contém as
funções que constituirão a aproximação por exemplo 1, x, x2, cosx , etc, isto é a função
gerada por Fit será uma combinação linear das funções em {funções} e finalmente vars
são as variáveis das quais as funções dependem.
-1.45 6.32 28.47 70.55 38.78 38.96 76.00 58.11 90.55 78.65 28.66
46.57
lista={-1.45,6.32,28.47,70.55,38.78,38.96,76.00,
58.11,90.55,78.65,28.66,46.57}
125
listaok=Sort[lista]
Inicialmente iremos encontrar uma função que se aproxima dos pontos dados,
utilizando o comando Fit. Note que escolhemos func como sendo um polinômio de grau
menor ou igual a quatro, por isso ela se torna uma combinação linear de funções do grau
0, 1, 2, 3 e 4. Assim teremos:
func=Fit[listaok,{1,x,x^2,x^3,x^4},x]
2 3
4
-26.0283 + 27.7226 x - 5.32686 x + 0.551038 x -
0.0194351 x
gr1=Plot[func,{x,1,12},DisplayFunction->Identity]
gr2=ListPlot[listaok,PlotStyle->PointSize[0.02],
DisplayFunction->Identity]
-Graphics-
-Graphics-
Show[gr1,gr2,DisplayFunction->$DisplayFunction]
80
60
40
20
2 4 6 8 10 12
-Graphics-
126
Exemplo: Faça o gráfico de
0.3 -0.57 -0.67 0.47 1.23 1.74 0.55 -0.462 -0.77 0. 1.2
1.45 0.983 -0.192 -0.684 -0.3 0.9 1.47 1.35 0.128
Encontre também uma curva que se aproxime dos pontos dados. Obs: os pontos
dados formam os pares ordenados (1,0.3), (2,-0.57)... (20,0.128).
Inicialmente iremos apagar as definições anteriores de lista e de fun pois elas serão
utilizadas novamente. Feito isto iremos definir lista como sendo os pontos dados.
Clear[lista,func,gr1,gr2]
gr1=ListPlot[listaok,PlotStyle->PointSize[.01]]
1.5
0.5
5 10 15 20
-0.5
-Graphics-
Olhando para o gráfico podemos perceber que os pontos tem o aspecto de uma
senóide, ou uma senóide e uma cosenóide somadas. Assim sendo tentaremos encontrar
uma combinação linear de senos e cosenos que melhor se ajuste aos pontos dados.
Chamando esta função de func e utilizando o comando Fit encontraremos
func=Fit[lista,{Cos[x],Sin[x],1},x]
127
0.416789 + 0.9349 Cos[x] - 0.718534 Sin[x]
gr2=Plot[func,{x,1,20},DisplayFunction->Identity]
-Graphics-
Show[gr1,gr2,DisplayFunction->$DisplayFunction,]
1.5
0.5
5 10 15 20
-0.5
-Graphics-
5.3 - Matrizes
5.3.1 - Introdução
Uma matriz é uma lista de listas, desta forma para definirmos uma matriz devemos
utilizar
{{a[1,1],a[1,2]...a[1,n]},{a[2,1],..., a[2,n]}, ...,
{a[m,1],a[m,2], ..., a[m,n]}}
onde estaremos definindo uma matriz m x n com os elemento a[1,1],
a[1,2], ... a[m,n]. Desta forma estaremos definindo uma lista que contém todas as
linha da matriz(que também são listas). Para que esta lista seja mostrada em forma
de matriz deveremos incluir o comando //MatrixForm ou então utilizar
MatrixForm[m] para obter a forma matricial de m.
128
Procedendo da maneira descrita acima teremos:
m={{a[1,1], a[1,2],a[1,3]},{a[2,1],a[2,2],a[2,3]},
{a[3,1],a[3,2],a[3,3]}}//MatrixForm
Uma outra forma seria utilizar a função Array que gera uma lista simples ou uma
matriz. Para fazer uma matriz de m linhas por n colunas utilizando Array deveremos
utilizar Array[a, {m, n}] assim podemos digitar:
Array[a,{3,3}]//MatrixForm
Outra forma seria utilizar o comando Table, sendo que os índices variariam de
1 até 3.
Table[a[i,j],{i,1,3},{j,1,3}]//MatrixForm
Exemplo: Crie uma matriz 2x3 tal que seus elementos sejam dados por a[i,j] = 3
2
ij-j
Para criarmos esta matriz utilizaremos o comando Table, sendo que utilizaremos
como argumento a função de formação dos elementos da matriz. Perceba que i varia de 1
até 2(índice das linhas) e j varia de 1 até 3(índice das colunas). Assim
129
2 2 0
5 8 9
2 2 0
então a matriz procurada é .
5 8 9
Exemplo: Encontre a matriz 3x3 tal que seus elementos são definidos por:
0 se i<j;
7 se i>j;
3 j-5i2 caso contrário.
-2 0 0
7 -14 0
7 7 -36
1 2 0 2 1 2 3
Exemplo: Definindo ma= ,mb= e mc= realize as
7 5 1 3 4 5 6
seguintes .operações: ma + mb, mb- 2 ma, (ma*mb)*mc e (mb*ma)*mc.
Inicialmente iremos definir as matrizes para ficar mais fácil de trabalhar com elas.
ma={{1,2},{7,5}};
mb={{0,2},{1,3}};
130
mc={{1,2,3},{4,5,6}};
ma+mb//MatrixForm
1 4
8 8
mb - 2*ma//MatrixForm
-2 -2
-13 -7
(ma.mb).mc//MatrixForm
34 44 54
(mb.ma).mc//MatrixForm
54 78 102
90 129 168
Outro ponto importante é o fato de que ma/mb não produz o resultado que nós
esperávamos pois caso digitarmos ma/mb estaremos encontrando uma matriz m tal que
nela o elemento m[1,1]=ma[1,1]/mb[1,1], m[1,2]=ma[1,2]/mb[1,2] e assim por diante.
131
Para encontrar ma/mb onde estamos dividindo toda a matriz ma por toda a matriz
mb é necessário que façamos ma.mb-1 onde mb-1 e a inversa de mb. Veremos como
inverter matrizes no próximo exemplo.
1 2 3 0 2 1
a b
Exemplo: Seja A= , B= 4 5 6 e C = 0 2 0 encontre o
c d 7 8 9 1 0 0
-1
determinante de A, a transposta de b(B ) e a inversa de C.
matriza={{a,b},{c,d}};
matriza//MatrixForm
Det[matriza]
a b
c d
-(b c) + a d
mb={{1,2,3},{4,5,6},{7,8,9}};
%//MatrixForm
1 2 3
4 5 6
7 8 9
MatrixForm[Transpose[mb]]
1 4 7
2 5 8
3 6 9
mc={{0,2,1},{0,2,0},{1,0,0}};
132
Det[mc]
-2
Inverse[mc]//MatrixForm
0 0 1
1
0 - 0
2
1 -1 0
1 0 0
Exemplo: Defina a matriz 0 1 0 ou seja uma matriz identidade 4x4.
0 0 1
IdentityMatrix[4]//MatrixForm
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
DiagonalMatrix[{1,1,1,1}]//MatrixForm
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
133
1 0 0
Por exemplo, para criarmos a matriz ma= 0 2 0 poderíamos digitar
0 0 3
DiagonalMatrix[{1,2,3}]//MatrixForm
1 0 0
0 2 0
0 0 3
Clear[ma]
ma={{1,0,2},{1,1,3},{3,0,0}};
Eigenvalues[ma]//Timing
{0.02 Second, {-2, 1, 3}}
Eigenvectors[ma]//Timing
{0.031 Second, {{-6, -7, 9}, {0, 1, 0}, {1, 2, 1}}}
Em ambos os casos o comando Timing foi incluído para que o programa nos
mostrasse quanto tempo foi necessário para executar cada uma das funções. Entretanto
quando estivermos precisando de ambos, isto é, tanto dos autovalores quanto dos
autovetores, é melhor utilizar a função Eigensystem[matriz] que retorna os
autovalores seguidos dos autovetores da matriz dada mas que gasta um tempo
relativamente menor do que se utilizássemos Eigenvalues[matriz] e
Eingenvector[matriz].
Eigensystem[ma]//Timing
{0.03 Second, {{-2, 1, 3}, {{-6, -7, 9}, {0, 1, 0}, {1,
2, 1}}}}
134
No exemplo seguinte mostraremos como elevar uma matriz a uma potência, isto
é, como calcular mn onde n é um número inteiro qualquer.
1 3 0
a b
Exemplo: Encontre (ma) e (mb) onde ma=
2 3
e mb= 1 2 1 .
c d
3 0 1
Clear[ma]
ma={{a,b},{c,d}};
ma^2//MatrixForm
2 2
a b
2 2
c d
Note que o resultado obtido não é o desejado pois estamos interessados em fazer
ma.ma(ma2) e não em elevar cada elemento de ma ao quadrado. Isto acontece por causa
de uma matriz ser definida como uma lista de listas e logo Mathematica interpreta o
comando ma^2 como se estivéssemos elevando cada elemento da lista ao quadrado. Para
encontrarmos mn devemos utilizar o comando MatrixPower[m,n] que devolve
como resposta uma matriz que equivale a m.m
...
m . Assim
nvezes
MatrixPower[ma,2]//MatrixForm
2
a + b c a b + b d
2
a c + c d b c + d
Clear[mb]
mb={{1,3,0},{1,2,1},{3,0,1}};
MatrixPower[ma,3]//MatrixForm
22 30 12
22 32 10
135
18 36 10
Nesta seção mostraremos mais alguns métodos de resolver um sistema linear alem
dos apresentados no capítulo 2. Aqui estaremos interessados em resolver o sistema linear
que pode ser definido como A.x = b onde A é a matriz dos coeficientes, x representa o
vetor das incógnitas e b é um outro vetor. Sendo assim a solução deste sistema será x =
A-1.b onde A-1 é a inversa da matriz A. Vejamos o exemplo seguinte.
Clear[ma,x,mb]
ma={{3,4,3},{3,7,1},{1,0,3}};
mb={1,3,2};
{x1,x2,x3}=Inverse[ma].mb
49 11 23
{-(--), --, --}
10 5 10
ma.{x1,x2,x3}
{1, 3, 2}
que coincide com o vetor b o que significa que nossa resposta está correta.
Vale a pena lembrar que o cálculo de matrizes inversas requer em geral um grande
número de operações, por isso este método de solução de sistemas lineares não é o mais
recomendado. Em geral é melhor utilizar o comando Solve.
136
x 2 y z 1
2 x 3y 5
3y 2 z 0
Inicialmente iremos definir alista que conterá as equações e a que irá conter as
variáveis.
Clear[eqs,vars,sols,x,y,z]
eqs={x - 2y + z==1, 2 x - 3 y ==5,3 y - 2 z ==0};
vars={x,y,z};
sols=Solve[eqs,vars]
1 9 3
{{x -> -, z -> -(-), y -> -(-)}}
4 4 2
eqs /. sols
como a resposta foi {{True, True, True}} nossa resposta está correta.
137
Exemplo: Resolva o seguinte sistema linear
x 2 y 4 z 7
2 x 3y 5z 0
2 x 5y 9 z 3
1 2 4 7
Para este sistema linear a matriz ampliada é dada por amp= 2 3 5 0 assim
2 5 9 3
definindo esta matriz teremos:
amp={{1,2,4,7},{-2,3,5,0},{2,5,9,3}};
%//MatrixForm
1 2 4 7
-2 3 5 0
2 5 9 3
RowReduce[amp]//MatrixForm
4
-(-)
1 0 0 3
157
-(---)
0 1 0 6
91
--
0 0 1 6
4 157 91
Ou seja a solução para o sistema linear proposto é x ,y ,z para
3 6 6
verificar estas soluções podemos fazer:
Clear[x,y,z,eq1,eq2,eq3];
eq1=x + 2 y + 4 z == 7;
eq2=-2 x + 3 y + 5 z ==0;
eq3=2 x + 5 y + 9 z ==3;
138
onde estamos definindo as equações que formam o sistema linear. Definindo os
valores de x, y e z como sendo os valores acima teremos:
{eq1,eq2,eq3}
ConstrainedMax[func,condições,var]
onde func especifica a função para a qual estamos querendo encontrar o valor
máximo, condições é uma lista que contém as equações e/ou inequações que a solução
tem que satisfazer. Var é uma lista que contém as variáveis da função func. Como resposta
encontraremos os valores de var para os quais func é máxima sujeita as condições dadas.
É bom salientar que estes valores são sempre tomados como valores positivos.
Para encontrarmos os valores para os quais a função e mínima basta utilizar
ConstrainedMin que tem a mesma sintaxe de ConstrainedMax.Vejamos o
seguinte exemplo:
Clear[z,x,y]
ConstrainedMax[x + 3 z - 2 y, {x+ 2 z -7 y <=-5,z - y
- 2 x<=2,
3 x + 2 y<=11},{x,y,z}]
491 37 82 206
139
{---, {x -> --, y -> --, z -> ---}}
25 25 25 25
37 82 206
Ou seja para x ,y ,z a função atinge seu valor máximo que é
25 25 25
491
para as condições impostas.
25
w[x_,y_,z_]:= 3 x - 3 y + 2 z;
cond={x - y<=3, 2 y - z < 3, x - z==2};
ConstrainedMax[w[x,y,z],cond,{x,y,z}]
ConstrainedMin[w[x,y,z],cond,{x,y,z}]
3 3
{-, {x -> 2, y -> -, z -> 0}}
2 2
Assim para x=2, y=3/2 e z=0 w atinge o valor mínimo que é 3/2.
5.4.1 - Introdução
Nesta seção daremos algumas noções de como trabalhar com cálculo vetorial
utilizando o Mathematica. Mostraremos como calcular divergentes, gradientes,
rotacional, funções estas disponíveis no pacote Calculus`VectorAnalysis`.
Introduziremos o conceito de campo vetorial conservativo.
140
Mostraremos também como construir gráficos de funções vetoriais e de gradientes
de uma função escalar tanto no plano como no espaço.
Needs["Calculus`VectorAnalysis`"]
Remove[comando_dado_ antes_de_carregar]
SetCoordinates[Spherical]
Spherical[r, theta, phi]
141
define o sistema esférico como sendo de uso atual. Para saber qual é o intervalo
nos quais as variáveis estão definidas basta fazer
CoordinateRanges[]
{0 <= r < Infinity, 0 <= theta <= Pi, -Pi < phi <= Pi}
que dá como resposta os intervalos para o sistema de coordenadas atual.
g[x_,y_]:=x^2 - 3 x + Sqrt[3 x - 2 y]
Grad[g[x,y]]
142
2
Grad[-3 x + x + Sqrt[3 x - 2 y]]
Note que a resposta é a própria entrada pois não existe uma função Grad definida
fora de Calculus`VectorAnalysis` e então e como se estivéssemos criando um
objeto chamado Grad, como se fosse uma definição de uma função. Para encontrarmos
o gradiente da função g deveremos carregar o pacote Calculus`VectorAnalysis`
utilizando Needs teremos:
Needs["Calculus`VectorAnalysis`"]
SetCoordinates[Cartesian]
Grad[g[x,y]]
Cartesian[x, y, z]
2
Grad[-3 x + x + Sqrt[3 x - 2 y]]
143
símbolos sim1, simb2 completamente. Como Grad no contexto
Calculus`VectorAnalysis` está protegida ela não é apagada.
Remove[Grad,x,y]
Finalmente:
Grad[g[x,y]]
3 1
{-3 + 2 x + -----------------, -(---------------), 0}
2 Sqrt[3 x - 2 y] Sqrt[3 x - 2 y]
f[x_,y_,z_]:={x^2 -2 z x y, 2 y - 3 x, 4 x z y};
Div[f[x,y,z]]
2 + 2 x + 4 x y - 2 y z
Curl[f[x,y,z]]
{4 x z, -2 x y - 4 y z, -3 + 2 x z}
Laplacian[g[x,y]]
13
2 - ----------------
3/2
4 (3 x - 2 y)
Needs["Calculus`VectorAnalysis`"]
144
SetCoordinates[Spherical]
Spherical[r, theta, phi]
Clear[f,g]
f[r_,theta_,phi_]:=r theta phi
g[r_,theta_,phi_]:={r Sin[phi], 0, 3 r}
Grad[f[r,theta,phi]]
{phi theta, phi, theta Csc[theta]}
Div[g[r,theta,phi]]
3 Sin[phi]
Curl[g[r,theta,phi]]
Laplacian[f[r,theta,phi]]//Simplify//Together
2 phi theta + phi Cot[theta]
----------------------------
r
Um detalhe muito importante é quanto a notação, pois muitos livros adotam uma
notação diferente para o sistema de coordenadas esféricas, isto é, colocam o valor de phi
no lugar de theta e vice-versa. Desta forma tome cuidado para não cometer enganos. No
Mathematica as variáveis no sistema de coordenadas esféricas são r, theta e phi. sendo
que para descobrir o intervalo para os quais estas variáveis estão definidas basta digitar
CoordinateRanges[]
{0 <= r < Infinity, 0 <= theta <= Pi, -Pi < phi <= Pi}
145
146
Exemplo: Teorema de Stokes no plano(teo. de Green) - Calcule F( r ) dr no
sentido anti-horário ao longo de um caminho C numa região R , onde F = (x2 + y2) ax +
(x2 - y2) ay e R : 1 x 3 e 0 y 1/x.
Needs["Calculus`VectorAnalysis`"]
SetCoordinates[Cartesian]
Cartesian[x, y, z]
Clear[f]
f[x_,y_,z]:={x^2 + y^2, x^2 - y^2, 0}
Curl[f[x,y,z]]//Simplify
{0, 0, 2 (x - y)}
10
--
3
10
Portando F( r ) dr = 3
.
Needs["Calculus`VectorAnalysis`"]
147
SetCoordinates[Cartesian]
Cartesian[x, y, z]
Clear[F]
F[x_,y_,z]:={x^2 + y^2, Sqrt[x^2+2 y],x y z}
divergente=Div[F[x,y,z]]//Simplify
1
2 x + x y + --------------
2
Sqrt[x + 2 y]
Integrate[divergente, {x,0,1},{y,0,1},{z,0,1}]
3 Sqrt[3] 1
- + ------- + ArcSinh[-------]
4 2 Sqrt[2]
Para fazermos o gráfico de uma função vetorial tal como F(x, y) = A(x,y) ax +
B(x,y) ay devemos utilizar a função PlotVectorField. Está função está definida
dentro do pacote Graphics`PlotField`. Assim antes de utilizá-la deveremos
carregar o pacote. Esta função tem a seguinte sintaxe:
PlotVectorField[{A(x,y),B(x,y)},{x,xmín,xmáx},{y,
ymín,ymáx},opções]
onde A(x,y) e B(x,y) definem as funções que o campo satisfaz nas direções ax e
ay respectivamente. As opções são muito parecidas com as opções da função Plot
descrita no capítulo 3(tais como Axes, AxesOrigin, Frame, etc). Uma outra função
também importante é a função PlotGradientField, que dada uma função escalar
f(x,y) faz o gráfico do vetor gradiente em cada ponto para está função ou seja a partir de
f(x,y) ela calcula o f e faz o seu gráfico no plano xy. O comando tem a seguinte sintaxe:
PlotGradientField[f(x,y),{x,xmín,xmáx},{y,
ymín,ymáx},opções]
É bom salientar que ambos os comandos também podem ser utilizados em outros
sistemas de coordenadas tais como coordenadas cilíndricas ou esféricas por exemplo.
Vejamos o exemplo abaixo:
148
Exemplo: Faça o gráfico do campo vetorial definido por F(x,y) = xax + yay e
y x
G(x,y) = 2 ax + 2 ay .
x y 1
2
x y2 1
Faça também o gráfico do vetor gradiente da função f(x,y) = x y - 2.
Needs["Graphics`PlotField`"]
PlotVectorField[{x,y},{x,-3,3},{y,-3,3}]
-Graphics-
149
3
-3 -2 -1 1 2 3
-1
-2
-3
-Graphics-
Perceba que a inclusão de Ases->True faz com sejam mostrados os eixos.
Finalmente fazendo o gráfico do vetor gradiente da função f(x,y) teremos:
PlotGradientField[x y - 2,{x,-3,3},{y,-3,3},Axes-
>True]
-3 -2 -1 1 2 3
-1
-2
-3
-Graphics-
150
5.4.4 - Gráficos de funções vetoriais no espaço
Needs["Graphics`PlotField3D`"]
PlotVectorField3D[{0,y x,x},{x,-1,2},{y,-1,2},
{z,-1,1},VectorHeads->True]
-Graphics3D-
PlotGradientField3D[x z + x y + z x,{x,-2,2},{y,-
2,2},{z,-2,2}]
151
-Graphics3D-
5.5 - Exercícios
5.02 - Faça uma tabela com os valores de sen x para x no intervalo 0 - 2Pi com x
variando de 0.25 em 0.25. Idem para cos(2 x2).
5.06 - Faça o gráfico e ache uma curva que se ajuste aos seguintes dados:
a) {0, 1.76, 3.74, 5.76, 6.87, 7.05, 7.86, 6.45, 4.39, 1.96, -2.37}
b) (0, -0.14), (0.5, -0.11), (1., 0.15), (1.5, 0.195), (2., 0.238), (2.5, 0.222),
(3., 0.15), (3.5, 0.14), (4., -0.34), (4.5, -0.24), (5., -0.231)
152
1 2 1 9 3 2 1
5.05 - Definindo as matrizes A = , B= 7 6 e C = 6 7 5 encontre
9 7
:
a) A + 2 B b) A*B c) B*A
d) A*C e) Determinante de 2 A f) Inversa de A*B
g) Transposta de A - 3 A*B
5 29 89 1 1 2
Solução: a) 13 46 115 b) 2 2 1
27 75 159 3 3 3
11 24 25
15 23
a) b) 5 8 42
21 11 2 1 0
153
2 thetaCsc( theta ) 2 phi * theta 1
b) rotacional = ( ,0, ),
r r
2( phi theta phi * thetaCot ( theta ))
divergente =
r
b) O gradiente de f(x) = 2 x y2 + x.
c) Campo vetorial x y ax - 2 y z ay.
154