Você está na página 1de 74

Computação Cientı́fica com MATLAB

Melissa Weber Mendonça


melissa.mendonca@ufsc.br
Conteúdo

I Algoritmos: conceito; tipos de dados; scripts.


I Modo interativo do MATLAB: familiarização com o software;
comandos de entrada e saı́da; comandos de atribuição;
manipulação de variáveis; funções básicas; leitura e escrita em
arquivos.
I Processos de repetição e condicionais: o comando for e o
comando if no MATLAB.
I Variáveis indexadas: vetores; matrizes.
I Modularização: funções; subprogramas.
I Gráficos: produção de gráficos através de dados existentes em
duas e três dimensões.
I Aplicações: resolução de problemas contextualizados
utilizando o software MATLAB.
Por que estudar programação?

Objetivo
Entender um problema e formular sua solução usando ferramentas
computacionais.

Ferramenta
Linguagem de programação MATLAB.
Como funciona o computador?

O computador é uma máquina programável que recebe uma


entrada (input), armazena e manipula automaticamente dados, e
gera uma saı́da (output).

Um computador executa funções com entrada e saı́da:

ENTRADA AÇÃO SAÍDA


Primeiros ”computadores”

Em 1613, a palavra ”computador”aparece pela primeira vez,


designando uma pessoa que realizasse cálculos.
Os computadores antigos não eram máquinas programáveis, mas
serviam a uma função especı́fica.
Exemplos: ábaco, régua de cálculo, astrolábio, calculadora.
Computadores programáveis de uso limitado

Em 1801, Joseph Marie Jacquard introduziu o uso de cartões


perfurados para programar um tear e produzir padrões intrincados
de tecido automaticamente.
Computadores programáveis de uso geral

Em 1837, Charles Babbage imaginou o conceito de um


computador mecânico totalmente programável (a máquina
analı́tica) - mas não chegou a construi-la.
Computadores programáveis de uso geral
Ada Augusta Byron King, Condessa de Lovelace, filha do poeta
britânico Lord Byron, é reconhecida como a primeira programadora
de toda a história. Ela desenvolveu os algoritmos que permitiriam
à máquina de Babbage computar valores de funções matemáticas,
além de publicar uma coleção de notas sobre a máquina analı́tica.
Estrutura de um computador moderno

Unidade
Central de
Dispositivos Processamento Dispositivos
de Entrada de Saı́da
(input) Memórias ou (output)
Dispositivos de
Armazenamento
O que é um algoritmo?

Um algoritmo é uma sequência finita de passos que tem como


objetivo realizar alguma tarefa.

Exemplo: receita de bolo.


I Entrada: ingredientes, utensı́lios usados.
I Ação: bater, misturar, picar, assar.
I Saı́da: bolo.
Exemplo: Como ferver água (no fogão)?

Dada uma cozinha


Exemplo: Como ferver água (no fogão)?

Dada uma cozinha, com uma pia com torneira e água corrente
Exemplo: Como ferver água (no fogão)?

Dada uma cozinha, com uma pia com torneira e água corrente, um
fogão com pelo menos uma boca
Exemplo: Como ferver água (no fogão)?

Dada uma cozinha, com uma pia com torneira e água corrente, um
fogão com pelo menos uma boca, e uma chaleira ou panela
Exemplo: Como ferver água (no fogão)?

Dada uma cozinha, com uma pia com torneira e água corrente, um
fogão com pelo menos uma boca, e uma chaleira ou panela, faça o
seguinte:
I
Exemplo: Como ferver água (no fogão)?

Dada uma cozinha, com uma pia com torneira e água corrente, um
fogão com pelo menos uma boca, e uma chaleira ou panela, faça o
seguinte:
I Se encontrar uma chaleira, então use esta chaleira.
Senão, use uma panela.
Exemplo: Como ferver água (no fogão)?

