29/10/2007galdino, j.f 1 universidade federal de campina grande 4ª semana matemática introdução...

132
29/10/2007 Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

Upload: elias-rosa-martini

Post on 07-Apr-2016

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

29/10/2007 Galdino, J.F 1

UNIVERSIDADE FEDERAL DE CAMPINA GRANDE

4ª Semana Matemática

Introdução a Programação no MATLAB

Page 2: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

2

Currículo Resumido

2003.1 - Graduando em Engenharia Elétrica;2004.1 a 2006.2 - Monitor de Cálculo 1 pelo DME;2007 – Membro do Projeto Olhos Digitais;2007 – Participação no IV Encontro de Extensão da UFCG(Atual) - Monitor Voluntário do Laboratório de Princípios de

Comunicações;(Atual) – Professor Voluntário de Matemática do PVS (Pré Vestibular Solidário) 2007.

E-mail: [email protected]

Page 3: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

3

Sumário Introdução ao MATLAB Estruturas de Controle Arquivos de Comando M-File Funções de Entrada e Saída Introdução a Funções MATLAB Toolboxes Toolbox de Matemática Simbólica Programas em MATLAB

Page 4: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

4

Introdução ao MATLAB

MATLAB(MATrix LABoratory): Programa de computador especializado e otimizado para cálculos científicos e de engenharia.

Surgiu em 1970 com o intuito de auxiliar os cursos de Teoria Matricial, Álgebra Linear e Analise Numérica.

Page 5: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

5

Introdução ao MATLAB Vantagens

Facilidade de Uso Independência de Plataforma Funções Predefinidas Interface Gráfica de Usuário Compilador MATLAB

Desvantagens Linguagem Interpretada Custo

Page 6: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

6

Page 7: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

7

Janela de Comandos MATLAB

Janela de Histórico de Comandos

Espaço de Lançamento

Navegador de Diretório Corrente

Navegador de Ajuda

Page 8: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

8

Introdução ao Matlab

Informação do Sistema:

>>computer>>version>>ver>>license

Page 9: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

9

Introdução ao MatlabMATLAB comand pi Comentários

format short 3.1416 5 dígitos

format long 3.14159265358979 16 dígitos

format short e 3.1416e+000 5 dígitos + expoente

format long e 3.141592653589793e+000

16 dígitos + expoente

format short g 3.1416 short ou short e

format long g 3.14159265358979 long ou long e

Page 10: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

10

Introdução ao MatlabMATLAB comand pi Comentários

format hex 400921fb54442d18 Hexadecimal, ponto flutuante

format bank 3.14 2 digitos decimais

format + + positivo(+), negativo(-) ou zero(0)

format rat 355/113 razão aproximada

Page 11: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

11

Introdução ao Matlab

Comandos básicos:

>>who -- Lista as variáveis.>>whos -- Lista e especifica as variáveis. >>clc -- Limpa a Janela de Comandos.>>clf -- Limpa figura atual>>clear -- Deleta variáveis do workspace MATLAB.>>help -- Ajuda do Matlab, documentação.>>help elfun – Lista funções do MATLAB

Page 12: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

12

Operadores AritméticosForma Geral: A op B

+ Soma Estrutural e Matricial- Subtração Estrutural e Matricial* Multiplicação Matricial/ Divisão Matricial à Direita\ Divisão Matricial à Esquerda^ Expoente Matricial ‘ Operador de Transposição

Page 13: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

13

Operadores Aritméticos

5D

23

C

1 0 2 1-

B

1 20 1

A

Page 14: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

14

Operadores Aritméticos

A + B

0 22 2

A – B

2 -2 2 0

A + C

Operação ilegal

A + D

6 57 6

Page 15: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

15

Operadores Aritméticos A * B

-1 2 2 5

A * C

38

A .* B

-1 0 0 1

A .* C

Operação ilegal

Page 16: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

16

Operadores Aritméticos A / B

-1 2-2 5

A \ B

-1 2 2 -3

A ./ B

-1 0Inf 1

A .\ B

-1 Inf 0 1

Page 17: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

17

Operadores Relacionais Forma geral

A op B

A e B: Operandos. Pode ser uma matriz, um escalar ou uma cadeia de caracteres.Op: Operador

Operador Operação

== Igual a

~= Diferente de

> Maior que

>= Maior que ou igual a

< Menor que

<= Menor que ou igual a

Page 18: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

18

Operadores Relacionais Os operadores <, <=, > e >= são usados

para comparar a parte real dos operandos.

Os operadores == e ~= são usados para comparar a parte real e imaginária dos operandos.

Page 19: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

19

Operadores Relacionais Expressão Resultado

5 > 3 1´AC’ > ‘BA´ 0 1a > b 1 01 + j <= 2 + 3*j 1x >= [3 8] 1 0a > c 0 12 + j == 1+ j 05 + j ~= 2 + j 1

