Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Apostila Maple, Notas de estudo de Engenharia Civil

Apostila do prof. Donizetti para uso do programa MAPLE

Tipologia: Notas de estudo

2011

Compartilhado em 09/03/2011

mariane-de-pieri-5
mariane-de-pieri-5 🇧🇷

4.2

(11)

9 documentos

Pré-visualização parcial do texto

Baixe Apostila Maple e outras Notas de estudo em PDF para Engenharia Civil, somente na Docsity! MINISTÉRIO DA EDUCAÇÃO UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ - UTFPR CAMPUS PATO BRANCO ENGENHARIAS AULAS DE MATEMÁTICA NO MAPLE PROF. M. Sc. JOSÉ DONIZETTI DE LIMA UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ PR 2 Objetivo:  Evidenciar a necessidades e importância de softwares computacionais desenvolvidos na era da informativa como elemento facilitador do processo de ensino-aprendizagem da Matemática.  Utilização propriamente dita do software.  Enfatizar que o software deve desempenhar o papel de coadjuvante do processo de aprendizado da Matemática. Justificativas:  O Maple possibilita ampla variedade de aplicações, relativa simplicidade de uso e atualização periódica em novas versões, o que permite projetar-lhe uma permanência relativamente longa no cenário acadêmico.  O Maple é um pacote muito potente em termos de computação algébrica e numérica de uma ampla gama de assuntos relacionados do aprendizado e ao uso dos recursos matemáticos, visualizados como fins em si mesmos ou como ferramenta de trabalho em outras áreas do conhecimento (engenharia, física, etc...). Notas:  MAPLE é a marca registrada do software produzido por “Walterloo University, Canadá”.  Será considerado que o usuário já tenha algum conhecimento de utilização de software em ambiente Windows.  O Maple exige uma maior intimidade do usuário com a Matemática e com o Sistema Operacional Windows. Ementa: O ensino de Cálculo Diferencial e Integral (CDI) é a ferramenta básica e imprescindível tanto na formação dos futuros profissionais, como em diversas atividades da pesquisa universitária, principalmente nos estudos de Física, Matemática, Biologia, Engenharias, tecnologias, etc. Em seu ensino temos vários tópicos, que merecem destaque devido às suas aplicações potenciais, tais como cálculo de área, volume e comprimento de arco, e que podem ser mais bem assimilados se lançarmos mão a sua visualização de representações especiais e das soluções obtidas com auxílio de softwares matemáticos. Sendo assim, nesta apostila, pretendemos explorar, utilizando o software Maple, os seguintes tópicos: 1) Noções básicas de Matemática:  Expressões numéricas.  Expressões algébricas.  Polinômios.  Gráficos bidimensionais e tridimensionais.  Funções, funções compostas, etc.  Resolução de equações e inequações. 2) Assuntos propriamente de Cálculo Diferencial e Integral (CDI)  Limites e continuidades.  Derivadas e integrais.  Gráficos bidimensionais em coordenadas especiais: polar, paramétrica, implícitas, etc.  Gráficos tridimensionais com coordenadas cilíndricas, esféricas, paramétricas, implícitas, etc.  Aplicações: Cálculo de comprimento de arco, área de uma região limitada, área e volume de um sólido, sólidos de revolução, entre outras. Observação: Nesta apostila, não ensinamos Matemática, mas explicamos a utilização do software Maple. Apenas para uma breve revisão do conceito matemático, apresentamos os conceitos envolvidos e na medida do possível utilizamos o software para verificar algumas propriedades importantes do tópico que está se analisando no momento. 5 3. APRESENTAÇÃO - MOTIVAÇÃO: A computação algébrica é um novo meio de aprendizado que une a informática ao ensino da Matemática. Este novo método de ensino das ciências exatas e de Matemática em particular, vem sendo adotado em diversas universidades, e ocupa posição de destaque no mundo educacional de países desenvolvidos. As universidades estrangeiras ministram cursos regulares de computação algébrica aos alunos destinados à área de ciências exatas, o que é uma medida clara da importância que o meio científico e tecnológico vem sendo direcionado a este ramo. A capacidade de armazenamento de informações, a velocidade de operação e a precisão, fazem do uso do computador uma ferramenta indispensável em todas as nossas atividades acadêmicas, profissionais e domésticas. Porém, ensinar o aluno somente a operar um computador não garante a melhoria da qualidade de ensino. É de suma importância que nossos estudantes estejam ao menos familiarizados com essa tecnologia, pois, afinal, são membros da nossa futura sociedade. Uma das principais razões do uso do computador na educação é desenvolver o raciocínio e possibilitar situações de resolução de problemas, a fim de desenvolver o pensamento do aluno. O computador não deve ser inserido na educação como uma máquina de ensinar ou uma informatização instrucionista, deve ser usado como uma informatização construtivista que permita a reflexão e construção de idéias a partir da relação professor, computador e aluno. Devemos levar em conta que o computador não é o principal referencial do processo de ensino-aprendizagem, mas serve apenas como uma ferramenta auxiliar (coadjuvante). No mercado de informática existem vários softwares (pacotes computacionais) que oferecem condições de cálculos numéricos, manipulações algébricas e simbólicas. Os softwares MAPLE, MATHEMATICA, etc..., são sistemas de computação algébrica muito eficientes no apóio ao ensino do Cálculo Diferencial e Integral (CDI), e vêm sendo utilizados, por exemplo, nas fases iniciais dos cursos de Engenharia, Computação, Física e Matemática, em universidades estrangeiras, proporcionando aos alunos maior interesse e compreensão. Por outro lado, o software MATLAB (Laboratório de Matrizes), pode ser utilizado para trabalhar com a álgebra linear, pois o mesmo é um software elaborado para o tratamento matricial de dados. No que se refere ao processo de ensino-aprendizagem esses pacotes computacionais exercem grande influência no desenvolvimento intelectual dos alunos. Este recurso didático apresenta a facilidade da construção de gráficos de funções e resolução de problemas. No aprendizado da montagem de equações a resolver, da previsão de seu comportamento e soluções. Os softwares além de possibilitarem uma maior visualização gráfica, também apresentam tópicos avançados e muitas aplicações práticas. Esta grande ferramenta matemática permite ao estudante uma compreensão mais nítida dos processos e potencialidades do Cálculo Diferencial e Integral (CDI), auxiliando-o em seus estudos. Os potentes pacotes computacionais MAPLE, MATHEMATICA não são restritos ao CDI, pois também se aplicam em diversas áreas da Matemática, Física, Engenharia, etc. Outros tópicos básicos relacionados com a Matemática que podem ser abordados facilmente são: Álgebra Linear, Equações Diferenciais, Séries Infinitas, Matemática Financeira, Estatística e muitos outros. Por outro lado, o MATLAB, pode ser usado não apenas para a Álgebra Linear, mas pode ser aplicado nas mais diversas áreas como o CDI, a Estatística, a Matemática Financeira, a Programação Linear, entre outras. Nesta apostila apresentamos os conceitos básicos de utilização do software Maple. Abordaremos alguns tópicos básicos e específicos de Matemática, tais como construção de gráficos bidimensionais e tridimensionais, operações com expressões algébricas e polinômios, principais funções e constantes matemáticas presentes no Maple, além dos conteúdos próprios do CDI (limites, continuidades, derivadas, integrais e suas aplicações). 6 Essa apostila foi elaborada com base na versão 7 para Windows. Veja os detalhes de credito dessa versão na figura a seguir. Esta versão do Maple foi lançada em 2001. Sendo assim, serão aqui apresentadas noções básicas somente para sua utilização nessa versão. Os comandos utilizados também são compatíveis com versões anteriores do Maple. Nota: Será considerado que o usuário já tenha algum conhecimento de utilização de software para Windows. Caso não o possua, é aconselhável que o adquira antes de começar a utilizar o Maple, pois não são abordadas as características comuns a todos os softwares para Windows. A seguir, observe a tela de abertura do software Maple (versão 7). Uma vez que o programa esteja iniciado, tem-se então a tela inicial do programa, que consiste de um menu com as opções disponíveis e uma área de trabalho. A grande maioria dos comandos do Maple utilizados nesta apostila são comandos internos, ou disponíveis em pacotes que são digitados e executado na área de trabalho. 7 Para executar um comando basta digitá-lo, e então pressionar a tecla “ENTER”. Neste momento, o texto digitado é considerado como uma entrada, e será então dada uma saída, que aparecerá imediatamente abaixo da entrada. Caso ocorra algum erro de execução, ou de sintaxe, uma mensagem apropriada será dada como saída. Deve-se tomar muito cuidado na hora de digitar um comando, pois são consideradas as diferenças entre caracteres (letras, por exemplo) maiúsculos e minúsculos, sendo que muitas vezes, este é o motivo de vários erros na hora de sua execução. Algumas pessoas, quando iniciam a utilização do software Maple, enfrentam algumas dificuldades, devido a pequenos detalhes importantes que passam despercebidos. Aqui, colocaremos o significado dos símbolos mais utilizados, para que não ocorram estes tipos de problemas. Veja a seguir a tela do Maple. OBSERVAÇÃO DO CURSO: Adaptado de TANEJA, 1997 Vamos desenvolver nosso curso acessando as seções referentes a determinados assuntos. Uma seção é identificada com um quadradinho com um sinal de [+] ou [-] dentro dele. Para expandi-la devemos clicar com o mouse o sinal [+] e ele mudará para [-] possibilitando assim que possamos acessar o conteúdo desta seção. Para fechá-la, clique o sinal [-] e ele mudará para [+]. 10 4.2. OPERAÇÕES ELEMENTARES Operação Símbolo Exemplo numérico Adição + > 3+2; 5 Subtração - > 3-2; 1 Multiplicação * > 3*2; 6 Divisão / > 3/2; 3 2 Potenciação ^ ou ** > 3^2; 9 > 3**2; 9 Notas: 1) case sensitive => diferencia uma variável escrita com letra maiúscula de uma variável escrita com letra minúscula. 2) “:=” => Comando de atribuição. Exemplo: a:=3 (a variável a recebe o valor 3). Exemplos: > a:=3; := a 3 > b:=2; := b 2 > c:=a+b; := c 5 > d:=a-b; := d 1 > e:=a/b; := e 32 > f:=a^b; := f 9 > f:=a**b; := f 9 4.3. CONSTANTES PRÉ-DEFINIDAS Constante Símbolo Exemplo Pi ( ) pi > pi;  Infinito ( ) infinity > infinity;  Número complexo ( 1 ) I > I; I Número (e) exp(1) > exp(1); e 11 4.4. CONSTANTES E FUNÇÕES DA ARITMÉTICA Aqui temos o número  representado pela constante Pi e as funções:  “ifactor” => faz a decomposição de um número em fatores primos.  “iquo” => determina o quociente da divisão entre dois números.  “igcd” => determina o máximo divisor comum entre dois números.  “root” => calcula a raiz n-ésima de um número. Nota: Comandos para trabalhar com números inteiros. Os exemplos a seguir ilustram como cada um destes comandos devem ser usados: Exemplos: > Pi;  > evalf(Pi); 3.141592654 > evalf(Pi,100); 3.14159265358979323846264338327950288419716939937510582097494459230 \ 7816406286208998628034825342117068 > ifactor(20); ( ) 2 2 ( ) 5 > ifactor(13); ( ) 13 > ifactor(144); ( ) 2 4 ( ) 3 2 > ifactor(120); ( ) 2 3 ( ) 3 ( ) 5 > iquo(144,120); 1 > iquo(2401,33); 72 > igcd(123,45); 3 > igcd(144,120); 24 > igcd(1500,650); 50 > sqrt(n); n > sqrt(2); 2 > evalf(%); 1.414213562 > evalf(sqrt(3)); 1.732050808 > evalf(sqrt(10),20); 3.1622776601683793320 > sqrt(3.1); 1.760681686 > root [3](125); 5 > root [3](25); 5 ( )/2 3 > evalf(%); 2.924017738 > evalf(root [6](127)); 2.241991457 12 4.5. EXPRESSÕES ARITMÉTICAS Vamos agora trabalhar com algumas expressões aritméticas já que sabemos como manipular com os operadores básicos. Devemos usar parênteses “( )” nestas expressões, pois para o Maple não é válido, por exemplo uma expressão como {5*(37+12)/(57-15)]*(10+3)}/20, embora tenha sentido matemático. A expressão digitada desta maneira irá causar um chamado erro de sintaxe, aparecendo na tela após execução a mensagem “Error, use intersect for sets”, que indica que as chaves “{ }” são usadas para interseção entre conjuntos. Confira! > {[5*(37+12)/(57-15)]*(10+3)}/20; 1 20 { }       455 6 O correto será: > ((5*(37+12)/(57-15))*(10+3))/20; 91 24 EXERCÍCIO: Calcule o valor das seguintes expressões aritméticas: 1) 180 + {2 x [5 x 3 + (8 x 4 - 2 x 9) - (19 x 3 - 37)]} 2) {83 - [56 + (6 x 8 - 28) - 20 + 5]} - 12 3) 58 - {30 + 4 x 3 - [25 - (12 - 4) + 3]} 4) {(9 x 4 + 6) : 7 + [(15 + 2) x 3] : 17} - 9 5) 82 + {33 x [132 : (7 - 1) x (18 - 7)] - 3 x 22} 6) 9600 : {[200 + (3 x 200 - 500) + 400 : 20] + 4 x 20} 7)  21 Respostas: 1) 198 2) 10 3) 36 4) 0 5) 8002 6) 24 Solução: 1) > 180+(2*(5*3+(8*4-2*9)-(19*3-37))); 198 3) > 58-(30+4*3-(25-(12-4)+3)); 36 7) > I^2; -1 15 4.8. VARIÁVEIS: O Maple sempre interpreta uma letra como sendo uma variável. Para fixarmos o valor da variável x como um número, por exemplo, 3 usamos o comando de atribuição ( “:=” atribui um valor à uma variável) veja o exemplo: > x:=3; := x 3 Desta forma, sempre que uma expressão de entrada contiver x o Maple interpretará como 3, para reestabelecermos x como uma variável devemos utilizar o comando “restart”, que apagará da memória todos os valores atribuídos as variáveis. Veja um exemplo: > 2*x; 6 > y:=2; := y 2 > 4*x+y^3-y*x; 14 > restart; > x^3; x3 O Maple é “case sensitive”, isto é, ele diferencia uma variável escrita com letra minúscula de uma variável escrita com letra maiúscula. Outra observação, que é um erro de ocorrência freqüente, é esquecer de utilizar o símbolo de multiplicação entre variáveis, desta forma ele interpretará como outra variável. > b:= 4; := b 4 > B:= 5; := B 5 > b*B; 20 > bB; bB Exercício: Calcule da mesma forma os produtos de x por y, x por z e x por y por z, atribuindo a x o valor 5 a y o valor 2 e a z o valor 8. Não esqueça de limpar (inicializar) as variáveis. Outros exemplos: > A:=2; := A 2 > B:=3; := B 3 > C:=A; := C 2 > A:=B; := A 3 > B:= C; := B 2 > E:=A+B; := E 5 > F:=2*A+E; := F 11 16 4.9. COMO RESOLVER UMA EQUAÇÃO DO PRIMEIRO GRAU: O exemplo abaixo mostra como resolver uma equação do 1º grau passo a passo: > eq:=4*x+18=48; := eq 4 x 18 48 > eq - (18=18); 4 x 30 > %/4; x 152 > eq1:=7*x - 12 = 2*x + 3; := eq1 7 x 12 2 x 3 > eq1 - (-12=-12); 7 x 2 x 15 > % - (2*x=2*x); 5 x 15 > %/5; x 3 Exercícios: 1) Resolver as equações abaixo: a) 6x - 18 = -3x +27 b) 2x +10 = 3x + 5/7 c) 4y - 6 = 10y - 12 d) x + 5 = 2x -6 2) Achar a solução dos sistemas abaixo: a) x + y = 5 ; 2x - y = 1 b) 7x +8y = 9 ; -x + y = 3 c) 3x + 4y - 5z = 2; 2x - y + z = 1; -x-3y-z=3 17 4.10. EXPRESSÕES ALGÉBRICAS: Uma das grandes vantagens de um programa como o Maple é permitir manipular expressões algébricas do mesmo modo que uma calculadora permite manipular expressões aritméticas. Alguns dos comandos algébricos do Maple estão listados a seguir: Símbolo Objetivo Exemplo simplify Simplificar uma expressão factor Fatorar uma expressão dada subs Determinar o valor da expressão para um valor específico expand Expandir as expressões (desenvolver o Binômio de Newton, por exemplo) numer Numerador de uma expressão denom Denominador de uma expressão Inicialmente, vamos usar os seguintes comandos:  “simplify” => simplifica uma expressão algébrica.  “expand” => expande uma expressão algébrica.  “factor” => fatora uma expressão algébrica.  “solve” => resolve um sistema de equações para um conjunto de incógnitas.  “subs” => substitui um valor atribuído à uma variável.  “numer” => recebe a expressão do numerador de uma expressão algébrica fracionária.  “denom” => recebe a expressão do denominador de uma expressão algébrica fracionária. Vamos ilustrar, com alguns exemplos cada um destes comandos. > simplify ((2+x)/x+(2-x)/x); 4 1 x > a:=4*x^2/(1+x^2)^3+(5-x)^2; := a 4 x2 ( )1 x2 3 ( )5 x 2 > simplify(%);        80 x2 25 78 x4 28 x6 10 x 30 x3 30 x5 10 x7 x8 ( )1 x2 3 > subs(x=1,a); 33 2 > p:=numer(a); := p        80 x2 25 78 x4 28 x6 10 x 30 x3 30 x5 10 x7 x8 > q:=denom(a); := q ( )1 x2 3 > subs(x=1,p); 132 > subs(x=1,q); 8 > expand((3*x^2-4*x)*(x+1)*(3*x^2+5*x+1));    9 x5 12 x4 14 x3 21 x2 4 x > expand((3*x^2-4*x)*(x+1)*(3*x^2+5*x+1));    9 x5 12 x4 14 x3 21 x2 4 x 20 > rem(P,Q,x); 0 > quo(P,Q,x);  x2 x 1 > rem(x^4+3*x^2-1,x^3+x,x);  1 2 x2 > rem(x^3+x,x^4+3*x^2-1,x); x3 x > quo(x^4+3*x^2-1,x^3+x,x); x > simplify((x^3+x)*(%)+(%));  x4 x2 x > Q^3; ( )x 1 3 > expand(%);   x3 3 x2 3 x 1 Observação: Agora, vamos trabalhar com os outros comandos:  “degree” => indica o grau de um polinômio.  “coeff” => indica o coeficiente de um termo indicado.  “tcoeff” => indica o termo independente de um polinômio.  “coeffs” => lista todos os coeficientes não nulos de um polinômio. Exemplos: > polinomio:=x^6-x^5-9*x^4+x^3+20*x^2+12*x+5; := polinomio      x6 x5 9 x4 x3 20 x2 12 x 5 > degree(polinomio); 6 > coeff(polinomio,x^4); -9 > tcoeff(polinomio); 5 > coeffs(polinomio); , , , , , ,5 1 12 20 -9 1 -1 21 4.12. REPRESENTAÇÃO DE FUNÇÕES NO MAPLE O Maple tem o seguinte comando para representar funções:  f:=(x)-> expressão em x => este comando representa a função f(x), f será função de x que será representada por uma expressão em x. Veja alguns exemplos a seguir: > restart: > f:=(x)-> x^3+2*x^2-3; := f x  x3 2 x2 3 > f(1); 0 > f(3); 42 > f(a+b);  ( )a b 3 2 ( )a b 2 3 > expand(%);       a3 3 a2 b 3 a b2 b3 2 a2 4 a b 2 b2 3 > f(a-1);  ( )a 1 3 2 ( )a 1 2 3 > expand(%);   a3 a2 a 2 > f(a)+f(a-1);    a3 2 a2 6 ( )a 1 3 2 ( )a 1 2 > expand(%);   2 a3 a2 5 a > g:=(x)->cos(x)+sin(x); := g x ( )cos x ( )sin x > g(Pi/2); 1 > g(3*Pi/4); 0 > h:=(x,y)->log(x^2+y^2)+sqrt(x+y^2); := h ( ),x y ( )log x2 y2 x y2 > h(2,3); ( )ln 13 11 > evalf(%); 5.881574147 > h(1.5,1); 2.759793826 > h(a,b); ( )ln a2 b2 a b2 > h(f(x),g(x)); ( )ln ( ) x3 2 x2 3 2 ( )( )cos x ( )sin x 2   x3 2 x2 3 ( )( )cos x ( )sin x 2 > h(f(2),g(Pi/2)); ( )ln 170 14 > evalf(%); 8.877455824 22 4.13. FUNÇÕES COMPOSTAS Além de definirmos uma função composta usando a forma normal “f(g(x))”, o Maple trabalha com funções compostas utilizando o sinal “@” entre as variáveis que representarão a função, ou seja “f@g”, veja os exemplos a seguir: > restart: > f:=(x)->2*x^2; := f x 2 x2 > g:=(x)->exp(-x^2); := g x e ( )x 2 > h:=(x)->sin(2*x)+cos(2*x); := h x ( )sin 2 x ( )cos 2 x > f@g)(x); 2 ( )e ( )x 2 2 > g@f)(x); e ( )4 x 4 > h@f)(x); ( )sin 4 x2 ( )cos 4 x2 > f@g@h)(x); 2 ( )e ( )( )( )sin 2 x ( )cos 2 x 2 2 > f@f)(x); 8 x4 > f@g@h)(1); 2 ( )e ( )( )( )sin 2 ( )cos 2 2 2 > evalf(%); 1.229677785 25 > plot((x^2-x-6)/(x^2-x-12),x=-5..5,y=-10..10); > f1:=x^2-x-6; := f1  x2 x 6 > factor(%); ( )x 2 ( )x 3 > f2:=x^2-x-12; := f2  x2 x 12 > factor(%); ( )x 3 ( )x 4 > f:=f1/f2; := f  x2 x 6  x2 x 12 > g:=factor(f1*f2); := g ( )x 2 ( )x 3 ( )x 3 ( )x 4 > plot(g,x=-6..6,y=-15..80); 26 O Maple possibilita a construção (plotagem) de mais de um gráfico no mesmo sistema de eixos. Isto é possível usando a seguinte sintaxe:  plot([f1,f2,f3,..,fn], x = a..b); => onde neste caso todas as funções devem estar declaradas entre colchetes e devem depender da mesma variável. Exemplos: > plot([sin(x),cos(x)],x=0..2*Pi); > plot([x^3+3*x,exp(x),3],x=-2..2); > plot([x^2-2*x+1,ln(x^3+2*x+1)],x=-3..3); 27 Quanto a escala dos eixos o Maple trabalha com dois tipos:  scaling = constrained => as variações de x e y são proporcionalmente iguais;  scaling = unconstrained => as variações de x e y são proporcionais à tela do monitor. Os eixos podem ser de quatro tipos diferentes:  axes = frame => os eixos se interceptam nos limites inferiores de cada intervalo;  axes = normal => os eixos se interceptam no ponto (0, 0);  axes boxed => os eixos se interceptam nos limites inferiores de cada intervalo e o gráfico aparece dentro de uma caixa  axes none => não mostra os eixos. Para especificar a cor de uma curva traçada usa-se o comando color = <opção de cor> , onde as opções de cores são: aquamarine, black, blue, navy, coral, cyan, brown, gold, green, gray, grey khaki, magenta, maroon, orange, pink, plum, red, sienna, tan, turquoise, violet, wheat, white, yellow. Vejamos como utilizar estes comandos que foram apresentados: > f:= x^2+2*x - 3; := f  x2 2 x 3 > g:= 2*sin(x); := g 2 ( )sin x > h:= 3*x-4; := h 3 x 4 > plot([f,g],x=-5..5,axes=normal); > plot([g,h],x=-Pi..Pi,axes=boxed,color=blue); 30 d) 22),( yxyxf  (Sela) > plot3d(x^2-y^2,x=-3..3,y=-3..3); > with (plots): > contourplot(x^2-y^2,x=-3..3,y=-3..3,color=black); e) 22),( xyyxf  > with (plots): > contourplot(y^2-x^2,x=-4..4,y=-4..4,color=black,contours=10); f) 22),( yxyxf  > with (plots): > contourplot(x^2+y^2,x=-3..3,y=- 3..3,contours=30,color=black); 31 2) Outros exemplos de gráficos tridimensionais no Maple (versão 7.0) a) 22 ),( yxexyyxf  > plot3d(x*y*exp(-x^2-y^2), x=-2..2,y=-2..2); b) 22 ),( yxexyxf  > plot3d(x*exp(-x^2-y^2), x=-2..2,y=-2..2); c) 22 ),( yxeyyxf  > plot3d(y*exp(-x^2-y^2), x=-2..2,y=-2..2); 32 d) 5 33),( 22   yx yxyxyxf , 3333  yex > plot3d(x^2+x*y+y^2+3/x+3/y+5,x=-3..3,y=-3..3); e) 5 33),( 22   yx yxyxyxf , 2222  yex > plot3d(x^2+x*y+y^2+3/x+3/y+5,x=-2..2,y=-2..2); f) 5 33),( 22   yx yxyxyxf , 4444  yex > plot3d(x^2+x*y+y^2+3/x+3/y+5,x=-4..4,y=-4..4); 35 4) Use a função IMPLICITIPLOT => GRÁFICOS DE FUNÇÕES IMPLÍCITAS a) 1622  yx (Circunferência) > with(plots): > implicitplot(x^2+y^2=16,x=-5..5,y=-5..5); b) 1 94 22  yx (Elipse) > with(plots): > implicitplot(x^2/4+y^2/9=1,x=-3..3,y=-4..4); c) 1 94 22  yx (Hipérbole) > with(plots): > implicitplot(x^2/4-y^2/9=1,x=-3..3,y=-4..4); 36 d) 222 yxz  (cones) > with(plots): > implicitplot3d(z^2=x^2+y^2,x=-3..3,y=-3..3,z=-3..3,color=gray); > implicitplot3d(z^2=x^2+y^2,z=-2..2,y=-2..2,x=-2..2); e) 9222  zyx (Esfera) > with(plots): > implicitplot3d(x^2+y^2+z^2=9,x=-3..3,y=-3..3,z=-3..3); 37 7. LIMITE E CONTINUIDADE Objetivo: Apresentar o conceito de limite de uma função dada, o conceito de limites laterais e as propriedades de limites. Estender esse conceito para continuidade e evidenciar exemplos quando as funções dadas são contínuas ou descontínuas. 7.1. LIMITES Nesta seção apresentamos o conceito de limite de uma função. Este conceito é muito importante no ensino do Cálculo Diferencial e Integral (CDI). Evidenciamos este conceito através de alguns exemplos, esclarecendo-o através do gráfico da função. Definição: Seja uma função f definida em um intervalo aberto I que contém o ponto p, exceto possivelmente no próprio ponto p. O limite de f(x) quando x se aproxima de p é L. A afirmação: Lxf px   )(lim significa que, para todo 0 existe um 0 tal que  |)(| Lxf sempre que  ||0 px . Observe que se f(x) tem limite quando x tende para p, então tal limite é único. A seguir, tem-se alguns exemplos de cálculo de limite utilizando os comandos “Limit” e “limit” do software Maple.  O comando “Limit” representa a expressão em forma da expressão do limite a ser calculado.  O comando “limit” calcula o valor do limite desejado.  O comando “Limit=limit” representa a expressão e calcula o limite. Exemplos: 1) Calcular o seguinte limite: 2 10lim 3 2    x xx x . Solução: Para resolver este limite damos o seguinte comandos na tela do Maple: > Limit((x^3+x-10)/(x-2),x=2)=limit((x^3+x-10)/(x-2),x=2); lim x 2  x3 x 10 x 2 13 Vamos visualizar o limite obtido anteriormente traçando o gráfico da função dada no intervalo contendo o ponto analisado. Observe que no gráfico dado anteriormente o valor no eixo y correspondente a x = 2 é 13. Portanto, concluímos que: 13 2 10lim 3 2     x xx x 40 2) Calcular o seguinte limite: 42 5lim 2    x x x . Solução: > Limit(sqrt(x^2+5)/(2*x-5),x=-infinity)=limit(sqrt(x^2+5)/(2*x-5),x=-infinity); lim x ( ) x2 5 2 x 5 -1 2 > plot(sqrt(x^2+5)/(2*x-5),x=-5..5,y=-5..5,color=black); > plot(sqrt(x^2+5)/(2*x-5),x=-20..5,y=-3..3,color=black); > plot(sqrt(x^2+5)/(2*x-5),x=-5000..0,y=-2..2,color=black); Nos três gráficos anteriores vemos que à medida que o valor de x aumenta o valor de f(x) tende a uma constante, o que se confirma calculando-se algebricamente o valor do seu limite que é -1/2. Também observamos pelo gráfico que o limite da função dada no ponto x = 2 não existe. Portanto, concluímos que: 2 1 42 5lim 2     x x x . 41 Os exemplos a seguir apresentam o limite de algumas funções especiais quando x tende a 0 ou quando x tende a menos ou mais infinito. 7.2. LIMITES ESPECIAIS OU FUNDAMENTAIS Exemplos: 1) Calcule o seguinte limite: x xsen x 0 lim  . A seguir construa o gráfico para visualizar o resultado. Solução: > Limit(sin(x)/x,x=0)=limit(sin(x)/x,x=0); lim x 0 ( )sin x x 1 > plot(sin(x)/x,x=-10..10,color=black); 2) Calcule o seguinte limite:        x senx x 1lim 0 A seguir construa o gráfico para visualizar o resultado. Solução: > Limit(x*sin(1/x),x=0)=limit(x*sin(1/x),x=0); lim x 0 x      sin 1 x 0 > plot(x*sin(1/x),x=-1..1,color=black); 3) Calcule o seguinte limite: || 1lim 0 xx . A seguir construa o gráfico para visualizar o resultado. Solução: > Limit(1/abs(x),x=0)=limit(1/abs(x),x=0); lim x 0 1 x  > plot(1/abs(x),x=-2..2,y=0..10,color=black); 42 4) Calcule o seguinte limite: x x x 1 0 )1(lim   . A seguir construa o gráfico para visualizar o resultado. Solução: > Limit((1+x)^(1/x),x=0)=limit((1+x)^(1/x),x=0); lim x 0 ( )1 x       1 x e > plot((1+x)^(1/x),x=-2..2,y=0..4,color=black); 5) Calcule o seguinte limite: x x x         11lim . A seguir construa o gráfico para visualizar o resultado. Solução: > Limit((1+1/x)^x,x=infinity)=limit((1+1/x)^x,x=infinity); lim x       1 1 x x e > plot((1+1/x)^x,x=0..10,y=0..3,color=black); > plot((1+1/x)^x,x=0..1000,y=0..3,color=black); 6) Calcule o seguinte limite: x x x         11lim . A seguir construa o gráfico para visualizar o resultado. Solução: > Limit((1+1/x)^x,x=-infinity)=limit((1+1/x)^x,x=-infinity); lim x ( )      1 1 x x e > plot((1+1/x)^x,x=-100..0,y=0..4,color=black); > plot((1+1/x)^x,x=-1000..10,y=0..4,color=black); Os exemplos a seguir calculam os limites laterais. 45 7.4. Propriedades de limites Use o Maple e suas funções: “Limit” e “expand” para verificar as seguintes propriedades de limites: Nota: É importante lembrar que para verificar as propriedades devemos carregar antes o pacote “with(student)”, dando o seguinte comando: >with(student): P1) )(lim)(lim)]()([lim xgxfxgxf pxpxpx   P2) )(lim)(lim)]()([lim xgxfxgxf pxpxpx   P3) )(lim)]([lim xfcxfc pxpx   P4) )(lim)(lim)]()([lim xgxfxgxf pxpxpx   P5) )(lim )(lim )( )(lim xg xf xg xf px px px          , 0)( xg P6) )(lim)( )(lim)(lim xg px xg px pxxfxf    P7) )(lim)(lim xfxf pxpx   Solução: Para facilitar, vamos combinar as duas funções: >Limit=expand > with(student): P1) > Limit(f(x)+g(x),x=p)=expand(Limit(f(x)+g(x),x=p)); lim x p ( )f x ( )g x ( )lim x p ( )f x ( )lim x p ( )g x P2) > Limit(f(x)-g(x),x=p)=expand(Limit(f(x)-g(x),x=p)); lim x p ( )f x ( )g x ( )lim x p ( )f x ( )lim x p ( )g x P3) > Limit(c*f(x),x=p)=expand(Limit(c*f(x),x=p)); lim x p c ( )f x c ( )lim x p ( )f x P4) > Limit(f(x)*g(x),x=p)=expand(Limit(f(x)*g(x),x=p)); lim x p ( )f x ( )g x ( )lim x p ( )f x ( )lim x p ( )g x P5) > Limit(f(x)/g(x),x=p)=expand(Limit(f(x)/g(x),x=p)); lim x p ( )f x ( )g x lim x p ( )f x lim x p ( )g x P6) > Limit(f(x)^(g(x)),x=p)=expand(Limit(f(x)^(g(x)),x=p)); lim x p ( )f x ( )g x ( )lim x p ( )f x ( )lim x p ( )g x P7) > Limit(sqrt(f(x)),x=p)=expand(Limit(sqrt(f(x)),x=p)); lim x p ( )f x lim x p ( )f x 46 7.5. CONTINUIDADE A seguir estudaremos o conceito de continuidade de uma função num certo ponto, utilizando os recursos do sofftware Maple. Inicialmente definimos este conceito matematicamente. Definição: Uma função f é contínua em um valor p se satisfaz as seguintes condições: (i) f(p) é definido, ou seja: existe f(p). (ii) )(lim xf px existe, ou seja: )(lim)(lim xfxf pxpx    (iii) )()(lim pfxf px   Se uma ou mais destas três condições não forem verificadas em p dizemos que a função f é descontínua em p. Agora consideraremos alguns exemplos de funções contínuas e descontínuas. Em cada exemplo traçamos um esboço do gráfico, determinando os pontos onde existe um salto no gráfico, e mostramos qual das três condições da definição dada anteriormente não é válida em cada descontinuidade. Nota: Analisaremos a continuidade das funções esboçando os seus respectivos gráficos. Escolhemos as variações de x e y conforme a necessidade de cada função. Exemplo: 1) Analisar a continuidade da função:       1,2 1,2 )( xsex xsex xf . Solução: Neste caso, dividimos a função dada em duas partes designando a primeira “f1” e a segunda “f2”. Observe os comando a seguir: > f1:=(x)->if x<=1 then 2+x else undefined fi: > f2:=(x)->if x>1 then 2-x else undefined fi: > plot({f1,f2},-3.5..3.5,-4..4,color=black); Pelo gráfico anterior concluímos que a função dada não é contínua em x = 1. 47 2) Analisar a continuidade da função:          2,2 2, 2 4 )( 2 xse xse x x xf . Solução: Neste caso, dividimos a função dada em três partes designando a primeira “f1”, a segunda “f2”e a terceira de “f3”. Observe os comando a seguir: > restart: # COMANDO USADO PARA REINICIAR AS VARIÁVEIS > f1:=(x)->if x<2 then (x^2-4)/(x-2) else undefined fi: > f2:=(x)->if x=2 then 2 else undefined fi: > f3:=(x)->if x>2 then (x^2-4)/(x-2) else undefined fi: > plot({f1,f2,f3},-5..5,-5..5,color=black); Observe que no ponto x = 2 seu valor 2 não aparece na tela, mas esse ponto fornece um valor vazio conforme “f1” e “f3”. Assim, concluímos que a função dada não é contínua em x = 2. 50 8. DERIVADAS O Maple é um aplicativo que possui inúmeras aplicações na resolução de problemas que envolvem o Cálculo Diferencial e Integral eis aqui alguns exemplos de como calcular derivadas através dos comandos “Diff” e “diff”: > restart: # COMANDO USADO PARA REINICIAR AS VARIÁVEIS > Diff(Pi*r^2,r)=diff(Pi*r^2,r);    r  r 2 2  r > Diff(4/3*Pi*r^3,r)=diff(4/3*Pi*r^3,r);    r       4 3  r 3 4  r2 > Diff(Pi*r^2*h,r)=diff(Pi*r^2*h,r);    r  r 2 h 2  r h > Diff(Pi*r^2*h,h)=diff(Pi*r^2*h,h);    h  r 2 h  r2 > f:=3*x^3+2*x^2+3*x+4; := f   3 x3 2 x2 3 x 4 > Diff(f,x)=diff(f,x);    x ( )  3 x 3 2 x2 3 x 4  9 x2 4 x 3 > g:=5*x^4-3*x^2-2/x; := g  5 x4 3 x2 2 x > Diff(g,x)=diff(g,x);    x       5 x 4 3 x2 2x  20 x 3 6 x 2 x2  Derivada de segunda ordem, ou seja, segunda derivada. > restart: > f:=3*x^3+2*x^2+3*x+4; := f   3 x3 2 x2 3 x 4 > Diff(f,x$2)=diff(f,x$2);   2 x2 ( )  3 x3 2 x2 3 x 4 18 x 4 51  Derivadas trigonométricas: 1) Verifique as seguintes regras de derivadas trigonométricas: R1) [sen(x)]’ = cos(x) R2) [cos(x)]’ =-sen(x) R3) [tg(x)]’ = sec2(x) R4) [cossec(x)]’ = -cossec(x) cotg(x) R5) [sec(x)]’ = sec(x) tg(x) R6) [cotg(x)]’ = -cossec2(x) Lembre-se: 1 + tg2(x) = sec2x e 1 + cotg2x = cossec2x Solução: R1) > Diff([sin(x)],x)=diff(sin(x),x);    x [ ]( )sin x ( )cos x R2) > Diff([cos(x)],x)=diff(cos(x),x);    x [ ]( )cos x  ( )sin x R3) > Diff([tan(x)],x)=diff(tan(x),x);    x [ ]( )tan x 1 ( )tan x 2 R4) > Diff([csc(x)],x)=diff(csc(x),x);    x [ ]( )csc x  ( )csc x ( )cot x R5) > Diff([sec(x)],x)=diff(sec(x),x);    x [ ]( )sec x ( )sec x ( )tan x R6) > Diff([cot(x)],x)=diff(cot(x),x);    x [ ]( )cot x  1 ( )cot x 2 > h2:=x->(3*x^2-4*x+5)/(4*x^3); := h2 x 1 4  3 x2 4 x 5 x3 > D(h2)(x);  1 4 6 x 4 x3 3 4  3 x2 4 x 5 x4 > normal(%);  1 4  3 x2 8 x 15 x4 > diff(h1,x$2);  60 x2 6 4 x3 > diff(h1,x$4); 120 48 x5 > (D@@1)(h2)(x);  1 4 6 x 4 x3 3 4  3 x2 4 x 5 x4 > normal(%);  1 4  3 x2 8 x 15 x4 52  Calculando mais algumas derivadas: > f2:=x -> sin(2*x); := f2 x ( )sin 2 x > # Derivando uma vez. > diff(f2(x),x); 2 ( )cos 2 x > # Derivando 3 vezes. > diff(f2(x),x,x,x); 8 ( )cos 2 x > # Observa que para derivar 3 vezes podemos usar x,x,x; ou $3. > diff(f2(x),x$3); 8 ( )cos 2 x  Calculando derivadas com operador diferencial "D" A saída (output) é sempre uma função: > h:=x -> x^2; := h x x2 > h(x); x2 > D(h); # Vai sair uma função ! x 2 x > D(h)(x); 2 x > diff(f(x)*g(x),x); # derivada do produto        x ( )f x ( )g x ( )f x        x ( )g x > diff( f(x,y(x)) , x ); # derivada total de f(x,y(x)) ( )( )D1 f ,x ( )y x ( )( )D2 f ,x ( )y x        x ( )y x 55 PRINCIPAIS FUNÇÕES DO SOFTWARE MAPLE A seguir, tem-se um resumo das mais importantes funções do software Maple e uma breve explicação de cada uma. O comando “Limit” representa a expressão em forma da expressão do limite a ser calculado. O comando “limit” calcula o valor do limite desejado. O comando “Limit=limit” representa a expressão e calcula o limite. O comando “expand” serve para expandir uma expressão. O comando “subs” é utilizado para substituir um certo valor em uma expressão. O comando “value” serve para calcular o valor de uma expressão. O comando “normal” é utilizado para escrever uma expressão numa forma normal (simplificada). O comando “evalf” avalia um resultado em decimais para n dígitos, sendo o número padrão igual a 10, se desejarmos aumentar a precisão do cálculo, basta especificar o número de dígitos desejado. O comando “restart” reinicia as variáveis. O comando “plot” constrói um gráfico bidimensional. O comando “factor” fatora uma expressa. O comando “solve” resolve uma equação. Se um comando começa com letra maiúscula, então ele é "inerte". Isto é, só escreve mas não calcula. LISTA DE EXERCÍCIOS PROPOSTOS PARA A REVISÃO DOS CONCEITOS: INTEGRAIS SIMPLES, DUPLAS E TRIPLAS 56  SÉRIES DE TAYLOR A função "series" escreve a “série de Taylor” de funções analíticas. Em geral, a resposta é dada em termos de uma expansão de ordem 6. Exemplos: 1) y = ex > S:=exp(x); := S ex > S1:=series(S,x=0); # Em torno de x=0. := S1      1 x 1 2 x 2 1 6 x 3 1 24 x 4 1 120 x 5 ( )O x6 > # Suponha que queremos agora uma expansão de ordem 10: > S2:=series(S,x=0,10); S2 1 x 12 x 2 1 6 x 3 1 24 x 4 1 120 x 5 1 720 x 6 1 5040 x 7 1 40320 x 8 1 362880 x 9          := ( )O x10 2) y = sen x 3) y = cos x > # Converter a série num polinômio. > S3:=convert(S2,polynom); := S3         1 x 1 2 x 2 1 6 x 3 1 24 x 4 1 120 x 5 1 720 x 6 1 5040 x 7 1 40320 x 8 1 362880 x 9 > S3(2); # inútil 1 ( )x 2 1 2 ( )x 2 2 1 6 ( )x 2 3 1 24 ( )x 2 4 1 120 ( )x 2 5 1 720 ( )x 2 6 1 5040 ( )x 2 7       1 40320 ( )x 2 8 1 362880 ( )x 2 9  > value(%); #inútil 1 ( )x 2 1 2 ( )x 2 2 1 6 ( )x 2 3 1 24 ( )x 2 4 1 120 ( )x 2 5 1 720 ( )x 2 6 1 5040 ( )x 2 7       1 40320 ( )x 2 8 1 362880 ( )x 2 9  > # Vamos transformar a expressão S3 numa função de verdade. > P:=unapply(S3,x); := P x         1 x 12 x 2 1 6 x 3 1 24 x 4 1 120 x 5 1 720 x 6 1 5040 x 7 1 40320 x 8 1 362880 x 9 > evalf(P(1)); 2.718281526 > evalf(subs(x=1,S)); 2.718281828 57  FRAÇÕES PARCIAIS O procedimento de frações parciais é utilizado para simplificar as expressões envolvendo quocientes na mesma variável, onde geralmente o denominador envolve expressões polinomiais. Usaremos os comandos “convert” e “parfrac” cuja sintaxe é “convert(expressão, parfrac, variável)”, ou seja, converter uma expressão algébrica em frações parciais em relação a uma variável. O comando “identity” indica que os lados direito e esquerdo de uma equação são idênticos e, deve sempre ser usado numa situação como a que será apresentada. Veja os exemplos a seguir: > restart; > k1:=x^3/(x^2+x); := k1 x3 x2 x > factor(%); x2 x 1 > convert(k1,parfrac,x);  x 1 1 x 1 > k2:=(2*x-1)/(2*x^2-3*x-2); := k2 2 x 1  2 x2 3 x 2 > convert(k2,parfrac,x);  4 5 1 2 x 1 3 5 x 2 > simplify(%); 2 x 1 ( )2 x 1 ( )x 2 > k3:=k1+k2; := k3  x3 x2 x 2 x 1  2 x2 3 x 2 > factor(k3);   2 x4 3 x3 x 1 ( )x 1 ( )2 x 1 ( )x 2 > convert(k3,parfrac,x);    x 1 1 x 1 4 5 2 x 1 3 5 x 2 > simplify(%);   2 x4 3 x3 x 1 ( )x 1 ( )2 x 1 ( )x 2 > k4:=(x^3+y^3)/(x+x*y); := k4 x3 y3 x x y > factor(k4); ( )x y ( ) x2 x y y2 x ( )1 y 60 USANDO O MAPLE V (VERSÃO 7.0) PARA A DETERMINAÇÃO E CLASSIFICAÇÃO DE EXTREMOS DE FUNÇÕES DE DUAS VARIÁVEIS Objetivos: 1) Definir a função. 2) Construir o seu gráfico. 3) Calcular as derivadas parciais de 1a ordem. 4) Determinar os pontos críticos. 5) Calcular as derivadas parciais de 2a ordem. 6) Construir o hessiano da função. 7) Classificar os pontos críticos. Observação importante: Ao iniciar o trabalho com o Maple salve o seu arquivo, escolhendo um nome apropriado (fácil de lembrar). Sinal Significado := Recebe = Igual ; Fim da linha de comando # Cerquilha (texto) ? Ajuda Exemplo: 22 yxyxf ),( 1)>Z:=x^2+y^2; 2)>plot3d(Z,x=-1..1,y=-1..1); 3)>Zx:=diff(Z,x); >Zy:=diff(Z,y); 4)>solve({Zx=0,Zy=0},{x,y}); 5)>Zxx:=diff(Zx,x); >Zxy:=diff(Zx,y); >Zyx:=diff(Zy,x); >Zyy:=diff(Zy,y); 6)>with(linalg): >H:=matrix([[Zxx,Zxy],[Zyx,Zyy]]); >Hessiano:=det(H); 7)>subs(x=xc,y=yc,Hessiano); >subs(x=xc,y=yc,Zxx); >subs(x=xc,y=yc,Z); 61  DEFINIÇÃO DA FUNÇÃO: ),( yxfz  Exemplo 1: 22),( yxyxf  >Z:=x^2+y^2; Exemplo 2: yxxyyxyxf 32),( 23  >Z:=x^3+y^2+x*y-2*x-3*y;  CONSTRUÇÃO DO GRÁFICO: >plot3d(FUNÇÃO,x=xinicial..xfinal,y=yinicial..yfinal);  DERIVADAS PARCIAIS DE 1a ORDEM: x f   ),( yx  >Zx:=diff(Z,x); y f   ),( yx  >Zy:=diff(Z,y);  A SEGUIR, RESOLVA O SISTEMA FORMADO PELAS DERIVADAS PARCIAIS DE PRIMEIRA ORDEM:             0 0 y f x f  >solve({Zx=0,Zy=0},{x,y});  DERIVADAS PARCIAIS DE 2a ORDEM: 2 2 x f   ),( yx  >Zxx:=diff(Zx,x); xy f   2 ),( yx  >Zxy:=diff(Zx,y); yx f   2 ),( yx  >Zyx=diff(Zy,x); 2 2 y f   ),( yx  >Zyy:=diff(Zy,y);  HESSIANO DA FUNÇÃO OU MATRIZ HESSIANA: >with(linalg):                      ),(),( ),(),( ),( 2 22 2 2 2 yx y fyx yx f yx xy fyx x f yxH  >H:=matrix([[Zxx,Zxy],[Zyx,Zyy]]);  DETERMINANTE HESSIANO DA FUNÇÃO: ),(),( ),(),( ),( 2 22 2 2 2 yx y fyx yx f yx xy fyx x f yxH           >Hessiano:=det(H); 62  EM SEGUIDA, SUBSTITUA OS PONTOS CRÍTICOS NO DETERMINANTE HESSIANO DA FUNÇÃO, NA SEGUNDA DERIVADA EM RELAÇÃO A X E NA FUNÇÃO PARA FAZER A CLASSIFICAÇÃO: - Se 0),( 00 yxH e 0),( 002 2    yx x f , então ),( 00 yx é um ponto de mínimo local de f . - Se 0),( 00 yxH e 0),( 002 2    yx x f , então ),( 00 yx é um ponto de máximo local de f . - Se 0),( 00 yxH , então ),( 00 yx não é extremante local. Nesse caso, ),( 00 yx é um ponto de sela. - Se 0),( 00 yxH , nada se pode afirmar. >subs(x=xc,y=yc,Hessiano) >subs(x=xc,y=yc,Zxx) >subs(x=xc,y=yc,Z)  TELA INICIAL DO PROGRAMA (SCRIPT = ROTEIRO) ESCRITO EM MAPLE V 65 1) 22),( yxyxf   Entradas e saídas do programa (SCRIPT = ROTEIRO) > Z:=x^2+y^2;# DEFINA AQUI A FUNÇÃO QUE SERÁ ANALISADA := Z x2 y2 > plot3d(Z,x=-3..3,y=-3..3); # CONSTRUA O GRÁFICO DA FUNÇÃO > Zx:=diff(Z,x);# CÁLCULO DA DERIVADA DE Z EM RELAÇÃO A VARIÁVEL x := Zx 2 x > Zy:=diff(Z,y); # CÁLCULO DA DERIVADA DE Z EM RELAÇÃO A VARIÁVEL y := Zy 2 y > solve({Zx=0,Zy=0},{x,y});# RESOLUÇÃO do SISTEMA COMPOSTO PELAS (derivadas de 1.a ordem) { },x 0 y 0 > Zxx:=diff(Zx,x);# CÁLCULO DA DERIVADA DE Zx EM RELAÇÃO A VARIÁVEL x := Zxx 2 > Zxy:=diff(Zx,y);# CÁLCULO DA DERIVADA DE Zx EM RELAÇÃO A VARIÁVEL Y := Zxy 0 > Zyx:=diff(Zy,x);# CÁLCULO DA DERIVADA DE Zy EM RELAÇÃO A VARIÁVEL x := Zyx 0 > Zyy:=diff(Zy,y);# CÁLCULO DA DERIVADA DE Zy EM RELAÇÃO A VARIÁVEL y := Zyy 2 > with(linalg):# ACIONANDO A CAIXA DE FERRAMENTAS DE ALGEBRA LINEAR Warning, the protected names norm and trace have been redefined and unprotected 66 > H:=matrix([[Zxx,Zxy],[Zyx,Zyy]]);# CONSTRUÇÃO DA MATRIZ HESSIANA (derivadas de 2.a ordem) := H       2 0 0 2 > Hessiano:=det(H);# CÁLCULO DO DETERMINANTE DA MATRIZ HESSIANA := Hessiano 4 > subs(x=0,y=0,Hessiano);# AVALIANDO O PONTO CRÍTICO ENCONTRADO NO HESSIANO 4 > subs(x=0,y=0,Zxx);# CASO HESSIANO > 0, CLASSIFIQUE EM MÁXIMO OU MÍNIMO 2 > subs(x=0,y=0,Z); # AVALIANDO A FUNÇÃO NO PONTO CRÍTICO ENCONTRADO 0 > # VOLTE A PRIMEIRA LINHA DO PROGRAMA E SUBSTITUA A FUNÇÃO POR UMA OUTRA! > # NO MENU PRINCIPAL CLÍQUE EM <Edit> SELECIONE A OPÇÃO <Execute> E <Worksheet> > # SUBSTITUA OS NOVOS PONTOS CRÍTICOS ENCONTRADOS, CLASSIFICANDO-OS. RESPOSTA: Como Hessiano > 0 e Zxx > 0 => (0, 0) é ponto de mínimo e f(0, 0) = 0. 2) 22 )2()1(),(  yxyxf  Entradas e saídas do programa (SCRIPT = ROTEIRO) > Z:=(x-1)^2+(y-2)^2;# DEFINA AQUI A FUNÇÃO QUE SERÁ ANALISADA := Z ( )x 1 2 ( )y 2 2 > plot3d(Z,x=-3..3,y=-3..3); # CONSTRUA O GRÁFICO DA FUNÇÃO 67 > Zx:=diff(Z,x);# CÁLCULO DA DERIVADA DE Z EM RELAÇÃO A VARIÁVEL x := Zx 2 x 2 > Zy:=diff(Z,y); # CÁLCULO DA DERIVADA DE Z EM RELAÇÃO A VARIÁVEL y := Zy 2 y 4 > solve({Zx=0,Zy=0},{x,y});# RESOLUÇÃO DO SISTEMA COMPOSTO PELAS (derivadas de 1.a ordem) { },x 1 y 2 > Zxx:=diff(Zx,x);# CÁLCULO DA DERIVADA DE Zx EM RELAÇÃO A VARIÁVEL x := Zxx 2 > Zxy:=diff(Zx,y);# CÁLCULO DA DERIVADA DE Zx EM RELAÇÃO A VARIÁVEL Y := Zxy 0 > Zyx:=diff(Zy,x);# CÁLCULO DA DERIVADA DE Zy EM RELAÇÃO A VARIÁVEL x := Zyx 0 > Zyy:=diff(Zy,y);# CÁLCULO DA DERIVADA DE Zy EM RELAÇÃO A VARIÁVEL y := Zyy 2 > with(linalg):# ACIONANDO A CAIXA DE FERRAMENTAS DE ALGEBRA LINEAR > H:=matrix([[Zxx,Zxy],[Zyx,Zyy]]);# CONSTRUÇÃO DA MATRIZ HESSIANA (derivadas de 2.a ordem) := H       2 0 0 2 > Hessiano:=det(H);# CÁLCULO DO DETERMINANTE DA MATRIZ HESSIANA := Hessiano 4 > subs(x=1,y=2,Hessiano);# AVALIANDO O PONTO CRÍTICO ENCONTRADO NO HESSIANO 4 > subs(x=1,y=2,Zxx);# CASO HESSIANO > 0, CLASSIFIQUE EM MÁXIMO OU MÍNIMO 2 > subs(x=1,y=2,Z); # AVALIANDO A FUNÇÃO NO PONTO CRÍTICO ENCONTRADO 0 > # VOLTE A PRIMEIRA LINHA DO PROGRAMA E SUBSTITUA A FUNÇÃO POR UMA OUTRA! > # NO MENU PRINCIPAL CLÍQUE EM <Edit> SELECIONE A OPÇÃO <Execute> E <Worksheet> > # SUBSTITUA OS NOVOS PONTOS CRÍTICOS ENCONTRADOS, CLASSIFICANDO-OS. Agora classifique o ponto crítico encontrado! Resposta: Como Hessiano > 0 e Zxx > 0 => (1,2) é ponto de mínimo e f(1,2) = 0. 70 4)            2 22 ),( yx exyyxf  Entradas e saídas do programa (SCRIPT = ROTEIRO) > Z:=x*y*exp(-(x^2+y^2)/2);# DEFINA AQUI A FUNÇÃO QUE SERÁ ANALISADA := Z x y e ( ) /1 2 x 2 /1 2 y2 > plot3d(Z,x=-3..3,y=-3..3); # CONSTRUA O GRÁFICO DA FUNÇÃO > Zx:=diff(Z,x);# CÁLCULO DA DERIVADA DE Z EM RELAÇÃO A VARIÁVEL x := Zx y e ( ) /1 2 x 2 /1 2 y2 x2 y e ( ) /1 2 x 2 /1 2 y2 > Zy:=diff(Z,y); # CÁLCULO DA DERIVADA DE Z EM RELAÇÃO A VARIÁVEL y := Zy x e ( ) /1 2 x 2 /1 2 y2 x y2 e ( ) /1 2 x 2 /1 2 y2 > solve({Zx=0,Zy=0},{x,y});# RESOLUÇÃO DO SISTEMA COMPOSTO PELAS (derivadas de 1.a ordem) , , , ,{ },x 0 y 0 { },x 1 y 1 { },x 1 y -1 { },x -1 y 1 { },x -1 y -1 > Zxx:=diff(Zx,x);# CÁLCULO DA DERIVADA DE Zx EM RELAÇÃO A VARIÁVEL x := Zxx  3 x y e ( ) /1 2 x 2 /1 2 y2 x3 y e ( ) /1 2 x 2 /1 2 y2 > Zxy:=diff(Zx,y);# CÁLCULO DA DERIVADA DE Zx EM RELAÇÃO A VARIÁVEL Y := Zxy   e ( ) /1 2 x 2 /1 2 y2 y2 e ( ) /1 2 x 2 /1 2 y2 x2 e ( ) /1 2 x 2 /1 2 y2 x2 y2 e ( ) /1 2 x 2 /1 2 y2 > Zyx:=diff(Zy,x);# CÁLCULO DA DERIVADA DE Zy EM RELAÇÃO A VARIÁVEL x := Zyx   e ( ) /1 2 x 2 /1 2 y2 y2 e ( ) /1 2 x 2 /1 2 y2 x2 e ( ) /1 2 x 2 /1 2 y2 x2 y2 e ( ) /1 2 x 2 /1 2 y2 > Zyy:=diff(Zy,y);# CÁLCULO DA DERIVADA DE Zy EM RELAÇÃO A VARIÁVEL y := Zyy  3 x y e ( ) /1 2 x 2 /1 2 y2 x y3 e ( ) /1 2 x 2 /1 2 y2 > with(linalg):# ACIONANDO A CAIXA DE FERRAMENTAS DE ALGEBRA LINEAR 71 > H:=matrix([[Zxx,Zxy],[Zyx,Zyy]]);# CONSTRUÇÃO DA MATRIZ HESSIANA (derivadas de 2.a ordem) H :=  3 x y e ( ) /1 2 x 2 /1 2 y2 x3 y e ( ) /1 2 x 2 /1 2 y2[ ,   e ( ) /1 2 x 2 /1 2 y2 y2 e ( ) /1 2 x 2 /1 2 y2 x2 e ( ) /1 2 x 2 /1 2 y2 x2 y2 e ( ) /1 2 x 2 /1 2 y2 ]   e ( ) /1 2 x 2 /1 2 y2 y2 e ( ) /1 2 x 2 /1 2 y2 x2 e ( ) /1 2 x 2 /1 2 y2 x2 y2 e ( ) /1 2 x 2 /1 2 y2[ ,  3 x y e ( ) /1 2 x 2 /1 2 y2 x y3 e ( ) /1 2 x 2 /1 2 y2 ] > Hessiano:=det(H);# CÁLCULO DO DETERMINANTE DA MATRIZ HESSIANA Hessiano 5 x2 y2 ( )e ( ) /1 2 x 2 /1 2 y2 2 x2 y4 ( )e ( ) /1 2 x 2 /1 2 y2 2 x4 y2 ( )e ( ) /1 2 x 2 /1 2 y2 2   := ( )e ( ) /1 2 x 2 /1 2 y2 2 2 y2 ( )e ( ) /1 2 x 2 /1 2 y2 2 2 x2 ( )e ( ) /1 2 x 2 /1 2 y2 2    y4 ( )e ( ) /1 2 x 2 /1 2 y2 2 x4 ( )e ( ) /1 2 x 2 /1 2 y2 2   > subs(x=0,y=0,Hessiano);# AVALIANDO O PONTO CRÍTICO ENCONTRADO NO HESSIANO ( )e0 2 > subs(x=0,y=0,Zxx);# CASO HESSIANO > 0, CLASSIFIQUE EM MÁXIMO OU MÍNIMO 0 > subs(x=0,y=0,Z); # AVALIANDO A FUNÇÃO NO PONTO CRÍTICO ENCONTRADO 0 > subs(x=1,y=1,Hessiano);# AVALIANDO O PONTO CRÍTICO ENCONTRADO NO HESSIANO 4 ( )e ( )-1 2 > subs(x=1,y=1,Zxx);# CASO HESSIANO > 0, CLASSIFIQUE EM MÁXIMO OU MÍNIMO 2 e ( )-1 > subs(x=1,y=1,Z); # AVALIANDO A FUNÇÃO NO PONTO CRÍTICO ENCONTRADO e ( )-1 > subs(x=1,y=-1,Hessiano);# AVALIANDO O PONTO CRÍTICO ENCONTRADO NO HESSIANO 4 ( )e ( )-1 2 > subs(x=1,y=-1,Zxx); # CASO HESSIANO > 0, CLASSIFIQUE EM MÁXIMO OU MÍNIMO; 2 e ( )-1 > subs(x=1,y=-1,Z); # AVALIANDO A FUNÇÃO NO PONTO CRÍTICO ENCONTRADO e ( )-1 > subs(x=-1,y=1,Hessiano);# AVALIANDO O PONTO CRÍTICO ENCONTRADO NO HESSIANO 4 ( )e ( )-1 2 > subs(x=-1,y=1,Zxx); # CASO HESSIANO > 0, CLASSIFIQUE EM MÁXIMO OU MÍNIMO; 2 e ( )-1 72 > subs(x=-1,y=1,Z); # AVALIANDO A FUNÇÃO NO PONTO CRÍTICO ENCONTRADO e ( )-1 > subs(x=-1,y=-1,Hessiano);# AVALIANDO O PONTO CRÍTICO ENCONTRADO NO HESSIANO 4 ( )e ( )-1 2 > subs(x=-1,y=-1,Zxx); # CASO HESSIANO > 0, CLASSIFIQUE EM MÁXIMO OU MÍNIMO; 2 e( )-1 > subs(x=-1,y=-1,Z); # AVALIANDO A FUNÇÃO NO PONTO CRÍTICO ENCONTRADO e ( )-1 > # VOLTE A PRIMEIRA LINHA DO PROGRAMA E SUBSTITUA A FUNÇÃO POR UMA OUTRA! > # NO MENU PRINCIPAL CLÍQUE EM <Edit> SELECIONE A OPÇÃO <Execute> E <Worksheet> > # SUBSTITUA OS NOVOS PONTOS CRÍTICOS ENCONTRADOS, CLASSIFICANDO-OS. Resposta:  Ponto crítico (0, 0): Como Hessiano < 0 => (0, 0) é ponto de sela e f(0, 0) = 0.  Ponto crítico (1, -1): Como Hessiano > 0 e Zxx > 0 => (1, -1) é ponto de mínimo e f(1, -1) = -e-1.  Ponto crítico (-1, 1): Como Hessiano > 0 e Zxx > 0 => (-1, 1) é ponto de mínimo e f(-1, 1) = -e-1.  Ponto crítico (1, 1): Como Hessiano > 0 e Zxx < 0 => (1, 1) é ponto de máximo e f(1, 1) = e-1 .  Ponto crítico (-1, -1): Como Hessiano > 0 e Zxx < 0 => (-1, -1) é ponto de máximo e f(-1, -1) = e-1 . 75 11) INTRODUÇÃO À PROGRAMAÇÃO NO MAPLE O Maple possui linguagem de programação de alto nível, disponível on-line e compatível com os recursos de sua própria estrutura. Assim, é possível construir procedimentos nos quais o usuário tenha um interesse especial, e utilizar nessa construção todas as estruturas e funções do Maple, ou mesmo estendê-las ou modificá-las, de acordo com suas necessidades particulares. Procedimentos e estruturas modificadas podem ser inicializadas em um único pacote, e um conjunto de procedimentos pode ser inicializado em uma biblioteca.  Procedimentos No Maple os programas são feitos em forma de procedimentos. Um procedimento é na verdade uma função que transforma os argumentos inseridos em outros argumentos, conforme foi programado. A estrutura de um procedimento é a seguinte: Nome_procedimento:=proc(argumentos) Local (variáveis locais); instruções a serem executadas; end; Exemplos: 1) Usando o Maple, criar um procedimento em que fornecido um número x, o mesmo calcule o seu cubo. Solução: > cubo:=proc(x); > x^3; > end; := cubo proc( ) end procx ^x 3 > # Exemplos: > cubo(2); 8 > cubo(-2); -8 > cubo(0); 0 > cubo(sqrt(2)); 2 2 > cubo(I); -I 2) O termial de um número é bastante conhecido. Só não é comum o uso de um símbolo específico e de um nome. De maneira semelhante ao fatorial, pode-se definir o termial de um número natural, representado por ?n , por: 123...)3()2()1(?  nnnnn , para n maior ou igual a 2 Nota: Para mais detalhe consulte o Anexo I - O problema dos quatro quatros Usando o Maple, criar um procedimento em que fornecido um número n, o mesmo calcule o seu termial. Solução:  Começaremos com a definição de um procedimento bem simples: > termial:= proc(n)# Imitando a definição de fatorial, mas com soma em vez de produto. > sum(i, i=1..n);# “sum” soma uma seqüência numérica ou literal. > end; := termial proc ( ) end procn ( )sum ,i i .. 1 n 76  Assim, colocando a instrução “sum(..)” entre os termos “proc(..)” e “end” nós a transformamos em um procedimento. Podemos agora chamar essa nova função: > termial(1); 1 > termial(2); 3 > termial(10); 55 > termial(100);# Gauss conhecia esta soma! 5050  Podemos operar com essa função, como com outra qualquer função do Maple: > termial(n);   1 2 ( )n 1 2 1 2 n 1 2 > factor(%);#Já conhecemos esta fórmula: Soma dos n elementos de uma PA! 1 2 n ( )n 1  A variável n utilizada na definição do procedimento “termial” chama-se parâmetro ou argumento. Em nossa definição não especificamos o tipo do argumento, de modo que podemos colocar qualquer tipo que seja aceito pelo comando “sum”.  Por exemplo: > termial(5/2); # 5/2 = 2.5 => 2 + 1 = 3 3 > termial(5.3); # 5.3 => 5 + 4 + 3 + 2 + 1 = 15 15  Se desejarmos restringir o tipo do argumento de entrada, podemos definir assim nosso procedimento: > termial2 := proc(n::posint) # posint significa tipo inteiro positivo > sum(i, i=1..n); > end; := termial2 proc ( ) end proc::n posint ( )sum ,i i .. 1 n  Agora nosso procedimento só aceita argumento inteiro positivo. Se utilizarmos outro tipo de dado numérico receberemos uma mensagem de erro. > termial2(5/2); Error, invalid input: termial2 expects its 1st argument, n, to be of type posint, but received 5/2 77  Variáveis locais e globais As variáveis utilizadas na construção de um procedimento podem ser locais ou globais . Os valores das variáveis locais são reconhecidos pelo Maple apenas dentro do procedimento. Por outro lado, os valores das variáveis globais são reconhecidos pelo Maple também fora do procedimento. Se o procedimento não especifica o caráter da variável que está utilizando, o Maple decide sobre isso e avisa o usuário. Variáveis utilizadas normalmente na folha de trabalho, fora da definição de procedimentos, são sempre globais. Vejamos alguns exemplos. > a:= 5; # Definindo o valor da variável global “a” := a 5 > termial3:= proc(n) # Usando “a” como variável local > local a; > a:= sum(i, i=1..n); > a; > end; := termial3 proc ( ) end procn local ;a ; := a ( )sum ,i i .. 1 n a > termial3(3); 6 > a; 5 Vemos que, ao executar o procedimento, o valor da variável “a” passou a ser 6, mas isso ocorreu apenas localmente. Estudemos agora o seguinte exemplo: > termial4 := proc(n) # Usando “a” como variável global global a; a:= sum(i, i=1..n); a; end; := termial4 proc( ) end procn global ;a ; := a ( )sum ,i i .. 1 n a > termial4(3); 6 > a; 6 Vemos assim que o valor de “a” foi modificado pelo procedimento. 80 3) Usando o Maple, criar um procedimento para determinar se um dado número é par ou ímpar. > par_impar:=proc(x) > if irem(x,2)=0 then # “irem” Resto da divisão inteira > print(x,`é par`) > else print(x,`é impar`) > fi > end; par_impar xproc( ) := if then else end if( )irem ,x 2 0 ( )print ,x `é par` ( )print ,x `é impar` end proc > # Exemplos: > par_impar(-3); ,-3 é impar > par_impar(6); ,6 é par > par_impar(9); ,9 é impar > par_impar(2.4); Error, (in par_impar) wrong number (or type) of parameters in function irem > par_impar(123456789); ,192837465 é impar 4) Construa uma função definida por várias sentenças no Maple par a função:             2,3 21,2 10,1 0,0 )( xse xse xse xse xF Solução: > F:=x-> if x<0 then 0 elif x<1 then 1 elif x<2 then 2 else 3 fi; F xproc( ) := option ;,operator arrow if then elif then elif then else end ifx 0 0 x 1 1 x 2 2 3 end proc > plot(F,-2..4); 81 5) Tabela do INSS > restart: > INSS:=SB-> if SB<=752.62 then (7.65/100)*SB elif SB>752.62 and SB<=780 then (8.65/100)*SB elif SB>780 and SB<=1254.36 then (9.00/100)*SB elif SB>1254.37 and SB<=2508.72 then (11.00/100)*SB else 275.95 fi; INSS SBproc( ) := option ;,operator arrow SB 752.62 .07650000000 SBif then and 752.62 SB SB 780 .08650000000 SBelif then and 780 SB SB 1254.36 .09000000000 SBelif then and 1254.37 SB SB 2508.72 .1100000000 SBelif then 275.95else end if end proc > INSS(500); 38.25000000 > INSS(760); 65.74000000 > INSS(1000); 90.00000000 > INSS(1500); 165.0000000 > INSS(3000); 275.95 > plot(INSS,0..5000,title=`VARIAÇÃO DO INSS EM FUNÇÃO DO SALÁRIO BRUTO`,color=black); 82 6) Construa um programa em que dado um número n, calcula o seu termial. > termial:= proc(n) #imitando a definição de fatorial, mas com soma em vez de produto > sum(i,i=1..n); > end; := termial proc( ) end procn ( )sum ,i i .. 1 n > termial(1); 1 > termial(2); 3 > termial(10); 55 > termial(100);# Gaus conhecia esta soma 5050 > termial(n);   1 2 ( )n 1 2 1 2 n 1 2 > factor(%);#Já conhecemos esta fórmula: Soma dos elementos de uma PA! 1 2 n ( )n 1 85 MATRIZES USANDO O SOFTWARE MAPLE Após digitar a matriz, pressione <ENTER>. Selecione a Matriz digitada e clique com o botão direito do Mouse, abrirá a seguinte janela com as respectivas funções, selecione a desejada. 86 0. INTRODUÇÃO AO PACOTE DE ÁLGEBRA LINEAR NO MAPLE Nesta seção introduziremos algumas das principais funções do pacote de Álgebra Linear linalg para as aplicações mais básicas: operações com matrizes, resolução de sistemas lineares, cálculo da inversa de uma matriz e cálculo do determinante de uma matriz. Sempre que iniciarmos um trabalho no software Maple, será de fundamental importância acionar o pacote de funções e operações específicas para o problema em questão. O comando with(package): aciona o pacote de comandos e funções package do Maple. Em particular,utilizamos o pacote de Álgebra Linear: with(linalg): 1. OPERAÇÕES COM MATRIZES a) Soma de matrizes e multiplicação de uma matriz por um escalar Com o comando: matadd(A,B,a,b); executamos a combinação linear aA+bB de A e B, onde a e b são escalares reais. Dessa forma podemos: 1) Somar duas matrizes; 2) Multiplicar uma matriz por uma escalar; 3) Fazer qualquer combinação linear de duas matrizes. Exemplo 1: > with(linalg): A:=matrix([ [1,2],[3,4] ]); Warning, the protected names norm and trace have been redefined and unprotected := A       1 2 3 4 > B:=matrix([ [5,6],[7,8] ]); := B       5 6 7 8 Observação:Se queremos apenas somar as duas matrizes, basta omitir os escalares > S:=matadd(A,B); := S       6 8 10 12 Observação: S é a matriz A+B. 87 Exemplo 2: Queremos agora multiplicar a matriz A pelo escalar 3: > A:=matrix([ [1,2],[3,4] ]); := A       1 2 3 4 Para tanto é necessário que um dos escalares seja zero, assim a outra matriz de entrada (pode ser qualquer matriz) não interfere no cálculo desejado. > M:=matadd(A,A,3,0); := M       3 6 9 12 Observação: A matriz M é a matriz A multiplicada pelo escalar 3. Exemplo 3: Para fazer a combinação linear de duas matrizes, é só usar todos os argumentos do comando. Por exemplo, para obter a combinação linear 5A - 8B: > A:=matrix([ [1,2],[3,4] ]); := A       1 2 3 4 > B:=matrix([ [5,6],[7,8] ]); := B       5 6 7 8 > C:=matadd(A,B,5,-8); := C       -35 -38 -41 -44 b) Produto de matrizes O comando: multiply(A,B,...); executa o produto das matrizes listadas, na ordem em que aparecem, desde que para isso, as matrizes escolhidas obedeçam às regras de multiplicação de matrizes (o número de colunas da primeira matriz a ser multiplicada deve ser igual ao número de linhas da segunda). Exemplo 4: > with(linalg): A:=matrix([ [1,2],[3,4] ]); := A       1 2 3 4 > B:=matrix([ [5,6],[7,8] ]); := B       5 6 7 8 Multiplicaremos A por B, obtendo uma matriz AB. 90 Exemplo 2: Sistema sem solução (SISTEMA IMPOSSÍVEL - SI). Dado o sistema         50864 21543 1432 : zyx zyx zyx S Ao executarmos o comando solve > restart: with(linalg): solve( {x+2*y+3*z=14, 3*x+4*y+5*z=21, 4*x+6*y+8*z=50}, {x,y,z} ); Warning, the protected names norm and trace have been redefined and unprotected Observação: Neste caso, não obteremos resultado algum. Isso ocorrerá sempre que o sistema em questão for impossível, ou seja, não admite solução. Exemplo 3: Sistema com infinitas soluções (SISTEMA POSSÍVEL INDETERMINADO - SPI). Dado o sistema homogêneo (todos os termos independente são nulos)         1875 0332 1543 : zyx zyx zyx S > restart: with(linalg): solve( {3*x+4*y+5*z=1, 2*x+3*y+3*z=0, 5*x+7*y+8*z=1}, {x,y,z} ); Warning, the protected names norm and trace have been redefined and unprotected { }, ,y  13 x 1 z   1 3 x 1 x x Observação:Verificamos que uma das variáveis (z, nesse caso) é tomada como parâmetro, daí temos infinitas soluções para esse sistema: para cada valor atribuído a z, obtemos uma solução diferente para o sistema. 91 3. CÁLCULO DO DETERMINANTE E INVERSA DE UMA MATRIZ a) Determinante de uma Matriz O comando det(A); calcula o determinante da matriz A. Exemplo: > restart: with(linalg): A:= matrix([ [6,1,8],[7,5,3],[2,9,4] ]); det(A); := A       6 1 8 7 5 3 2 9 4 360 Observação: Se a Matriz não for quadrada, será exibida uma mensagem de erro avisando que a mesma deve ser uma matriz quadrada. b) Inversa de uma Matriz Sempre que o determinante de uma matriz for diferente de zero, esta matriz possui uma inversa. Neste caso, o comando inverse(A); calcula a matriz inversa de A. Exemplo 1: > restart: with(linalg): A:= matrix([ [6,1,8],[7,5,3],[2,9,4] ]); det(A); invA:=inverse(A); := A       6 1 8 7 5 3 2 9 4 360 := invA       -7 360 17 90 -37 360 -11 180 1 45 19 180 53 360 -13 90 23 360 92 Exemplo 2: > B:=matrix([ [1,2,3],[4,5,6],[7,8,9] ]); det(B); invB:= inverse(B); := B       1 2 3 4 5 6 7 8 9 0 Error, (in inverse) singular matrix Observação: Recebemos uma mensagem de erro esperada, já que como o determinante de B é 0, B não possui inversa. 4. INTERPRETAÇÃO GEOMÉTRICA DA SOLUÇÃO DE SISTEMAS LINEARES COM DUAS EQUAÇÕES E DUAS INCÓGNITAS O comando: solve({equação 1, equação 2},{x, y}); resolve o sistema de duas equações e duas variáveis x e y. Exemplo 1: Sistema com solução única (SISTEMA POSSÍVEL DETERMINADO - SPD). Dado o sistema      2 10 : yx yx S usamos o comando solve para determinar o valor das variáveis x e y: usamos o comando implicitplot para a construções do gráfico das funções que compõem o sistema linear. > restart: with(linalg): solve( {x+y=6, x-y=2}, {x,y} ); with(plots): implicitplot({x+y=6, x-y=2},x=-10..10,y=-10..10,title=`Sistema Linear - SPD`); { },y 2 x 4 95 5. LISTA DE EXERCÍCIOS PROPOSTOS PARA A REVISÃO DOS CONCEITOS 1) Usando o software Maple, resolva os seguintes Sistemas Lineares: a)         334 23 12 : zyx yx zx S b)         33 22 12 : yx zyx zyx S c)         023 024 023 : zyx yx zyx S Solução: a) > restart: with(linalg): solve( {2*x+z=1, x+3*y=2, -x+4*y-3*z=3}, {x,y,z} ); Warning, the protected names norm and trace have been redefined and unprotected { }, ,x 1011 z -9 11 y 4 11 b) > restart: with(linalg): solve( {2*x-y+z=1, 2*x-y+z=2, x+3*y=3}, {x,y,z} ); Warning, the protected names norm and trace have been redefined and unprotected Observação: Neste caso, não obteremos resultado algum. Isso ocorrerá sempre que o sistema em questão for impossível, ou seja, não admite solução. c) > restart: with(linalg): solve( {3*x-y+2*z=0, 4*x+2*y=0, -x-3*y+2*z=0}, {x,y,z} ); Warning, the protected names norm and trace have been redefined and unprotected { }, ,x  12 y y y z 5 4 y Observação:Verificamos que uma das variáveis (x, nesse caso) é tomada como parâmetro, daí temos infinitas soluções para esse sistema: para cada valor atribuído a x, obtemos uma solução diferente para o sistema. > # Tópicos 1, 2 e 3 => Adaptado de Reginaldo - UFMG 96 EXEMPLO DE PROGRAMAS (ROTEIROS = SCRIPTS): 1) Elabore um programa em que dada uma função de uma variável, o mesmo determine: a) O gráfico da função dada; b) A derivada de primeira ordem, ou seja, a primeira derivada; c) O(s) ponto(s) crítico(s) da função; d) A derivada de segunda ordem, ou seja, a segunda derivada; e) A classificação do(s) ponto(s) crítico(s) da função usando o teste da segunda derivada. Solução: OBSERVAÇÃO: fx: representa a 1.a derivada e fxx: representa a 2.a derivada > f:=x^3/3-6*x^2+35*x+70;# DEFINA AQUI A FUNÇÃO QUE SERÁ ANALISADA := f    1 3 x 3 6 x2 35 x 70 > plot(f,x=4..10); # CONSTRUA O GRÁFICO DA FUNÇÃO (APÓS OS PONTOS CRÍTICOS REDEFINA O INTERVALO) > fx:=diff(f,x);# CÁLCULO DA DERIVADA DE f EM RELAÇÃO A VARIÁVEL x (DERIVADA DE 1.a ORDEM) := fx  x2 12 x 35 > critico:=solve({fx=0},{x});# RESOLUÇÃO DA EQUAÇÃO f'(x) = 0 := critico ,{ }x 7 { }x 5 > fxx:=diff(fx,x);# CÁLCULO DA DERIVADA DE SEGUNDA ORDEM := fxx 2 x 12 97 > fxx_critico1:=subs(critico[1],fxx);# AVALIANDO O PONTO CRÍTICO ENCONTRADO NA SEGUNDA DERIVADA := fxx_critico1 2 > f_critico1:=subs(critico[1],f);# AVALIANDO A FUNÇÃO NO PONTO CRÍTICO ENCONTRADO := f_critico1 406 3 > fxx_critico2:=subs(critico[2],fxx);# AVALIANDO O PONTO CRÍTICO ENCONTRADO NA SEGUNDA DERIVADA := fxx_critico2 -2 > f_critico2:=subs(critico[2],f);# AVALIANDO A FUNÇÃO NO PONTO CRÍTICO ENCONTRADO := f_critico2 4103 > ################################################################################ > ### FAÇAMOS AQUI A CLASSIFICAÇÃO DOS PONTOS CRÍTICOS ENCONTRADOS #### > ################################################################################ > if fxx_critico1 < 0 then print(critico[1],`ABSCISSA DO PONTO DE MÁXIMO`) elif fxx_critico1 > 0 then print(critico[1],`ABSCISSA DO PONTO DE MÍNIMO`) else print(critico[1],`NADA A CONCLUIR PELO TESTE DA DERIVADA SEGUNDA`) fi; ,{ }x 7 ABSCISSA DO PONTO DE MÍNIMO > if fxx_critico2 < 0 then print(critico[2],`ABSCISSA DO PONTO DE MÁXIMO`) elif fxx_critico2 > 0 then print(critico[2],`ABSCISSA DO PONTO DE MÍNIMO`) else print(critico[2],`NADA A CONCLUIR PELO TESTE DA DERIVADA SEGUNDA`) fi; ,{ }x 5 ABSCISSA DO PONTO DE MÁXIMO > # ------------------------ FIM DO PROGRAMA -----------------------------------# > # VOLTE A PRIMEIRA LINHA DO PROGRAMA E SUBSTITUA A FUNÇÃO POR UMA OUTRA! # > # NO MENU PRINCIPAL CLÍQUE EM <Edit> SELECIONE A OPÇÃO <Execute> E <Worksheet> # > # OBSERVE A CLASSIFICAÇÃO DOS PONTOS CRÍTICOS ENCONTRADOS. # > # ------------------------ FIM DO PROGRAMA -----------------------------------# >
Docsity logo



Copyright © 2024 Ladybird Srl - Via Leonardo da Vinci 16, 10126, Torino, Italy - VAT 10816460017 - All rights reserved