MAP214 - Cálculo Numérico (2019)

Avisos

Gabaritos

Com o término do curso, os gabaritos parciais foram movidos para este diretório. O acesso está restrito à equipe da disciplina.

Aviso Final - 03/12/2019
  1. As notas finais de EP já estão disponíveis na aba Notas.
  2. Venham pegar os EPs 1-4 comigo na minha sala, até o dia 06/12!
    Após essa data os EPs serão arquivados pelo professor.

Plantão de Dúvidas

Local

Edifício Basílio Jafet, sala 232. Ramal: 3091-6657.

Subam as escadas do Basílio e sigam em frente, a minha sala fica no fim do corredor, ao lado da outra escada no outro extremo do prédio. Tem quadrinhos colados na porta, não tem como errar.

Horário

Segunda-feira das 13:00 às 14:00. Este horário é provisório e pode mudar caso vocês proponham outro melhor. Fora do horário de atendimento, vocês podem tentar tirar dúvidas por e-mail.

E-mail

crepaldi@if.usp.br

Sobre os EPs

  • Eles devem ser entregues impressos. A entrega pode ser feita na aula ou no meu escaninho (dentro do prédio Basílio Jafet, próximo a secretaria do DFAP).
  • Caso entreguem no meu escaninho fora do prazo, me avisem por e-mail.
  • Boas práticas de programação como o uso de comentários e identação é essencial para garantir uma boa nota (além de facilitar muito a correção).
  • Não esqueçam de incluir os gráficos pedidos nos EPs.
  • Caso se interessem, podem incluir os gráficos que considerarem relevantes, como o gráfico da evolução do erro por iteração (para uma análise de convergência do método).

Gráficos

Para alunos usando C, Fortran, Java, etc.

Uma boa opção para criação de gráficos é o Gnuplot. Além de open source e multiplataforma, é bem simples de usar.

O Gnuplot inclusive consegue ser chamado dentro do seu programa C ou Fortran. Essas linguagens tem uma função intrínsica que permite rodar comandos no terminal. Em Fortran, é só usar o comando a seguir para executar com o gnuplot o arquivo macro ‘macro.p’:

call system('gnuplot -p macro.p') ! Roda o comando 'gnuplot -p macro.p' no terminal

Em C esse mesmo comando seria:

#include <stdlib.h>
system("gnuplot -p macro.p"); // Roda o comando 'gnuplot -p macro.p' no terminal

Dentro desse arquivo de macro você pode colocar os comandos necessários para criar o gráfico. Para plotar uma função f(x) é só usar uma macro do tipo:

# Descomente as duas linhas abaixo para gerar uma figura png
# set terminal pngcairo enhanced font 'Verdana,10'
# set output 'grafico.png'
# --------------------
# Títulos e eixos
set title 'Meu titulo' font ',20' # sintaxe da fonte é: font 'Fonte,Tamanho'
set xlabel 'Eixo x' font ',20'
set ylabel 'Eixo y' font ',20'
# --------------------
# Plotando o Gráfico
set xrange [1:10]                 # Esses são os limites em x
set yrange [-10:10]               # Esse os em y
set grid                          # Comente essa linha para tirar o quadriculado
set key center top                # Controla a posição da legenda
A=42/10                           # Você pode definir variaveis e constantes na macro
plot A*sin(x) lc 'cyan' lw 2 title "Funcao 1", A*cos(x) lc 'magenta' lw 2 title "Funcao 2" 
                                  # onde lc é 'line color' e lw é 'line width'

Você também pode plotar a solução do seu programa. É só gravar os resultados relevantes num arquivo de saída (digamos saida.dat) e trocar o comando plot do exemplo acima por:

plot "saida.dat" with linespoints

Veja exemplos de gráficos científicos utilizando o Gnuplot aqui. Para ver mais sobre como gerar um gráfico no Gnuplot usando um arquivo de macro, clique aqui. Existe diversos outros exemplos mais completos na internet. Os comandos e/ou sintaxe devem mudar um pouco dependendo da versão do Gnuplot que estiver usando (4 ou 5).

Outra opção é usar o MATLAB (ou sua versão open source, o GNU Octave), disponível nos computadores da sala Pró-Aluno, o software Mathematica (disponibilizado para download gratuitamente para alunos USP), ou o velho conhecido de vocês, o WebROOT. Minha recomendação é tentar sair da zona de conforto (WebROOT) e aprender a mexer com as outras opções.

Para os alunos usando Python

A linguagem de vocês oferece ferramentas intrínsicas de criação de gráficos (como também é o caso das linguagens MATLAB e Mathematica). O mais prático pra vocês seria usar a biblioteca matplotlib:

import matplotlib.pyplot as plt