a = [2 1] b = [ 1 1 ] c = [ 0 2 ] x = [ 4 2]

Page 20: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

20

Operadores LógicosOperação Lógica Binária Operação Lógica Unária

A op B op A

Operador Operação

& E lógico

l OU lógico

xor Ou exclusivo lógico

~ Não lógico

Page 21: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

21

Operadores Lógicos

O MATLAB utiliza a lógica positiva, ou seja, assume-se o valor verdadeiro se ele for diferente de zero e falso se ele for igual a zero.

Page 22: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

22

Operadores Lógicos

Entradas e ou xor não

A B A & B A l B xor(A,B) ~A

0 0 0 0 0 1

0 1 0 1 1 1

1 0 0 1 1 0

1 1 1 1 0 0

• Tabela da Verdade para Operadores Lógicos

Page 23: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

23

Precedência dos operadores

1. Os operadores aritméticos são avaliados primeiro.2. Os operadores relacionais são avaliados da

esquerda para a direita.3. Todos os operadores ~ são avaliados.4. Todos os operadores & são avaliados.5. Todos os operadores I são avaliados.

OBS: Sempre use parênteses para indicar a ordem correta desejada de avaliação de uma expressão.

Page 24: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

24

Operadores LógicosExpressão Resultado

~A 0A l B 1B l C 13 > 4 & 1 03 > (4 & 1) 1~C 0A l B & C 1 A & C 1B & C 0

A = 1, B = 0 e C = -10

Page 25: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

25

Operadores Lógicos -Exercícios

Expressão~AA l BB l C3 > 4 & 13 > (4 & 1)~CA l B & CA & CB & C

Resultado011010110

Page 26: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

26

Estruturas de Controle Controle de Fluxo

O controle de fluxo é um recurso que permite que resultados anteriores influenciem operações futuras. Como em outras linguagens, o MatLab possui recursos que permitem o controle de fluxo de execução de comandos, com base em estruturas de tomada de decisões.

Será apresentado as seguintes estruturas de controle: if if-else switch while for

Page 27: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

27

Estruturas de Controle

Simbologia

Símbolo de decisão

Indica que ações serão executadas

Inicio e fim de uma estrutura de uma controle

Page 28: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

28

Estruturas de Controle Algoritmo

Série de ações executadas em uma ordem especifica.

PseudocódigoLinguagem artificial e informal de representar o

código de um programa.Útil para desenvolver algoritmos que serão

convertidos em programas estruturados no Matlab.

Page 29: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

29

Estruturas de Controleif Estrutura de seleção para escolha de cursos de ação específicos.

A estrutura de seleção if executa uma ação indicada só quando a condição é true (Verdadeira); caso contrário, a ação é saltada.

Page 30: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

30

Estruturas de Controleif

CondiçãoVerdadeira

Falsa

Executa uma ação

Testa a condição

Page 31: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

31

Estruturas de Controle Pseudocódigo

Se a nota do estudante for maior ou igual que 7.0Imprima “Aprovado”

Código no Matlab if nota >= 7

fprintf(‘Aprovado’);end

Page 32: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

32

Estruturas de Controle

If-else

CondiçãoVerdadeiraFalsa

Executa uma ação

Testa a condição

Executa uma ação

Page 33: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

33

Estruturas de Controle Pseudocódigo

Se a nota do estudante for maior ou igual que 7.0 Imprima “Aprovado”senão Imprima “Reprovado”

Código no Matlab if nota >= 7

fprintf(‘Aprovado’);else

fprintf(‘Reprovado’);end

Page 34: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

34

Estruturas de controle

Laços são construções MATLAB que nos permitem executar uma sequência de declarações mais de uma vez.

Existem dois tipos de laços: while for

Page 35: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

35

Estruturas de controlewhile: é um bloco de declarações que se repete

indefinidamente, enquanto uma condição for satisfeita.

A forma geral do while é: while expressão ... ... Bloco de código ... end

Page 36: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

36

Estruturas de Controlewhile

CondiçãoVerdadeira

Falsa

Executa uma ação

Testa a condição

Page 37: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

37

Estruturas de Controle

switch

Estrutura de seleção múltipla.Consiste de uma série de rótulos case e um otherwise.

Page 38: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

38

Estrutura de Controle

Case (‘a’)

Falso

Verdadeiro Ação(ões) do case a

Ação(ões) do case bCase (‘b’)

Otherwise

Verdadeiro

Falso

..Falso

Page 39: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

39

Estruturas de Controle

Laço for : Executa um bloco de declarações durante um número especificado de vezes.

for indice = expressãoDeclaração 1

.... Corpo Declaração n

end

Page 40: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

40

Estrutura de Controle

