CURSO de NIVELAMENTO
Métodos Computacionais
Data:
10 a 12 de fevereiro de 2009
17 a 19 de fevereiro de 2009
e
PARTE I - INTRODUÇÃO À PROGRAMAÇÃO
Rogério Pagano (MatLab)
Eduardo Lemos (Maple e EMSO)
INTRODUÇÃO À PROGRAMAÇÃO

Lógica de Programação
 Lógica de programação é a técnica de encadear
pensamentos (instruções) para atingir determinado
objetivo.

Instruções
 Instruções são regras ou normas
definidas para a realização ou
emprego de algo. Em informática,
é o que indica a um computador
uma ação elementar a executar.
INTRODUÇÃO À PROGRAMAÇÃO

Algoritmo
[Do lat. med. algorismos, algorithmos, 'algarismo', por infl. do gr. arithmós, 'número'.]
 1.
Matemática. Processo de cálculo, ou de
resolução de um grupo de problemas semelhantes,
em que se estipulam, com generalidade e sem
restrições, regras formais para a obtenção do
resultado, ou da solução do problema.
 2. Informática. Conjunto de regras e operações
bem definidas e ordenadas, destinadas à solução de
um problema, ou de uma classe de problemas, em
um número finito de etapas.
[AURÉLIO]
INTRODUÇÃO À PROGRAMAÇÃO

Exemplos de Algoritmos
 instruções para se utilizar um aparelho eletrodoméstico;
 uma receita para preparo de algum prato;
 guia de preenchimento para declaração do imposto de renda;
 a regra para determinação de máximos e mínimos de funções por
derivadas sucessivas;
 a maneira como as contas de água, luz e telefone são calculadas
mensalmente; etc.
INTRODUÇÃO À PROGRAMAÇÃO

Características
Todo algoritmo deve apresentar algumas características básicas:
ter fim
não dar margem à dupla interpretação (não ambíguo)
capacidade de receber dado(s) de entrada
poder gerar informações de saída para o mundo externo ao
do ambiente do algoritmo
ser efetivo (todas as etapas especificadas no algoritmo devem
ser alcançáveis em um tempo finito)
INTRODUÇÃO À PROGRAMAÇÃO

Formas de Apresentação
DESCRIÇÃO NARRATIVA

EXEMPLO









Receita de Bolo:
Providencie manteiga, ovos, 2 Kg de massa, etc.
Misture os ingredientes
Despeje a mistura na fôrma de bolo
Leve a fôrma ao forno
Espere 20 minutos
Retire a fôrma do forno
Deixe esfriar
Prove
VANTAGENS:
o português é bastante conhecido por nós;
DESVANTAGENS:
imprecisão;
pouca confiabilidade (a imprecisão acarreta a desconfiança);
extensão (normalmente, escreve-se muito para dizer pouca coisa).
INTRODUÇÃO À PROGRAMAÇÃO
FLUXOGRAMA

EXEMPLO
VANTAGENS:
Uma das ferramentas mais conhecidas
Figuras dizem muito mais que palavras
Padrão mundial
DESVANTAGENS:
Pouca atenção aos dados, não oferecendo recursos para descrevê-los ou
representá-los, além disso, complica-se à medida que o algoritmo cresce.
INTRODUÇÃO À PROGRAMAÇÃO
LINGUAGEM ALGORITMICA

EXEMPLO
VANTAGENS:
Usa o português como base
Pode-se definir quais e como os dados vão estar estruturados
Passagem quase imediata do algoritmo para uma linguagem de programação
qualquer
DESVANTAGENS:
Exige a definição de uma linguagem não real para trabalho
Não padronizado
INTRODUÇÃO À PROGRAMAÇÃO
PSEUDOCÓDIGO

EXEMPLO
TESTE DE MESA

EXEMPLO
X=5
Y=9
SOMA = 5 + 9
ESCREVA SOMA = 14
INTRODUÇÃO À PROGRAMAÇÃO
ALGORITMOS

