Elementos de Programação
Amílcar Sernadas, Cristina Sernadas e Jaime Ramos

Aula prática 1 (Laboratório)
Utilização do sistema Mathematica

Como começar?

Para utilizar o sistema Mathematica a partir de um PC com Windows, Windows 95 ou WindowsNT basta invocar o programa a partir do ícone respectivo.

O sistema Mathematica tem duas componentes: o "Notebook" e o "Kernel". O "Notebook" é semelhante a um editor de texto e permite, entre outras facilidades, escrever e editar texto e expressões, visualizar e gravar resultados. Podem existir vários em simultâneo. Quando o Mathematica é invocado apenas o "Notebook" fica activo. Para avaliar expressões é preciso que também o "Kernel" o esteja. Isto porque o "Kernel" é a entidade que efectivamente processa e avalia as expressões Mathematica. No entanto, o "Kernel" é lançado automaticamente pelo sistema apenas no instante da primeira avaliação. A partir daí fica também activo. O "Kernel" comunica com o "Notebook" através de um processo denominado "MathLink".

Cada "Notebook" está organizado em células, delimitadas por um parêntesis recto do lado direito da janela. Cada célula tem associado um tipo (texto, input, ouput, gráficos, etc.). As células de input podem avaliar-se premindo simultaneamente as teclas "shift" e "return", o que inicia a necessária comunicação com o "Kernel". As células de um "Notebook" podem ainda ser agrupadas, editadas e, sendo de input, também reavaliadas.

As funções pré-definidas em Mathematica têm sempre um nome cujo primeiro caracter é uma letra maiúscula. A aplicação de uma função faz-se colocando os argumentos separados por vírgulas entre parênteses rectos. Os parênteses curvos são apenas utilizados para agrupar expressões enquanto as chavetas se destinam à construção de listas. Os nomes cujo primeiro caracter seja uma letra minúscula são entendidos como variáveis.

Invoque o Mathematica.

Avalie a expressão 1+1.

1 + 1

2

O tempo de avaliação pode parecer excessivo para uma expressão tão simples. De facto, o que se passa é que o "Kernel" está a ser activado. Daí para a frente tudo será mais rápido.

Cálculo numérico

Calcule o valor de 2^1000.

Divida o resultado anterior por 7; obtenha uma aproximação a 2^1000/7 com 10 dígitos de precisão.

Avalie a expressão π.

Obtenha uma aproximação de π com 1000 dígitos de precisão.

Cálculo simbólico

Avalie  a expressão a/b-c/d; eleve o resultado anterior ao quadrado, expanda e simplifique.

Avalie a expressão Mathematica correspondente a sen(x)/cos(x).

Calcule a derivada (em ordem a x) da expressão log(x)+x.

Calcule a derivada (em ordem a x) da expressão f(x)/g(x). Simplifique.

Calcule a primitiva das expressões x^2+x, Cos(x), ArcTan(x)

Calcule o integral da função com expressão analítica x^2+x no intervalo [-2,2].

Gráficos

Desenhe o gráfico da função com expressão analítica 3x-1 no intervalo [-2,2]

Desenhe o gráfico da função com expressão analítica 5x^2-x+2 no intervalo [-10,20]

Obtenha informação sobre o comando Plot3D. Verifique essa informação no menú Help.

Desenhe os gráficos da função com expressão analítica cot(x^2*log(y)) nos intervalos [-1,1]×[1/10,2] e [-10,10]×[1/10,2]

Estudo de função

Considere a função real de variável real definida por f(t)=cos(t)sen(3t/2)/t.

Desenhe o gráfico de f no intervalo [-8π,8π].

Calcule os limites de f quando t tende para +∞ e -∞.

Verifique que os limites de f  à esquerda e à direita de do ponto 0 são ambos 3/2.

Calcule o valor da expressão da função derivada de f. Desenhe o gráfico da expressão no mesmo intervalo.

Gravação de resultados

Guarde o seu "Notebook" num ficheiro xpto.nb e abandone o Mathematica.