cont = 1

cont <= n

Falso

VerdadeiroCorpo do laço cont = cont + 1

n: número de iterações do laço for

cont: variável de controle

Inicialização da variável de controle

cont = 2

cont = 3

Page 41: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

41

Estruturas de Controle Exemplo: Calcular a soma dos 10 primeiros inteiros.

soma = 0; % Inicializa a variável soma com zerofor k = 1:10

soma = soma + k;end

fprintf('A soma dos dez primeiros inteiros eh: %.2f', soma);

10987654321 Soma

Page 42: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

42

Estruturas de Controle Exemplo: Calcular o fatorial de um número n.

n = 5;fatorial = 1; % Inicializa a variável soma com

zerofor k = 1:n % Laço de repetição: n vezes

fatorial = fatorial*k; % Cálculo do fatorialend

fprintf(‘O fatorial de %.2f eh %.2f', n, fatorial);

Page 43: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

43

Estruturas de Controle Exemplo: Calcular a soma dos 5 primeiros inteiros impares.

soma = 0; % Inicializa a variável soma com zerofor k = 1:2:9

soma = soma + k;end

fprintf('A soma dos 5 primeiros inteiros impares eh: %.2f', soma);

97531 Soma

Page 44: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

44

Estruturas de Controle

for X while

while: utilizado para repetir um trecho de código quando não é desconhecido o número de iterações do laço.

for: utilizado para repetir um trecho de código quando é conhecido o número de iterações do laço.

Page 45: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

45

Estruturas de Controle

Break

Usada para controlar a operação dos laços for e while

Encerra a execução do laço e passa o controle para a próxima declaração logo após o fim do laço.

Page 46: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

46

Estruturas de Controle% Uso do break for k = 1:5

if k == 3;break;endfprintf(‘k = %d\n’, k);

end disp(‘Fim do laço!’);

Page 47: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

47

Estruturas de Controle

k = 1k = 2Fim do laço!

Page 48: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

48

Estruturas de Controle

Continue

Usada para controlar a operação dos laços for e while

Termina a passagem corrente pelo laço e retorna o controle para o inicio do laço.

Page 49: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

49

Estruturas de Controle% Uso do continue for k = 1:5

if k == 3;continue;endfprintf(‘k = %d\n’, k);

end disp(‘Fim do laço!’);

Page 50: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

50

Estruturas de Controle

k = 1k = 2k = 4k = 5Fim do laço!

Page 51: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

51

Arquivos de Comando M-File

Geralmente, utiliza-se o prompt do MATLAB para introduzir os comandos. Entretanto este procedimento simples para execução de comandos no prompt se torna altamente ineficiente quando a complexidade do problema aumenta. Em suma, podemos dizer que para problemas simples podemos usar o prompt do MATLAB e para os mais difíceis deve-se utilizar o script-file ou M-file, que é também conhecido como arquivo de comando ou arquivo M.

Page 52: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

52

Arquivos de Comando M-File

Erro comum de Programação: Os nomes dos arquivos de comando precisam sempre terminar com a extensão ‘.m’.

Exemplos:

programa1.m, exemplo1.m, etc.

Page 53: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

53

Arquivos de Comando M-File

Como Criar um Arquivo M (M-file)

Para criar um arquivo M-file, siga os seguintes passos:

Inicialmente, você deve abrir o programa MATLAB, dando um duplo click no ícone do MATLAB que está na área de trabalho.

Selecione o menu File (dê um click).Selecione o item New e em seguida aponte

para M-file e dê um click.

Page 54: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

54

Arquivos de Comando M-File

Exenplo de script-file.

% script-file: circulo.m% Este programa calcula a área de um circuloraio = 2.5;area = pi*raio^2;fprintf(‘Area do circulo = %.3f ', area);

Page 55: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

55

Arquivos de Comando M-File

Como Executar um Arquivo M (M-file) Para executar um arquivo M-file no MATLAB é preciso

gravar o arquivo correspondente. Para isto, selecione o item Save Workspace As do menu File. Dê preferência salvar o arquivo no diretório corrente do MATLAB, ou seja, na pasta work. Para executar o arquivo M, digite no prompt do MATLAB o nome do arquivo salvado anteriormente, sem a extensão ‘.m’. Feito isso o MATLAB gera o executável do programa.

Page 56: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

56

Arquivos de Comando M-File

Para exemplificar, considere o arquivo circulo.m. Digite no prompt do MATLAB o nome do arquivo circulo. Será apresentado o executável do programa.

>> circuloArea do circulo = 19.635

Page 57: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

57

Arquivos de Comando M-File

Resumindo, pode-se dizer que um programa em MATLAB consiste na criação do arquivo M-file utilizando-se o editor de texto e sua respectiva chamada por linha de comando no prompt do MATLAB.

Page 58: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

58

Introdução a Funções MATLAB

Funções Predefinidas MATLABFornece uma enorme variedade de funções

prontas para uso.Funções trigonométricas, logarítmicas, raízes.Funções hiperbólicas, funções de Bessel, etc.

As funções MATLAB podem devolver mais deum resultado para o programa que as ativa.

Page 59: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

59

Introdução a Funções MATLAB Uso da função max

Retorna o valor máximo de um vetor de entrada, podendo retornar a localização de onde ocorreu o máximo.

maxval = max([1 2 -4 5])maxval = 5 [maxval index] = max([1 2 -4 5])maxval = 5index = 4

Page 60: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

60

Introdução a Funções MATLAB

Funções MATLAB com Matrizes como entrada.

x = [ 0 pi/2 pi 3*pi/2 2*pi] % Entraday = sin(x) % Saíday = [ 0 1 0 -1 0] % Resultado

Page 61: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

61

Introdução a Funções MATLAB

Agora é com você!!!

x = [ 0 pi/2 pi 3*pi/2 2*pi] y = cos(x)

Page 62: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

62

Introdução a Funções MATLAB

Agora é com você!!!

Calcule os valores de sin x, cos x e tan x, para x = 30º, 45º e 60º.

Page 63: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

63

Introdução a Funções MATLAB

Funções Elementares

Page 64: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

64

Introdução a Funções MATLAB Funções Definidas pelo usuário.

function [outarg1, outarg2, ...] = fname(inarg1, inarg2, ...)% H1 comentário% Mais um comentário...(Código executável)...(return)

Page 65: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

65

Introdução a Funções MATLAB

x

y

xa xb

ya

yb

A

B

d

D: distancia entre os pontos A e B

C

Page 66: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

66

Introdução a Funções MATLABfunction [resultado] = distancia2(xa,ya,xb,yb)% DISTANCIA2 Calcula a distancia entre dois pontos% Function DISTANCIA2 calcula a distancia entre dois pontos % A(xa,ya) e B(xb,yb) no sistema de coordenadas cartesiano.% % Chamada a função%% res = distancia2(xa, ya, xb, yb)%% Definiçao das variaveis% xa: abscissa do ponto A% ya: ordenada do ponto A% xb: abscissa do ponto B% yb: ordenada do ponto B% resultado: Distancia entre os pontos A e B.

Page 67: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

67

Introdução a Funções MATLAB

% OBSERVAÇOES% Data Programador Descriçao% 05/10/07 Josenildo F. Galdino Codigo Original% Calculo da distancia

resultado = sqrt((xb - xa).^2 + (yb - ya).^2)

Page 68: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

68

Introdução a Funções MATLABUso da função distancia2.

% Script file: teste_distancia2.m% Este programa testa a funçao distancia2

% Data Programador Descriçao% 05/10/07 Josenildo F. Galdino Codigo Original

% Definiçao das variaveis:% xa: abscissa do ponto A% ya: ordenada do ponto A% xb: abscissa do ponto B% yb: ordenada do ponto B% resultado: distancia entre os dois pontos A e B.

Page 69: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

69

Introdução a Funções MATLAB% Dados fornecidos pelo usuariodisp('Calcule a distancia entre os pontos A e B');xa = input('Forneca a abscissa do ponto A: ');ya = input('Forneca a ordenada do ponto A: ');xb = input('Forneca a abscissa do ponto B: ');yb = input('Forneca a ordenada do ponto B: ');

% Uso da funçao definida pelo programadorresultado = distancia2(xa, ya, xb, yb); % Chamada a funçao.

% Exibiçao do resultadofprintf('A distancia entre os pontos A e B e %f\n', resultado);

Page 70: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

70

Introdução a Funções MATLAB>> teste_distancia2Calcule a distancia entre os pontos A e BForneca a abscissa do ponto A: 1Forneca a ordenada do ponto A: 1Forneca a abscissa do ponto B: 2Forneca a ordenada do ponto B: 2

resultado =

1.4142

A distancia entre os pontos A e B e 1.414214>>

Page 71: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

71

Toolboxes

Statistics Toolbox Symbolic Math Toolbox Partial Diferrential Equation Toolbox Curve Fitting Toolbox Signal Processing Toolbox Control System Toolbox Communication Toolbox

Page 72: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

72

Symbolic Math Toolbox O Toolbox de Matemática Simbólica

disponibiliza uma coleção de diversas funções do MATLAB utilizadas para calcular operações básicas, tais como: derivadas, limites, integrais, expansão da serie de Taylor, e outras operações. A manipulação simbólica no MATLAB pode ser vista como uma evolução do modo como você utiliza o MATLAB para processar números.

Page 73: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

73

Symbolic Math Toolbox

A grande vantagem de se utilizar tal processo é que podemos obter resultados mais exatos, eliminando-se assim a imprecisão introduzida pelos valores numéricos. Podemos resolver derivadas, integrais, equações diferenciais e algébricas utilizando-se esta poderosa ferramenta.

Page 74: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

74

Symbolic Math ToolboxEXPRESSÕES SIMBÓLICAS

Deve-se entender por Expressão simbólica as expressões que contêm objetos simbólicos que podem representar números, funções e operações e variáveis.

Dica: As variáveis simbólicas não precisam de um valor numérico. Esta variável simbólica representa apenas um símbolo de uma expressão simbólica.

Page 75: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

75

Symbolic Math Toolbox

EXPRESSÕES SIMBÓLICAS

Exemplos: 3x )5( 4xdxdz

Page 76: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

76

Symbolic Math Toolbox

O MATLAB disponibiliza várias funções que trabalham com funções polinomiais e que podem ser utilizadas para representar funções polinomiais. Dentre elas, encontram-se as seguintes funções:

collectexpand factorsimplifysimple

Page 77: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

77

Symbolic Math Toolboxcollect

Organiza os coeficientes

Sintaxe

collect( f )

mostra um polinômio f em sua variável simbólica, seja x, e organiza todos os coeficientes com a mesma potência de x. Um segundo argumento pode especificar a variável que se deve organizar se houver mais de uma variável simbólica possível.

Page 78: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

78

Symbolic Math Toolboxcollect(f)

1) Escreva a função y = (x+1)^3 na forma polinomial>> clear % Limpa a Janela de Comandos>> x = sym('x'); % Define a variavel simbolica “x”>> y = (x + 1)^3; % Define a função y = f(x)>> collect(y); % Organiza os coeficientes>> pretty(ans) % Exibe o resultado

x3 + 3x2 + 3x + 1

Page 79: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

79

Symbolic Math Toolbox

Agora é com você!!!

Escreva a função y = (x + 1)(x + 2) na forma polinomial.

Page 80: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

80

Symbolic Math Toolbox

collect( f, nome da variável simbólica)

A função collect neste caso aceita um segundo argumento que especifica que variável simbólica deve ser utilizada para organizar o polinômio.

Page 81: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

81

Symbolic Math Toolboxcollect(f, nome da variável simbólica)

2) Escreva a função f(x,z) = (x + 1)^3 + z na forma polinomial.