Dada uma cozinha, com uma pia com torneira e água corrente, um
fogão com pelo menos uma boca, e uma chaleira ou panela, faça o
seguinte:
I Se encontrar uma chaleira, então use esta chaleira.
Senão, use uma panela.
I Levar a chaleira ou panela até a pia.
Exemplo: Como ferver água (no fogão)?

Dada uma cozinha, com uma pia com torneira e água corrente, um
fogão com pelo menos uma boca, e uma chaleira ou panela, faça o
seguinte:
I Se encontrar uma chaleira, então use esta chaleira.
Senão, use uma panela.
I Levar a chaleira ou panela até a pia.
I Encher a chaleira ou panela de água.
Exemplo: Como ferver água (no fogão)?

Dada uma cozinha, com uma pia com torneira e água corrente, um
fogão com pelo menos uma boca, e uma chaleira ou panela, faça o
seguinte:
I Se encontrar uma chaleira, então use esta chaleira.
Senão, use uma panela.
I Levar a chaleira ou panela até a pia.
I Encher a chaleira ou panela de água.
I Acender uma das bocas do fogão.
Exemplo: Como ferver água (no fogão)?

Dada uma cozinha, com uma pia com torneira e água corrente, um
fogão com pelo menos uma boca, e uma chaleira ou panela, faça o
seguinte:
I Se encontrar uma chaleira, então use esta chaleira.
Senão, use uma panela.
I Levar a chaleira ou panela até a pia.
I Encher a chaleira ou panela de água.
I Acender uma das bocas do fogão.
I Colocar a chaleira ou panela sobre a boca acesa do fogão.
Exemplo: Como ferver água (no fogão)?

Dada uma cozinha, com uma pia com torneira e água corrente, um
fogão com pelo menos uma boca, e uma chaleira ou panela, faça o
seguinte:
I Se encontrar uma chaleira, então use esta chaleira.
Senão, use uma panela.
I Levar a chaleira ou panela até a pia.
I Encher a chaleira ou panela de água.
I Acender uma das bocas do fogão.
I Colocar a chaleira ou panela sobre a boca acesa do fogão.
I Enquanto a água não estiver borbulhando,
continue aguardando.
Exemplo: Como ferver água (no fogão)?

Dada uma cozinha, com uma pia com torneira e água corrente, um
fogão com pelo menos uma boca, e uma chaleira ou panela, faça o
seguinte:
I Se encontrar uma chaleira, então use esta chaleira.
Senão, use uma panela.
I Levar a chaleira ou panela até a pia.
I Encher a chaleira ou panela de água.
I Acender uma das bocas do fogão.
I Colocar a chaleira ou panela sobre a boca acesa do fogão.
I Enquanto a água não estiver borbulhando,
continue aguardando.
I Desligue a boca acesa do fogão.
Exemplo: Como ferver água (no fogão)?