EXEMPLOS
INTRODUÇÃO À PROGRAMAÇÃO
OPERADORES
Os operadores são meios pelo avaliamos dados dentro do computador.
Operadores Aritméticos
Operadores Relacionais
Operadores Lógicos
INTRODUÇÃO À PROGRAMAÇÃO
Operadores Aritméticos
Os operadores aritméticos são os utilizados para obter resultados
numéricos. Além da adição, subtração, multiplicação e divisão, podem
utilizar também o operador para exponenciação.
INTRODUÇÃO À PROGRAMAÇÃO
Operadores Relacionais
Os operadores relacionais são utilizados para comparar String de
caracteres e números. Os valores a serem comparados podem ser caracteres
ou variáveis. Estes operadores sempre retornam valores lógicos (verdadeiro ou
falso/ True ou False)
INTRODUÇÃO À PROGRAMAÇÃO
INTRODUÇÃO À PROGRAMAÇÃO
Operadores Lógicos
Os operadores lógicos servem para combinar resultados de
expressões, retornando se o resultado final é verdadeiro ou falso.
INTRODUÇÃO À PROGRAMAÇÃO
A tabela abaixo mostra todos os valores possíveis criados pelos
três operadores lógicos (AND, OR e NOT)
Exemplo: Suponha que temos três variáveis A = 5, B = 8 e C =1
INTRODUÇÃO À PROGRAMAÇÃO

Estruturas de Decisão e Repetição
SE ... ENTÃO / IF ... THEN
Estrutura Condicional Simples

Exemplo:
Atribui 4 a variavel A
..
A > B ???
Atribui 3 a variavel B
A = 4
Condição
B = 3
Como a resposta é verdadeira :
4é>3
SE (A > B)
ENTÃO (THEN)
ENTÃO
ESCREVA ‘A > B’
FIM SE
Executa comando de
escrita
18
INTRODUÇÃO À PROGRAMAÇÃO

Estruturas de Decisão e Repetição
SE ... ENTÃO ... SENÃO/ IF ... THEN ... ELSE
Estrutura Condicional Composta

Exemplo:
Atribui 4 a variavel A
..
A > B ???
Atribui 5 a variavel B
Condição
A = 4
B = 5
SE (A > B)
Como a resposta não é
ENTÃO
verdadeira : 4 não é > 5
de
ESCREVA ‘A > Executamos
B’ Executao comando
caso contrário
escrita
(ELSE)
SENÃO
ESCREVA ‘B > A’
FIM SE
20
INTRODUÇÃO À PROGRAMAÇÃO
SE ... ENTÃO ... SENÃO/ IF ... THEN ... ELSE
INTRODUÇÃO À PROGRAMAÇÃO

Estruturas de Decisão e Repetição
ENQUANTO ... PROCESSAR / DO WHILE ... LOOP
Estrutura de Repetição Simples
Exemplos:
.....
i > 10 ???
Enquanto
compradas!!!!
i < 10
n
= 10
%Número de peças
preço = 5
%Preço de cada peça
ENQUANTO i < n
TOTAL
Condição
= TOTAL + preço
50 > 40???
i = i+1
Executa se verdade
FIM ENQUANTO
SE (TOTAL >= 40)
Executa Caso
ENTÃO
contrário
ESCREVA ‘NÃO TENHO COMO PAGAR!!!!’
SENÃO
ESCREVA ‘ACHO QUE DÁ!’
FIM SE
23
INTRODUÇÃO À PROGRAMAÇÃO

Estruturas de Decisão e Repetição
PARA ... ATÉ ... PROCESSAR / DO ... UNTIL ... LOOP
Estrutura de Repetição Simples
Exemplos: i > 10 ???
.....
Para i < 10
n
= 10
%Número de peças compradas!!!!
preço = 5
%Preço de cada peça
PARA i = 1 até n
TOTAL = TOTAL + preço
50 > 40???
i = i +1
Condição
Executa se verdade
FIM PARA
SE (TOTAL >= 40)
Executa Caso contrário
ENTÃO
ESCREVA ‘NÃO TENHO COMO PAGAR!!!!’
SENÃO
ESCREVA ‘ACHO QUE DÁ!’
FIM SE
25
início
Leia altura
Leia sexo
Se sexo=M
P = 72.7*altura - 58
P = 62.1*altura – 44.7
Escreva P
fim
início
Leia idade
Se id<5
Sem classificação
Se id<=7
Infantil A
Se id<=11
Infantil B
Se id<=18
Adulto
fim
CURSO de NIVELAMENTO
Métodos Computacionais
PARTE II - INTRODUÇÃO AO MATLAB
Rogério Pagano (MatLab)
MATLAB

O Matlab é um software destinado a fazer
cálculos com matrizes (Matlab = MATrix
LABoratory).
OBJETIVO
Introduzir comandos básicos do MATLAB para permitir
um rápido acesso às potencialidades do ambiente. O
utilizador iniciante poderá dispor de uma referência
rápida para algumas possibilidades de uso do MATLAB.
MATLAB
MATLAB

O MatLab é case sensitive
(a≠ A)