Reinicie o Mathematica e leia o "Notebook" que gravou anteriormente.

Abandone o Mathematica.

Solução de equações algébricas

Resolvas as equações (x^3)+x2+x+1=0, (x^3)+2x2+4x+3=0. Obtenha a fórmula resolvente para equações do tipo a(x^3)+bx2+cx+d=0 e para equações do tipo a(x^4)+b(x^3)+cx2+dx+e=0.

Embora não existam fórmulas resolventes para equações de grau superior a 4, é possível encontrar soluções para equações particulares.

Obtenha a fórmula resolvente para equações do tipo a(x^5)+b(x^4)+c(x^3)+dx2+ex+f=0. Resolva a equação (x^5)+2(x^2)+4=0.

Números complexos

Números complexos são representados recorrendo à constante I.

Calcule os seguintes números: (Sqrt[-1]), (2+3i)+2i, (5+2i).i, (5+2i).(2+3i).

Obtenha informação acerca das funções Re e Im. Calcule a parte real e a parte imaginária dos números complexos (Sqrt[-1]), (5+2i).i, (5+2i).(2+3i)

Obtenha informação acerca das funções Abs, Arg e Conjugate. Calcule o módulo, o argumento e o conjugado dos números complexos (Sqrt[-1]), (5+2i).(2+3i)

Expressões

A função FullForm devolve a representação interna (forma interna) de uma expressão

Obtenha informação àcerca da função FullForm.

Encontre a forma das expressões a+b e (a+b)^3*f[c]

Encontre a forma interna da expressão 2+3

Obtenha informação àcerca da função Head

Obtenha a cabeça das expressões anteriores

Obtenha informação àcerca da função AtomQ

Verifique se as expressões anteriores são atómicas

Expressões Booleanas

Escreva em Mathematica uma expressão Booleana que testa se "x é maior ou igual a 2 e y igual a 7". Avalie esta expressão. Teste essa expressão substituindo x por 3 e y por 7.

Atribuição

Atribua à variável x o valor 3.5 e à variável y o valor 8. Verifique os seus valores.

Calcule o logaritmo de x * y.

Obtenha informação sobre a variável x.

Obtenha informação sobre a variável z.

Apague o valor memorizado em x. Verifique que foi efectivamente apagado.

Apague completamente a variável x. Verifique que foi efectivamente apagada.

Atribua a True o valor 2.

Escrita de resultados

Apresente no Output a string "pi = " seguida do valor numérico de π.

Apresente no Output a string " a variável y tem o valor " valor de y " e a variável x tem o valor " valor de x ".".

Definição de funções por abstracção funcional

Defina uma função de nome f com parâmetros formais x e y e que retorna sen(x)*cos(y)/x^y.

Determine o valor que f retorna quando (i) x=π e y=0, (ii) x=2π/3 e y=π/4.

Desenhe o gráfico da função f no intervalo [1.0,2.0]*[1.0,2.0]

Defina uma função de nome g com parâmetros formais x e y e que retorna como resultado f(x,y)/(x*y)^6.

Apresente o seu gráfico no intervalo [π/2,3π/2]*[π,2π]

Arquivo em ficheiros

Verifique qual o directório em que está a trabalhar.

Crie no Windows um directório temporário. Mude o directório de trabalho do Mathematica para esse novo directório.

Arquive num ficheiro de nome "ex.txt" a variável y e a definição da função f.

Verifique dentro do Mathematica o conteudo desse ficheiro sem o carregar.

Apague completamente a função f. Confirme.

Recupere do ficheiro ex.txt essa função e calcule o valor de f para x=2π/3 e y=π/4.

Abra o Notepad do Windows. Defina uma função de nome h com parâmetro formal n e que retorna como resultado o quadrado do seu factorial. Grave esse ficheiro na sua área de trabalho com o nome teste.txt.

Verifique o conteúdo desse ficheiro sem o carregar no Mathematica.

Carregue o ficheiro no Mathematica.

Calcule o factorial de 5 recorrendo a função h.