Dada uma cozinha, com uma pia com torneira e água corrente, um
fogão com pelo menos uma boca, e uma chaleira ou panela, faça o
seguinte:
I Se encontrar uma chaleira, então use esta chaleira.
Senão, use uma panela.
I Levar a chaleira ou panela até a pia.
I Encher a chaleira ou panela de água.
I Acender uma das bocas do fogão.
I Colocar a chaleira ou panela sobre a boca acesa do fogão.
I Enquanto a água não estiver borbulhando,
continue aguardando.
I Desligue a boca acesa do fogão.
A água está fervida dentro da chaleira ou panela.
Exemplo: Como ferver água (no fogão)?
ENTRADA: cozinha, pia, torneira, água corrente, fogão com pelo
menos uma boca, chaleira ou panela.
AÇÃO:
I Se encontrar uma chaleira, então pegue esta chaleira como
recipiente.
Senão, pegue uma panela como recipiente.
I Levar o recipiente até a pia.
I Encher o recipiente de água.
I Acender uma das bocas do fogão.
I Colocar o recipiente sobre a boca acesa do fogão.
I Enquanto a água não estiver borbulhando,
continue aguardando.
I Desligue a boca acesa do fogão.
SAÍDA: recipiente com água fervida.
Exemplo: Como ferver água (no fogão)?
ENTRADA: cozinha, pia, torneira, água corrente, fogão com pelo
menos uma boca, chaleira ou panela.
AÇÃO:
I Se encontrar uma chaleira, então pegue esta chaleira como
recipiente.
Senão, pegue uma panela como recipiente.
I Levar o recipiente até a pia.
I Encher o recipiente de água.
I Acender uma das bocas do fogão.
I Colocar o recipiente sobre a boca acesa do fogão.
I Enquanto a água não estiver borbulhando,
continue aguardando.
I Desligue a boca acesa do fogão.
SAÍDA: recipiente com água fervida.
Exemplo: Como ferver água (no fogão)?
ENTRADA: cozinha, pia, torneira, água corrente, fogão com pelo
menos uma boca, chaleira ou panela.
AÇÃO:
I Se encontrar uma chaleira, então pegue esta chaleira como
recipiente.
Senão, pegue uma panela como recipiente.
I Levar o recipiente até a pia.
I Encher o recipiente de água.
I Acender uma das bocas do fogão.
I Colocar o recipiente sobre a boca acesa do fogão.
I Enquanto a água não estiver borbulhando,
continue aguardando.
I Desligue a boca acesa do fogão.
SAÍDA: recipiente com água fervida.
Exemplo: Como ferver água (no fogão)?

ENTRADA: cozinha, pia, torneira, água corrente, fogão com pelo


menos uma boca, chaleira ou panela.
AÇÃO:
I Se existe chaleira, então recipiente chaleira.
Senão, recipiente panela.
I Levar o recipiente até a pia.
I Encher o recipiente de água.
I Acender uma das bocas do fogão.
I Colocar o recipiente sobre a boca acesa do fogão.
I Enquanto a água não estiver borbulhando,
continue aguardando.
I Desligue a boca acesa do fogão.
SAÍDA: recipiente com água fervida.
Exemplo: Como ferver água (no fogão)?

ENTRADA: cozinha, pia, torneira, água corrente, fogão com pelo


menos uma boca, chaleira ou panela.
AÇÃO:
I Se existe chaleira, então recipiente chaleira.
Senão, recipiente panela.
I Levar o recipiente até a pia.
I Encher o recipiente de água.
I Acender uma das bocas do fogão.
I Colocar o recipiente sobre a boca acesa do fogão.
I Enquanto a água não estiver borbulhando,
continue aguardando.
I Desligue a boca acesa do fogão.
SAÍDA: recipiente com água fervida.
O que é uma linguagem de programação?

Uma linguagem de programação traduz um algoritmo (sequência


de instruções) da linguagem humana para a linguagem da máquina
(”0 e 1”).
Existem milhares de linguagens de programação.
Módulo: Exemplo em Pseudo-código

Dado um número a

Se a > 0, ent~ao
módulo = a
Sen~
ao
módulo = -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 é o MATLAB?

Linguagem computacional de alto nı́vel e um ambiente interativo


para computação numérica, visualização e programação.
Exemplo de código em MATLAB

function[abs] = modulo(a)

if a > 0
modulo = a
else
modulo = -a
end
Console: Modo Interativo

Diretório Atual

Espaço de
Arquivos Console
trabalho

Histórico
Scripts

Os comandos podem ser entrados diretamente no console do


MATLAB, ou escritos, em sequência, dentro de um arquivo com
extensão .m chamado script.

Sequências de trabalho possı́veis:


1. Escrever os comandos no console em sequência, obtendo as
respostas a cada comando.
2. Usando um script:
a) Escrever os comandos em um arquivo no seu editor de texto
preferido (Notepad) e salvar esse arquivo com extensão .m;
b) Ir até a janela do console do MATLAB;
c) Digitar o nome do arquivo em que você digitou os comandos
sem o .m.
Comandos Básicos