>> x = sym('x'); % Define a variável simbólica x>> z = sym(‘z’); % Define a variável simbólica z>> y = (x +1)^3 + z; % Define a função y = f(x,z)>> collect(y,x); % Organiza os coeficientes em x>> pretty(ans) % Exibe o resultado

x3 + 3 x2 + 3 x + 1 + z

Page 82: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

82

Symbolic Math Toolbox

Agora é com você!!!

Escreva a função y = (x + 1)^3 + (z + 1)^2na forma polinomial, em termos de z.

Page 83: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

83

Symbolic Math Toolbox expand

realiza a distribuição de produtos para polinômios e aplica outras identidades que envolvem funções de somas, identidades trigonométricas, exponenciais e logaritmos.

Sintaxe

expand( f )

Page 84: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

84

Symbolic Math Toolboxexpand(f)

3) Escreva a função y = (x+1)^3 na forma polinomial>> clear % Limpa a Janela de Comandos>> x = sym('x'); % Define a variavel simbolica “x”>> y = (x + 1)^3; % Define a função y = f(x)>> expand(y); % Realiza o produto polinomial>> pretty(ans) % Exibe o resultado

x3 + 3x2 + 3x + 1

Page 85: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

85

Symbolic Math Toolbox

expand X collect

Além de representar funções polinomiais a função é bastante útil na manipulação de expressões simbólicas trigonométricas, exponenciais, hiperbólicas, entre outras funções. Esta é uma das características marcantes que diferenciam a função expand da collect. A função expand é bem mais robusta, porque trabalha com muitos tipos de funções, enquanto a função collect é restrita apenas a funções polinomiais. Podemos, dizer que a função expand é uma evolução da função collect, agregando-se novas funcionalidades.