Comandos Básicos
Inserir dados (variáveis, vetores, matrizes)
Manipulação de vetores e matrizes
clear variable; clear all;
Comando lookfor:
lookfor [-all] inverse
MATLAB

Exercício 1 Gere uma sequência de números pares com início em 4 e a terminar
no número 100.

Exercício 2 Gere uma sequência numérica decrescente com início em 5 e a
terminar em -5.

Exercício 3 Gere uma sequência numérica com 100 elementos pertencentes ao
intervalo [0 . . . 1].

Exercício 4 Considere uma matriz A com 20 linhas e 30 colunas. Construa um
comando que permita extrair para uma matriz B uma sub-matriz de A constituída
pelas linhas de 10 a 15 e as colunas de 9 a 12.

Exercício 5 Gere uma sequência de números múltiplos de 3 compreendidos entre
100 e 132, dispostos num vector por ordem decrescente.

Exercício 6 Gere uma sequência a começar em π e a acabar em −π com um passo
de −π/15.
MATLAB

Comandos Básicos (matrizes especiais)
eye(n) = matriz identidade de dimensão n
ones(n) = matriz somente com elementos iguais a unidade
inv(A) = inversa da matriz A
diag(u) = constrói uma matriz diagonal com o vetor u
A’
= retorna a transposta de A
zeros(n) = constrói uma matriz de dimensão n com zeros
rand(n) = fornece uma matriz aleatória de dimensão n
zeros(n) = constrói uma matriz de dimensão n com zeros
MATLAB

Números e matrizes associadas a A
det(A) é o determinante (se A for uma matriz quadrada)
[S,E] = eig(A) fornece uma matriz diagonal E de valores característicos
e uma matriz S de vetores característicos
rank(A) é o posto (número de pivôs = dimensão do espaço da linha e
do espaço da coluna)
size(A) é o par de números [m n]
trace(A) é o traço = soma das entradas diagonais = soma dos valores
característicos
MATLAB

Polinômios
f(x) = x2 – 3x + 2
p = [1 -3 2];
r = roots(p)
raízes do polinômio
q = poly(r)
calcula coeficientes com as raízes
polyval(p,r)
calcula o valor de r num polinômio de coef p
MATLAB

Outras funções (Polinômios)

polyvalm - avalia o polinômio com o argumento sendo uma matriz
conv - multiplicação
deconv - divisão
residue - expansão em frações parciais
polyder - derivada do polinômio

polyfit - ajuste do polinômio

Exercício 10 Calcule o valor da função sin(x+pi/10) ∗ cos(x) em 100 pontos do intervalo
[−π . . . π].

Exercício 11 Calcule o produto dos polinómios x6 + 10 e x2 − 2x + 3.

Exercício 12 Obtenha o polinômio cujas raízes são os números inteiros 1, 2 e 3.




MATLAB

Formato numérico
format short
format short e
format long
format long e
format hex

Operadores
MATLAB
lógicos
aritiméticos
elemento a elemento
MATLAB

Funções intrínsecas
MATLAB
Otimização
EDO
MATLAB
Gráficos
t = 0:pi/100:2*pi;
x = sin(t);
plot(t,x)
t = 0:pi/100:2*pi;
x1 = sin(t);
x2 = sin(t+pi/2);
x3 = x1.*x2;
plot(t,x1,t,x2,t,x3)
legend(‘sin’,’cos’,’asin*cos’)
fplot(‘sin(x)’,[ -pi, pi])
fplot(‘x^2+3’, [ -1, 2])
fplot(‘sin(x)’,[ -0, pi])
MATLAB
Gráficos
t = linspace(0,10*pi,1001);
x = t + 3*sin(2*t);
y = t + 5*cos(5*t);
figure(1)
plot(x,y)
t = linspace(0,5*pi,5001);
x = cos(t) - cos(80*t).*sin(t);
y = 2*sin(t) - sin(80*t);
figure(2)
plot(x,y)
Lembrar as funções
hold on
e hold off
MATLAB
Gráficos
Outros tipos:
MATLAB
Outros tipos:
MATLAB
Gráficos
X = 0:0.05:1;
subplot(121), plot(X,X.^2,’k*’)
subplot(122), plot(X,X.^2,’b --‘)
MATLAB
Gráficos 3D
mesh
[X,Y] = meshgrid(-8:.5:8);
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;
mesh(X,Y,Z)
MATLAB
Outros tipos de Gráficos 3D:
Download

CURSO de NIVELAMENTO - Programa de Engenharia Química