I Operações Aritméticas: +, -, *, /, ^
Comandos Básicos

I Operações Aritméticas: +, -, *, /, ^
I Funções matemáticas: sin(pi), abs(-3)
Comandos Básicos

I Operações Aritméticas: +, -, *, /, ^
I Funções matemáticas: sin(pi), abs(-3)
I date
Comandos Básicos

I Operações Aritméticas: +, -, *, /, ^
I Funções matemáticas: sin(pi), abs(-3)
I date
I clear ou clc
Comandos Básicos

I Operações Aritméticas: +, -, *, /, ^
I Funções matemáticas: sin(pi), abs(-3)
I date
I clear ou clc
I help
Variáveis

Para atribuir um valor a uma variável no MATLAB, basta


digitarmos

>> variavel = valor

(não é preciso declarar variáveis no MATLAB).


Tipos de Variável

I Números Reais:
>> a=4.5
>> pi
>> 1e-2
Tipos de Variável

I Listas de caracteres (strings):


>> texto = ’Um texto qualquer.’
Tipos de Variável

I Listas de números reais indexadas (vetores):


>> v = [1,2,3,4]
>> u = [1;2;3;4]
Tipos de Variável

I Listas de números reais duplamente indexadas (matrizes):


>> A = [1 2; 3 4]
Vetores

>> v = [1 3 5]
Vetores

>> v = [1 3 5]
>> w = [7;9;11]
Vetores

>> v = [1 3 5]
>> w = [7;9;11]
>> v’
Vetores

>> v = [1 3 5]
>> w = [7;9;11]
>> v’
>> v(2)
Vetores

>> v = [1 3 5]
>> w = [7;9;11]
>> v’
>> v(2)
ans =
3
Vetores

>> v = [1 3 5]
>> w = [7;9;11]
>> v’
>> v(2)
ans =
3
>> length(v)
Vetores

>> v = [1 3 5]
>> w = [7;9;11]
>> v’
>> v(2)
ans =
3
>> length(v)
>> size(v)
Vetores

>> v = [1 3 5]
>> w = [7;9;11]
>> v’
>> v(2)
ans =
3
>> length(v)
>> size(v)
>> size(v,1)
>> size(v,2)
Operações básicas

Lembre-se de respeitar as dimensões!

>> 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]
Matrizes

>> A = [1 2 3;4 5 6]
A =
1 2 3
4 5 6
Matrizes

>> A = [1 2 3;4 5 6]
A =
1 2 3
4 5 6
>> A(2,1)
ans =
4
Matrizes

>> A = [1 2 3;4 5 6]
A =
1 2 3
4 5 6
>> A(2,1)
ans =
4
>> A(3)
Matrizes

>> A = [1 2 3;4 5 6]
A =
1 2 3
4 5 6
>> A(2,1)
ans =
4
>> A(3)
>> A’
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)
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)
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)
Operações 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
Funções básicas

>> eye(n)
>> zeros(m,n)
>> ones(m,n)
>> inv(A)
Dica!

Para que o resultado não seja mostrado ao final da


operação, use ; ao final do comando.

Exemplo:

>> sin(pi)
>> sin(pi);
Comentários

Em um script, podemos comentar nosso código, usando o sı́mbolo


%:

a = 1;
% Agora, a variável a tem valor 1.
Laços de repetição

Quando é necessário repetir certo comando de código várias 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 usuário

Se quisermos que o usuário entre com um valor de variável,


podemos usar o comando input:

>> variavel = input(’Entre com o valor da variavel: ’)


Usuário

Escreva um algoritmo que imprima todos os números de 1 a n,


onde n é dado pelo usuário.

n = input(’Entre com o numero n: ’);


for i = 1:n
i
end
Laços de repetição (2)

Quando é necessário repetir certo comando de código várias vezes


até que uma certa condição seja satisfeita, usamos a estrutura
while:
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)