Page 86: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

86

Symbolic Math Toolboxexpand

4) Obtenha a forma expandida da função trigonométrica cos(x + y).

x = sym(‘x’); % Cria a variável simbólica x.y = sym(‘y’); % Cria a variável simbólica y.expand(cos(x+y)) % Realiza a operação ans = % Variável padrão do matlabcos(x)*cos(y) - sin(x)*sin(y) % Resultado

Page 87: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

87

Symbolic Math Toolbox

Agora é com você!!!

Obtenha a forma expandida da função exponencial exp(x + y).

Page 88: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

88

Symbolic Math ToolboxFactor

Fatoração

Sintaxe

factor(X)

Esta função obtém a forma fatorada de um polinômio. Na sintaxe da função X, pode ser apenas a expressão simbólica. Ou um array simbólico contendo vários expressões simbólicas. No caso de utilizar um array, a função factor retorna um array com as expressões simbólicas correspondentes.

Page 89: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

89

Symbolic Math Toolbox

Uso da Função factor

Calcular os fatores primos de um número inteiro.

Obter a forma polinomial fatorada.Simplificar expressões simbólicas.

Page 90: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

90

Symbolic Math ToolboxFactor(x)

5) Calcule os fatores dos seguintes números 15 e 50.

>> factor(15)ans = 3 5

