Upload
others
View
5
Download
0
Embed Size (px)
Citation preview
Computacao Cientıfica com MATLAB
Melissa Weber [email protected]
Conteudo
I Algoritmos: conceito; tipos de dados; scripts.
I Modo interativo do MATLAB: familiarizacao com o software;comandos de entrada e saıda; comandos de atribuicao;manipulacao de variaveis; funcoes basicas; leitura e escrita emarquivos.
I Processos de repeticao e condicionais: o comando for e ocomando if no MATLAB.
I Variaveis indexadas: vetores; matrizes.
I Modularizacao: funcoes; subprogramas.
I Graficos: producao de graficos atraves de dados existentes emduas e tres dimensoes.
I Aplicacoes: resolucao de problemas contextualizadosutilizando o software MATLAB.
Por que estudar programacao?
Objetivo
Entender um problema e formular sua solucao usando ferramentascomputacionais.
Ferramenta
Linguagem de programacao MATLAB.
Como funciona o computador?
O computador e uma maquina programavel que recebe umaentrada (input), armazena e manipula automaticamente dados, egera uma saıda (output).
Um computador executa funcoes com entrada e saıda:
ENTRADA ACAO SAIDA
Primeiros ”computadores”
Em 1613, a palavra ”computador”aparece pela primeira vez,designando uma pessoa que realizasse calculos.Os computadores antigos nao eram maquinas programaveis, masserviam a uma funcao especıfica.Exemplos: abaco, regua de calculo, astrolabio, calculadora.
Computadores programaveis de uso limitado
Em 1801, Joseph Marie Jacquard introduziu o uso de cartoesperfurados para programar um tear e produzir padroes intrincadosde tecido automaticamente.
Computadores programaveis de uso geral
Em 1837, Charles Babbage imaginou o conceito de umcomputador mecanico totalmente programavel (a maquinaanalıtica) - mas nao chegou a construi-la.
Computadores programaveis de uso geral
Ada Augusta Byron King, Condessa de Lovelace, filha do poetabritanico Lord Byron, e reconhecida como a primeira programadorade toda a historia. Ela desenvolveu os algoritmos que permitiriama maquina de Babbage computar valores de funcoes matematicas,alem de publicar uma colecao de notas sobre a maquina analıtica.
Estrutura de um computador moderno
Dispositivosde Entrada
(input)
UnidadeCentral de
Processamento
Memorias ouDispositivos de
Armazenamento
Dispositivosde Saıda(output)
O que e um algoritmo?
Um algoritmo e uma sequencia finita de passos que tem comoobjetivo realizar alguma tarefa.
Exemplo: receita de bolo.
I Entrada: ingredientes, utensılios usados.
I Acao: bater, misturar, picar, assar.
I Saıda: bolo.
Exemplo: Como ferver agua (no fogao)?
Dada uma cozinha
Exemplo: Como ferver agua (no fogao)?
Dada uma cozinha, com uma pia com torneira e agua corrente
Exemplo: Como ferver agua (no fogao)?
Dada uma cozinha, com uma pia com torneira e agua corrente, umfogao com pelo menos uma boca
Exemplo: Como ferver agua (no fogao)?
Dada uma cozinha, com uma pia com torneira e agua corrente, umfogao com pelo menos uma boca, e uma chaleira ou panela
Exemplo: Como ferver agua (no fogao)?
Dada uma cozinha, com uma pia com torneira e agua corrente, umfogao com pelo menos uma boca, e uma chaleira ou panela, faca oseguinte:
I
Exemplo: Como ferver agua (no fogao)?
Dada uma cozinha, com uma pia com torneira e agua corrente, umfogao com pelo menos uma boca, e uma chaleira ou panela, faca oseguinte:
I Se encontrar uma chaleira, entao use esta chaleira.Senao, use uma panela.
Exemplo: Como ferver agua (no fogao)?
Dada uma cozinha, com uma pia com torneira e agua corrente, umfogao com pelo menos uma boca, e uma chaleira ou panela, faca oseguinte:
I Se encontrar uma chaleira, entao use esta chaleira.Senao, use uma panela.
I Levar a chaleira ou panela ate a pia.
Exemplo: Como ferver agua (no fogao)?
Dada uma cozinha, com uma pia com torneira e agua corrente, umfogao com pelo menos uma boca, e uma chaleira ou panela, faca oseguinte:
I Se encontrar uma chaleira, entao use esta chaleira.Senao, use uma panela.
I Levar a chaleira ou panela ate a pia.
I Encher a chaleira ou panela de agua.
Exemplo: Como ferver agua (no fogao)?
Dada uma cozinha, com uma pia com torneira e agua corrente, umfogao com pelo menos uma boca, e uma chaleira ou panela, faca oseguinte:
I Se encontrar uma chaleira, entao use esta chaleira.Senao, use uma panela.
I Levar a chaleira ou panela ate a pia.
I Encher a chaleira ou panela de agua.
I Acender uma das bocas do fogao.
Exemplo: Como ferver agua (no fogao)?
Dada uma cozinha, com uma pia com torneira e agua corrente, umfogao com pelo menos uma boca, e uma chaleira ou panela, faca oseguinte:
I Se encontrar uma chaleira, entao use esta chaleira.Senao, use uma panela.
I Levar a chaleira ou panela ate a pia.
I Encher a chaleira ou panela de agua.
I Acender uma das bocas do fogao.
I Colocar a chaleira ou panela sobre a boca acesa do fogao.
Exemplo: Como ferver agua (no fogao)?
Dada uma cozinha, com uma pia com torneira e agua corrente, umfogao com pelo menos uma boca, e uma chaleira ou panela, faca oseguinte:
I Se encontrar uma chaleira, entao use esta chaleira.Senao, use uma panela.
I Levar a chaleira ou panela ate a pia.
I Encher a chaleira ou panela de agua.
I Acender uma das bocas do fogao.
I Colocar a chaleira ou panela sobre a boca acesa do fogao.
I Enquanto a agua nao estiver borbulhando,continue aguardando.
Exemplo: Como ferver agua (no fogao)?
Dada uma cozinha, com uma pia com torneira e agua corrente, umfogao com pelo menos uma boca, e uma chaleira ou panela, faca oseguinte:
I Se encontrar uma chaleira, entao use esta chaleira.Senao, use uma panela.
I Levar a chaleira ou panela ate a pia.
I Encher a chaleira ou panela de agua.
I Acender uma das bocas do fogao.
I Colocar a chaleira ou panela sobre a boca acesa do fogao.
I Enquanto a agua nao estiver borbulhando,continue aguardando.
I Desligue a boca acesa do fogao.
Exemplo: Como ferver agua (no fogao)?
Dada uma cozinha, com uma pia com torneira e agua corrente, umfogao com pelo menos uma boca, e uma chaleira ou panela, faca oseguinte:
I Se encontrar uma chaleira, entao use esta chaleira.Senao, use uma panela.
I Levar a chaleira ou panela ate a pia.
I Encher a chaleira ou panela de agua.
I Acender uma das bocas do fogao.
I Colocar a chaleira ou panela sobre a boca acesa do fogao.
I Enquanto a agua nao estiver borbulhando,continue aguardando.
I Desligue a boca acesa do fogao.
A agua esta fervida dentro da chaleira ou panela.
Exemplo: Como ferver agua (no fogao)?
ENTRADA: cozinha, pia, torneira, agua corrente, fogao com pelomenos uma boca, chaleira ou panela.ACAO:
I Se encontrar uma chaleira, entao pegue esta chaleira comorecipiente.Senao, pegue uma panela como recipiente.
I Levar o recipiente ate a pia.
I Encher o recipiente de agua.
I Acender uma das bocas do fogao.
I Colocar o recipiente sobre a boca acesa do fogao.
I Enquanto a agua nao estiver borbulhando,continue aguardando.
I Desligue a boca acesa do fogao.
SAIDA: recipiente com agua fervida.
Exemplo: Como ferver agua (no fogao)?
ENTRADA: cozinha, pia, torneira, agua corrente, fogao com pelomenos uma boca, chaleira ou panela.ACAO:
I Se encontrar uma chaleira, entao pegue esta chaleira comorecipiente.Senao, pegue uma panela como recipiente.
I Levar o recipiente ate a pia.
I Encher o recipiente de agua.
I Acender uma das bocas do fogao.
I Colocar o recipiente sobre a boca acesa do fogao.
I Enquanto a agua nao estiver borbulhando,continue aguardando.
I Desligue a boca acesa do fogao.
SAIDA: recipiente com agua fervida.
Exemplo: Como ferver agua (no fogao)?
ENTRADA: cozinha, pia, torneira, agua corrente, fogao com pelomenos uma boca, chaleira ou panela.ACAO:
I Se encontrar uma chaleira, entao pegue esta chaleira comorecipiente.Senao, pegue uma panela como recipiente.
I Levar o recipiente ate a pia.
I Encher o recipiente de agua.
I Acender uma das bocas do fogao.
I Colocar o recipiente sobre a boca acesa do fogao.
I Enquanto a agua nao estiver borbulhando,continue aguardando.
I Desligue a boca acesa do fogao.
SAIDA: recipiente com agua fervida.
Exemplo: Como ferver agua (no fogao)?
ENTRADA: cozinha, pia, torneira, agua corrente, fogao com pelomenos uma boca, chaleira ou panela.ACAO:
I Se existe chaleira, entao recipiente chaleira.Senao, recipiente panela.
I Levar o recipiente ate a pia.
I Encher o recipiente de agua.
I Acender uma das bocas do fogao.
I Colocar o recipiente sobre a boca acesa do fogao.
I Enquanto a agua nao estiver borbulhando,continue aguardando.
I Desligue a boca acesa do fogao.
SAIDA: recipiente com agua fervida.
Exemplo: Como ferver agua (no fogao)?
ENTRADA: cozinha, pia, torneira, agua corrente, fogao com pelomenos uma boca, chaleira ou panela.ACAO:
I Se existe chaleira, entao recipiente chaleira.Senao, recipiente panela.
I Levar o recipiente ate a pia.
I Encher o recipiente de agua.
I Acender uma das bocas do fogao.
I Colocar o recipiente sobre a boca acesa do fogao.
I Enquanto a agua nao estiver borbulhando,continue aguardando.
I Desligue a boca acesa do fogao.
SAIDA: recipiente com agua fervida.
O que e uma linguagem de programacao?
Uma linguagem de programacao traduz um algoritmo (sequenciade instrucoes) da linguagem humana para a linguagem da maquina(”0 e 1”).Existem milhares de linguagens de programacao.
Modulo: Exemplo em Pseudo-codigo
Dado um numero a
Se a > 0, ent~ao
modulo = a
Sen~ao
modulo = -a
Fim Se
Exemplo em Python
def modulo(a):
if a > 0:
modulo = a
else:
modulo =-a
Exemplo em C
double modulo(double a)
{
if (a > 0)
modulo =a;
else
modulo =-a;
}
Exemplo em Fortran
SUBROUTINE MODULO(A)
REAL MODULO
IF(A .GT. 0)THEN
MODULO=A
ELSE
MODULO=-A
ENDIF
END SUBROUTINE MODULO
O que e o MATLAB?
Linguagem computacional de alto nıvel e um ambiente interativopara computacao numerica, visualizacao e programacao.
Exemplo de codigo em MATLAB
function[abs] = modulo(a)
if a > 0
modulo = a
else
modulo = -a
end
Console: Modo Interativo
ConsoleEspaco detrabalho
Arquivos
Historico
Diretorio Atual
Scripts
Os comandos podem ser entrados diretamente no console doMATLAB, ou escritos, em sequencia, dentro de um arquivo comextensao .m chamado script.
Sequencias de trabalho possıveis:
1. Escrever os comandos no console em sequencia, obtendo asrespostas a cada comando.
2. Usando um script:
a) Escrever os comandos em um arquivo no seu editor de textopreferido (Notepad) e salvar esse arquivo com extensao .m;
b) Ir ate a janela do console do MATLAB;c) Digitar o nome do arquivo em que voce digitou os comandos
sem o .m.
Comandos Basicos
I Operacoes Aritmeticas: +, -, *, /, ^
I Funcoes matematicas: sin(pi), abs(-3)
I date
I clear ou clc
I help
Comandos Basicos
I Operacoes Aritmeticas: +, -, *, /, ^
I Funcoes matematicas: sin(pi), abs(-3)
I date
I clear ou clc
I help
Comandos Basicos
I Operacoes Aritmeticas: +, -, *, /, ^
I Funcoes matematicas: sin(pi), abs(-3)
I date
I clear ou clc
I help
Comandos Basicos
I Operacoes Aritmeticas: +, -, *, /, ^
I Funcoes matematicas: sin(pi), abs(-3)
I date
I clear ou clc
I help
Comandos Basicos
I Operacoes Aritmeticas: +, -, *, /, ^
I Funcoes matematicas: sin(pi), abs(-3)
I date
I clear ou clc
I help
Variaveis
Para atribuir um valor a uma variavel no MATLAB, bastadigitarmos
>> variavel = valor
(nao e preciso declarar variaveis no MATLAB).
Tipos de Variavel
I Numeros Reais:>> a=4.5
>> pi
>> 1e-2
Tipos de Variavel
I Listas de caracteres (strings):
>> texto = ’Um texto qualquer.’
Tipos de Variavel
I Listas de numeros reais indexadas (vetores):
>> v = [1,2,3,4]
>> u = [1;2;3;4]
Tipos de Variavel
I Listas de numeros reais duplamente indexadas (matrizes):
>> A = [1 2; 3 4]
Vetores
>> v = [1 3 5]
>> w = [7;9;11]
>> v’
>> v(2)
ans =
3
>> length(v)
>> size(v)
>> size(v,1)
>> size(v,2)
Vetores
>> v = [1 3 5]
>> w = [7;9;11]
>> v’
>> v(2)
ans =
3
>> length(v)
>> size(v)
>> size(v,1)
>> size(v,2)
Vetores
>> v = [1 3 5]
>> w = [7;9;11]
>> v’
>> v(2)
ans =
3
>> length(v)
>> size(v)
>> size(v,1)
>> size(v,2)
Vetores
>> v = [1 3 5]
>> w = [7;9;11]
>> v’
>> v(2)
ans =
3
>> length(v)
>> size(v)
>> size(v,1)
>> size(v,2)
Vetores
>> v = [1 3 5]
>> w = [7;9;11]
>> v’
>> v(2)
ans =
3
>> length(v)
>> size(v)
>> size(v,1)
>> size(v,2)
Vetores
>> v = [1 3 5]
>> w = [7;9;11]
>> v’
>> v(2)
ans =
3
>> length(v)
>> size(v)
>> size(v,1)
>> size(v,2)
Vetores
>> v = [1 3 5]
>> w = [7;9;11]
>> v’
>> v(2)
ans =
3
>> length(v)
>> size(v)
>> size(v,1)
>> size(v,2)
Vetores
>> v = [1 3 5]
>> w = [7;9;11]
>> v’
>> v(2)
ans =
3
>> length(v)
>> size(v)
>> size(v,1)
>> size(v,2)
Operacoes basicas
Lembre-se de respeitar as dimensoes!
>> v+w-z
>> 2*v
>> a*w
>> v/w
>> v^2
>> v.*w
>> v./w
>> v.^2
Matrizes
>> A = [1 2 3;4 5 6]
A =
1 2 3
4 5 6
>> A(2,1)
ans =
4
>> A(3)
>> A’
>> length(A)
>> size(A)
>> size(A,1)
>> size(A,2)
Matrizes
>> A = [1 2 3;4 5 6]
A =
1 2 3
4 5 6
>> A(2,1)
ans =
4
>> A(3)
>> A’
>> length(A)
>> size(A)
>> size(A,1)
>> size(A,2)
Matrizes
>> A = [1 2 3;4 5 6]
A =
1 2 3
4 5 6
>> A(2,1)
ans =
4
>> A(3)
>> A’
>> length(A)
>> size(A)
>> size(A,1)
>> size(A,2)
Matrizes
>> A = [1 2 3;4 5 6]
A =
1 2 3
4 5 6
>> A(2,1)
ans =
4
>> A(3)
>> A’
>> length(A)
>> size(A)
>> size(A,1)
>> size(A,2)
Matrizes
>> A = [1 2 3;4 5 6]
A =
1 2 3
4 5 6
>> A(2,1)
ans =
4
>> A(3)
>> A’
>> length(A)
>> size(A)
>> size(A,1)
>> size(A,2)
Matrizes
>> A = [1 2 3;4 5 6]
A =
1 2 3
4 5 6
>> A(2,1)
ans =
4
>> A(3)
>> A’
>> length(A)
>> size(A)
>> size(A,1)
>> size(A,2)
Matrizes
>> A = [1 2 3;4 5 6]
A =
1 2 3
4 5 6
>> A(2,1)
ans =
4
>> A(3)
>> A’
>> length(A)
>> size(A)
>> size(A,1)
>> size(A,2)
Matrizes
>> A = [1 2 3;4 5 6]
A =
1 2 3
4 5 6
>> A(2,1)
ans =
4
>> A(3)
>> A’
>> length(A)
>> size(A)
>> size(A,1)
>> size(A,2)
Operacoes com Matrizes
>> A = [1 2;3 4]
>> B = [2 1;0 3]
>> A+B
>> A-B
>> A*B
>> 2*A
>> B/3
>> A’
>> A.*B
>> A./B
>> A/B
Funcoes basicas
>> eye(n)
>> zeros(m,n)
>> ones(m,n)
>> inv(A)
Dica!
Para que o resultado nao seja mostrado ao final daoperacao, use ; ao final do comando.
Exemplo:
>> sin(pi)
>> sin(pi);
Comentarios
Em um script, podemos comentar nosso codigo, usando o sımbolo%:
a = 1;
% Agora, a variavel a tem valor 1.
Lacos de repeticao
Quando e necessario repetir certo comando de codigo varias vezes,usamos a estrutura for:
for i = 1:3
i
end
For
Escreva um algoritmo que imprima todos os pares de 1 a 100.
for i = 1:50
2*i
end
Entrada do usuario
Se quisermos que o usuario entre com um valor de variavel,podemos usar o comando input:
>> variavel = input(’Entre com o valor da variavel: ’)
Usuario
Escreva um algoritmo que imprima todos os numeros de 1 a n,onde n e dado pelo usuario.
n = input(’Entre com o numero n: ’);
for i = 1:n
i
end
Lacos de repeticao (2)
Quando e necessario repetir certo comando de codigo varias vezesate que uma certa condicao seja satisfeita, usamos a estruturawhile:
i = 1;
while i < 3
disp(’Mais um.’)
i = i + 1;
end
Dica: texto por ındices
Um texto funciona como uma lista (vetor):>> texto = ’Palavra’
>> texto(1) = ’P’
>> texto(2) = ’a’
>> texto(1:2) = ’Pa’
>> length(texto)
>> size(texto)