>> factor(50)ans = 2 5 5

Page 91: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

91

Symbolic Math Toolbox

Factor

Observação: O maior valor inteiro que a função factor

aceita é um numero inteiro de até 16 dígitos, se o número tiver uma quantidade de dígitos superior a 16. Devemos usar o sym para criar um elemento.

Page 92: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

92

Symbolic Math ToolboxFactor(x)

5) Calcule os fatores do número

>> factor(15)ans = 3 5

>> factor(50)ans = 2 5 5

Page 93: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

93

Symbolic Math ToolboxFactor(x)

5) Calcule os fatores do número 12345678901234567890

>> factor(sym('12345678901234567890')) ans = (2)*(3)^2*(5)*(101)*(3803)*(3607)*(27961)*(3541)

Page 94: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

94

Symbolic Math Toolbox

6) Obtenha a forma fatorada da equação y = x^3 +3*x^2 + 3*x + 1

>> x = sym('x'); % Cria a variável simbólica x. >> y = x^3 + 3*x^2 + 3*x + 1 % Define a função y = f(x)>> factor(y); % Fatoração>> pretty(ans) % Exibe o resultado (x + 1)^3

Page 95: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

95

Symbolic Math Toolbox

Agora é com você!!!

Obtenha a forma fatorada da equação y = x^2 + 3*x + 2

Page 96: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

96

Symbolic Math ToolboxSimplify

Simplificação simbólica.

Sintaxe: R = simplify(S)

A função simplify é uma ferramenta poderosa, que em geral aplica várias identidades algébricas que envolvem somas, potência inteira, raízes quadradas e potência fracionária, como também vários identidades que envolvem funções trigonométricas, exponencial e funções de Bessel, função gama, etc.

Page 97: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

97

Symbolic Math Toolbox

7) Simplifique a seguinte expressão:

>> x = sym('x'); % Cria a variável simbólica x. >> y = (x^3 + 8)/(x^4 - 16); % Define a função y = f(x)>> simplify(y); % Simplificação simbólica>> pretty(ans) % Exibe o resultado x^2 - 2x + 4 ------------------- x^3 - 2x^2 + 4x - 8

168

4

3

xxy

Page 98: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

98

Symbolic Math Toolbox

Agora é com você!!!

Simplifique a seguinte expressão:

82

3

xxy

Page 99: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

99

Symbolic Math Toolbox

8) Simplifique a seguinte expressão

>> x = sym(‘x’); % Cria a variável simbólica x. >> y = cos(x)^2 + sin(x)^2; % Define a função y = f(x)>> simplify(y); % Simplificação simbólica>> pretty(ans) % Exibe o resultado 1

)(sin)(cos 22 xxy

Page 100: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

100

Symbolic Math Toolbox

9) Simplifique a seguinte expressão:

>> syms x y positive % Cria as variáveis simbólicas x e y, ambas positivas.

>> simplify(log(x*y)); % Simplificação simbólica>> pretty(ans) % Exibe o resultado log(x) + log(y)

)*log( yx

Page 101: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

101

Symbolic Math ToolboxSimple

Busca a forma mais simplificada para a expressão simbólica.

Sintaxe:

r = simple( S )[r,how] = simple( S )

A função simple(S) tenta várias simplificações algébricas diferentes na expressão simbólica S, exibe a representação de menor comprimento para S. S é um sym. Se S for uma matriz, o resultado indica a representação mais curta da matriz inteira que necessariamente não é a representação mais curta de cada elemento individual.

Page 102: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

102

Symbolic Math Toolbox

10 ) Simplifique a expressão y = (x + 1)(x + 2) >> x = sym(‘x’); % Cria a variável simbólica x. >> simple((x+1)(x+2)) % Simplificaçãoans = x^2+3*x+2

Page 103: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

103

Symbolic Math Toolbox

Agora é com você!!!

Simplifique a expressão

)(sin)(cos2 22 xxy

Page 104: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

104

Symbolic Math Toolboxpretty

Esta função imprime uma expressão simbólica.

Pretty(expressão simbólica).

A grande vantagem do uso da função pretty quando trabalha-se com matemática simbólica é que a exibição da expressão simbólica é a mais clara possível.

Dica: Ao trabalhar com matemática simbólica, sempre use a função pretty, para tornar mais legível a expressão simbólica mostrada na tela.

Page 105: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

105

Symbolic Math Toolbox

LIMITES

Page 106: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

106

Symbolic Math ToolboxLimites

% ----------------------------------------------------------------------------------------% Scripte file: limites.m% Este programa calcula o limite de algumas funções.% ---------------------------------------------------------------------------------------% DESCRIÇAO% ---------------------------------------------------------------------------------------% DATA PROGRAMADOR DESCRIÇAO DO CODIGO% 10/10/07 Josenildo F. Galdino Código Original%---------------------------------------------------------------------------------------

Page 107: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

107

Symbolic Math Toolbox

syms x a; % Cria as variáveis simbólicas x e a.f = 1/(x^2); % Definição da função f(x)pretty(f); % Exibição da funçãolimit(f,2) % Calcula o limite quando x tende a 2.

f1 = (25*x^3 + 2)/(75*x^7 -2); % Definição da função f1(x)pretty(f1) % Exibição da função.limit(f1) % Calcula o limite quando x tende a 0.

Page 108: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

108

Symbolic Math Toolbox

f2 = (25*x^3 + 2)/(75*x^7 -2); % Definição da função f2(x)pretty(f2) % Exibição da função limit(f2) % Calcula o limite quando x tende a 0.

f3 = (x^2 - 2)/(x - 2); % Definição da função f3(x)pretty(f3) % Exibição da funçãolimit(f3,2) % Calcula o limite quando x tende a 2.

f4 = (x^2 - a^2)/(x^2 + 2*a*x + a^2); % Definição da função f3(x)pretty(f4) % Exibição da funçãolimit(f4,a) % Calcula o limite quando x tende a a.

Page 109: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

109

Symbolic Math Toolbox

g = sin(2*x)/x; % Definição da função g(x)pretty(g) % Exibição da funçãolimit(g) % Calcula o limite quando x tende a 0.

g1 = sin(5*x)/x; % Definição da função g1(x)pretty(g1) % Exibição da funçãolimit(g1) % Calcula o limite quando x tende a 0.

Page 110: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

110

Symbolic Math Toolbox

g2 = (sin(5*x) - sin(3*x))/x; % Definição da função g2(x)pretty(g2) % Exibição da função limit(g2) % Calcula o limite quando x tende a 0.

g3 = (1 - sqrt(1 - x^2))/(x^2); % Definição da função g3(x)pretty(g3) % Exibição da funçãolimit(g3) % Calcula o limite quando x tende a 0.

Page 111: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

111

Symbolic Math Toolbox

DERIVADAS

Page 112: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

112

Symbolic Math ToolboxDERIVADAS

>> syms x n; % Cria a variável simbólica x.

>> p = x^3 + 4*x^2 -7*x -10; % Define a função f(x).

>> d = diff(p) % Calcula a derivada de f(x).d =3*x^2+8*x-7

>> e = diff(p,2) % Calcula a 2ª derivada de f(x).e =6*x+8

>> f = diff(p,3) % Calcula a 3ª derivada de f(x).f =6

Page 113: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

113

Symbolic Math ToolboxDERIVADASsyms x n % Cria as variaveis simbólicas x e n.>> g = x^n; % Define a função g(x).>> h = diff(g) % Calcula a derivada de g(x).

h =x^n*n/x

>> h = simplify(h) % Simplifica o resultado.h =

x^(n-1)*n

Page 114: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

114

Symbolic Math ToolboxDERIVADAS DE FUNÇÕESTRANSCENDENTAIS>> syms x % Cria as variaveis simbólicas x e n.>> f1 = log(x); % Define a função f1(x).>> df1 = diff(f1) % Calcula a derivada de f1(x).

df1 =1/x

>> f2 = (cos(x))^2; % Define a função f2(x).>> df2 = diff(f2) % Calcula a derivada de f2(x).

df2 =-2*cos(x)*sin(x)

Page 115: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

115

Symbolic Math Toolbox

DERIVADAS DE FUNÇÕES TRANSCENDENTAIS>> f4 = cos(2*x);>> df4 = diff(f4)

df4 =-2*sin(2*x)

>> f5 = exp(-(x^2)/2);>> df5 = diff(f5)

df5 =-x*exp(-1/2*x^2)

Page 116: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

116

Symbolic Math Toolbox Calcule a derivada de

1)(

xxxf

>> syms x; % Cria a variável simbólica x.>> p = x/(x-1); % Define a função f(x).>> diff(p) % Calcula a derivada de f(x).ans = 1/(x-1)-x/(x-1)^2

>> simplify(ans) % Simplifica a expressão da derivada.ans = -1/(x-1)^2

>> pretty(ans) % Exibe a resposta no formato mais visivel. 1 - -------- 2 (x - 1)

Page 117: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

117

Symbolic Math Toolbox

Calcule a derivada de em x = 1, ou seja,

22)( xxxf )1('f

Page 118: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

118

Symbolic Math Toolbox% Cálculo da derivada

syms x; % Cria a variável simbólica x. p = 2 + x + x^2; % Define a função f(x).d = diff(p); % Calcula a derivada de f(x).pretty(d); % Exibe o resultado da derivada

% Calculo da derivada em um ponto (x = 1)

g = [2 1]; % Define o polinômio da derivadapolyval(g,1) % Calcula a derivada em x = 1subs(d,1) % Valor da função em x = 1

Page 119: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

119

Symbolic Math Toolbox INTEGRAIS

>> syms x n t % Cria as variáveis simbólicas x n t>> int(x^n) % Calcula a integral de x^nans =x^(n+1)/(n+1)

>> int(x^3 +4*x^2 + 7*x + 10) % Calcula da integral x^3 + 4x^2 + 7x + 10 ans =1/4*x^4+4/3*x^3+7/2*x^2+10*x

>> int(x,1,t) % Calculo da integral de x, no intervalo [ 1, t ].ans =1/2*t^2-1/2

Page 120: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

120

Symbolic Math ToolboxINTEGRAIS DE FUNÇÕES TRANSCENDENTAIS>> syms x % Cria a variável simbólica x>> int(1/x) % Calcula a integral de f(x) = 1/x.ans =

log(x)>> int(cos(x)) % Calcula a integral de f(x) = cos (x)ans =

sin(x)>> int(1/(1+x^2)) % Calcula a integral de f(x) = 1/(1 + x^2)ans =

atan(x)>> int(exp(-x^2)) % Calcula a integral de f(x) = exp(-x^2)ans =

1/2*pi^(1/2)*erf(x)

Page 121: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

121

Programas em MATLAB

Resolver a equação quadrática

012102 2 ss

Page 122: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

122

Programas em MATLAB% -----------------------------------------------------------------------------------------% Scripte file: quadratica.m% Este programa calcula as raizes da equaçao quadratica, sendo% fornecidos pelo usuario os coeficientes a, b e c da equaçao % a*x^2 + b*x + c = 0% ---------------------------------------------------------------------------------------% DESCRIÇAO% ---------------------------------------------------------------------------------------% DATA PROGRAMADOR DESCRIÇAO DO CODIGO% 10/10/07 Josenildo F. Galdino Código Original%---------------------------------------------------------------------------------------

Page 123: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

123

Programas em MATLAB

% DEFINIÇAO DAS VARIAVEIS% a - coeficiente do termo x^2% b - coeficiente do termo x% c - coeficiente do termo x^0 ou termo independente.% x1 - raiz da equação quadrática% x2 - raiz da equação quadrática% m - variável intermediaria % n - variável intermediaria

Page 124: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

124

Programas em MATLABclc; % Limpa a area de trabalho.

% Obtenção dos parâmetros

disp('Forneca os coeficientes da equaçao quadratica');a = input('\nForneca o coeficiente a: ');b = input('Forneça o coeficiente b: ');c = input('Forneca o coeficiente c: ');

x = linspace(-12,12,300); % Gera 300 pontos entre -12 e 12.y = a*x.^2 + b*x + c; % Definição da função y = f(x)

Page 125: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

125

Programas em MATLAB

% Cálculo das raízes

m = -b/(2*a);n = sqrt(b^2 - 4*a*c)/(2*a);fprintf('\nAs raizes da equacao quadratica sao:')x1 = m + n x2 = m - nfprintf('\n');

Page 126: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

126

Programas em MATLAB

% Exibição do gráfico

plot(x,y); % Gráfico em 2-D.title('\bf\itEquaçao Quadratica'); % Titulo do gráficoxlabel('\bf\itx'); % Eixo horizontalylabel('\bf\ity'); % Eixo vertical

Page 127: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

127

Programas em MATLABForneca os coeficientes da equaçao quadratica

Forneca o coeficiente a: 2Forneça o coeficiente b: 10Forneca o coeficiente c: 12

As raizes da equaçao quadratica sao:x1 =

-2x2 =

-3

Page 128: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

128

Programas em MATLAB

Page 129: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

129

ANIMAÇÃO

Demonstração

Script-file: animacao.m

Page 130: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

130

ANIMAÇÃO

Demonstração

Script-file: animacao1.m

Page 131: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

131

ANIMAÇÃO

Demonstração

Script-file: animacao2.m

Page 132: 29/10/2007Galdino, J.F 1 UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB

132

OBRIGADO!!!