UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4 Semana Matemtica

  • Slides: 132
Download presentation
UNIVERSIDADE FEDERAL DE CAMPINA GRANDE 4ª Semana Matemática Introdução a Programação no MATLAB 29/10/2007

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

Currículo Resumido 2003. 1 - Graduando em Engenharia Elétrica; 2004. 1 a 2006. 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: josenildofg@gmail. com 2

Sumário n n n n Introdução ao MATLAB Estruturas de Controle Arquivos de Comando

Sumário n n n n 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 3

Introdução ao MATLAB(MATrix LABoratory): Programa de computador especializado e otimizado para cálculos científicos e

Introdução ao MATLAB(MATrix LABoratory): Programa de computador especializado e otimizado para cálculos científicos e de engenharia. n Surgiu em 1970 com o intuito de auxiliar os cursos de Teoria Matricial, Álgebra Linear e Analise Numérica. n 4

Introdução ao MATLAB n Vantagens ¨ Facilidade de Uso ¨ Independência de Plataforma ¨

Introdução ao MATLAB n Vantagens ¨ Facilidade de Uso ¨ Independência de Plataforma ¨ Funções Predefinidas ¨ Interface Gráfica de Usuário ¨ Compilador MATLAB n Desvantagens ¨ Linguagem Interpretada ¨ Custo 5

6

6

Navegador de Ajuda Espaço de Lançamento Janela de Comandos MATLAB Navegador de Diretório Corrente

Navegador de Ajuda Espaço de Lançamento Janela de Comandos MATLAB Navegador de Diretório Corrente Janela de Histórico de Comandos 7

Introdução ao Matlab n Informação do Sistema: >>computer >>version >>ver >>license 8

Introdução ao Matlab n Informação do Sistema: >>computer >>version >>ver >>license 8

Introdução ao Matlab MATLAB comand pi Comentários format short 3. 1416 5 dígitos format

Introdução ao Matlab MATLAB comand pi Comentários format short 3. 1416 5 dígitos format long 3. 14159265358979 16 dígitos 3. 1416 e+000 5 dígitos + expoente format short e format long e 3. 141592653589793 e 16 dígitos + expoente +000 format short g 3. 1416 short ou short e format long g 3. 14159265358979 long ou long e 9

Introdução ao Matlab MATLAB comand format hex format bank format + format rat pi

Introdução ao Matlab MATLAB comand format hex format bank format + format rat pi Comentários 400921 fb 54442 d 18 Hexadecimal, ponto flutuante 3. 14 2 digitos decimais + positivo(+), negativo( -) ou zero(0) 355/113 razão aproximada 10

Introdução ao Matlab n Comandos básicos: >>who -- Lista as variáveis. >>whos -- Lista

Introdução ao Matlab n 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 11

Operadores Aritméticos Forma Geral: A op B + * /  ^ ‘ Soma

Operadores Aritméticos Forma 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 12

Operadores Aritméticos 13

Operadores Aritméticos 13

n A + BOperadores 0 2 2 2 n Aritméticos n A+C Operação ilegal

n A + BOperadores 0 2 2 2 n Aritméticos n A+C Operação ilegal A–B 2 -2 2 0 n A+D 6 5 7 6 14

Operadores Aritméticos n A*B n -1 2 2 5 n A*C 3 8 A.

Operadores Aritméticos n A*B n -1 2 2 5 n A*C 3 8 A. * B -1 0 0 1 n A. * C Operação ilegal 15

Operadores Aritméticos n A/B n -1 2 -2 5 n AB -1 2 2

Operadores Aritméticos n A/B n -1 2 -2 5 n AB -1 2 2 -3 A. / B -1 0 Inf 1 n A. B -1 Inf 0 1 16

Operadores Relacionais n Forma geral A op B A e B: Operandos. Pode ser

Operadores Relacionais n Forma geral A op B A e B: Operandos. Pode ser uma matriz, um escalar ou uma cadeia de caracteres. Op: Operador Operação == Igual a ~= Diferente de > Maior que >= Maior que ou igual a Menor que < <= Menor que ou igual a 17

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

Operadores Relacionais n Os operadores <, <=, > e >= são usados para comparar a parte real dos operandos. n Os operadores == e ~= são usados para comparar a parte real e imaginária dos operandos. 18

Operadores Relacionais Expressão 5>3 ´AC’ > ‘BA´ a>b 1 + j <= 2 +

Operadores Relacionais Expressão 5>3 ´AC’ > ‘BA´ a>b 1 + j <= 2 + 3*j x >= [3 8] a>c 2 + j == 1+ j 5 + j ~= 2 + j Resultado 1 01 10 01 0 1 a = [2 1] b = [ 1 1 ] c = [ 0 2 ] x = [ 4 2] 19

Operadores Lógicos Operação Lógica Binária Operação Lógica Unária A op B op A Operador

Operadores Lógicos Operaçã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 20

Operadores Lógicos n O MATLAB utiliza a lógica positiva, ou seja, assume-se o valor

Operadores Lógicos n 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. 21

Operadores Lógicos • Tabela da Verdade para Operadores Lógicos Entradas e ou xor não

Operadores Lógicos • Tabela da Verdade para Operadores Lógicos Entradas e ou xor não B A&B Al. B xor(A, B) ~A 0 0 0 1 0 1 1 0 0 1 1 1 1 0 0 A 22

Precedência dos operadores 1. 2. 3. 4. 5. Os operadores aritméticos são avaliados primeiro.

Precedência dos operadores 1. 2. 3. 4. 5. Os operadores aritméticos são avaliados primeiro. Os operadores relacionais são avaliados da esquerda para a direita. Todos os operadores ~ são avaliados. Todos os operadores & são avaliados. 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. 23

Operadores Lógicos Expressão ~A Al. B Bl. C 3>4&1 3 > (4 & 1)

Operadores Lógicos Expressão ~A Al. B Bl. C 3>4&1 3 > (4 & 1) ~C Al. B&C A&C B&C Resultado 0 1 1 0 A = 1, B = 0 e C = -10 24

Operadores Lógicos -Exercícios Expressão ~A Al. B Bl. C 3>4&1 3 > (4 &

Operadores Lógicos -Exercícios Expressão ~A Al. B Bl. C 3>4&1 3 > (4 & 1) ~C Al. B&C A&C B&C Resultado 0 1 1 0 25

Estruturas de Controle n Controle de Fluxo O controle de fluxo é um recurso

Estruturas de Controle n Controle de Fluxo O controle de fluxo é um recurso que permite que resultados anteriores influenciem operações futuras. Como em outras linguagens, o Mat. Lab 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-else ¨ switch ¨ while ¨ for 26

Estruturas de Controle n Simbologia Inicio e fim de uma estrutura de uma controle

Estruturas de Controle n Simbologia Inicio e fim de uma estrutura de uma controle Símbolo de decisão Indica que ações serão executadas 27

Estruturas de Controle n Algoritmo Série de ações executadas em uma ordem especifica. n

Estruturas de Controle n Algoritmo Série de ações executadas em uma ordem especifica. n Pseudocódigo ¨ Linguagem artificial e informal de representar o código de um programa. ¨ Útil para desenvolver algoritmos que serão convertidos em programas estruturados no Matlab. 28

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

Estruturas de Controle if 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. 29

Estruturas de Controle if Testa a condição Verdadeira Condição Executa uma ação Falsa 30

Estruturas de Controle if Testa a condição Verdadeira Condição Executa uma ação Falsa 30

Estruturas de Controle n Pseudocódigo Se a nota do estudante for maior ou igual

Estruturas de Controle n Pseudocódigo Se a nota do estudante for maior ou igual que 7. 0 Imprima “Aprovado” n Código no Matlab if nota >= 7 fprintf(‘Aprovado’); end 31

Estruturas de Controle If-else Testa a condição Falsa Executa uma ação Verdadeira Condição Executa

Estruturas de Controle If-else Testa a condição Falsa Executa uma ação Verdadeira Condição Executa uma ação 32

Estruturas de Controle n Pseudocódigo Se a nota do estudante for maior ou igual

Estruturas de Controle n Pseudocódigo Se a nota do estudante for maior ou igual que 7. 0 Imprima “Aprovado” senão Imprima “Reprovado” n Código no Matlab if nota >= 7 fprintf(‘Aprovado’); else fprintf(‘Reprovado’); end 33

Estruturas de controle Laços são construções MATLAB que nos permitem executar uma sequência de

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: n while n for 34

Estruturas de controle while: é um bloco de declarações que se repete indefinidamente, enquanto

Estruturas de controle while: é 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 35

Estruturas de Controle while Testa a condição Condição Verdadeira Executa uma ação Falsa 36

Estruturas de Controle while Testa a condição Condição Verdadeira Executa uma ação Falsa 36

Estruturas de Controle n switch ¨ Estrutura de seleção múltipla. ¨ Consiste de uma

Estruturas de Controle n switch ¨ Estrutura de seleção múltipla. ¨ Consiste de uma série de rótulos case e um otherwise. 37

Estrutura de Controle Verdadeiro Case (‘a’) Ação(ões) do case a Falso Verdadeiro Case (‘b’)

Estrutura de Controle Verdadeiro Case (‘a’) Ação(ões) do case a Falso Verdadeiro Case (‘b’) Ação(ões) do case b Falso . . Falso Otherwise 38

Estruturas de Controle n Laço for : Executa um bloco de declarações durante um

Estruturas de Controle n Laço for : Executa um bloco de declarações durante um número especificado de vezes. for indice = expressão Declaração 1. . Corpo Declaração n end 39

Estrutura de Controle n: número de iterações do laço for cont: variável de controle

Estrutura de Controle n: número de iterações do laço for cont: variável de controle cont = 1 Inicialização da variável de controle cont = 2 cont = 3 cont <= n Verdadeiro Corpo do laço cont = cont + 1 Falso 40

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

Estruturas de Controle n Exemplo: Calcular a soma dos 10 primeiros inteiros. soma = 0; % Inicializa a variável soma com zero for k = 1: 10 soma = soma + k; end fprintf('A soma dos dez primeiros inteiros eh: %. 2 f', soma); 41

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

Estruturas de Controle n Exemplo: Calcular o fatorial de um número n. n = 5; % Inicializa a variável soma com zero for k = 1: n % Laço de repetição: n vezes fatorial = fatorial*k; % Cálculo do fatorial = 1; end fprintf(‘O fatorial de %. 2 f eh %. 2 f', n, fatorial); 42

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

Estruturas de Controle n Exemplo: Calcular a soma dos 5 primeiros inteiros impares. soma = 0; % Inicializa a variável soma com zero for k = 1: 2: 9 soma = soma + k; end fprintf('A soma dos 5 primeiros inteiros impares eh: %. 2 f', soma); 43

Estruturas de Controle for X while n while: utilizado para repetir um trecho de

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

Estruturas de Controle n Break ¨ Usada para controlar a operação dos laços for

Estruturas de Controle n 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. 45

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

Estruturas de Controle % Uso do break for k = 1: 5 if k == 3; break; end fprintf(‘k = %dn’, k); end disp(‘Fim do laço!’); 46

Estruturas de Controle k=1 k=2 Fim do laço! 47

Estruturas de Controle k=1 k=2 Fim do laço! 47

Estruturas de Controle n Continue ¨ Usada para controlar a operação dos laços for

Estruturas de Controle n 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. 48

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

Estruturas de Controle % Uso do continue for k = 1: 5 if k == 3; continue; end fprintf(‘k = %dn’, k); end disp(‘Fim do laço!’); 49

Estruturas de Controle k=1 k=2 k=4 k=5 Fim do laço! 50

Estruturas de Controle k=1 k=2 k=4 k=5 Fim do laço! 50

Arquivos de Comando M-File Geralmente, utiliza-se o prompt do MATLAB para introduzir os comandos.

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. 51

Arquivos de Comando M-File Erro comum de Programação: Os nomes dos arquivos de comando

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: programa 1. m, exemplo 1. m, etc. 52

Arquivos de Comando M-File n Como Criar um Arquivo M (M-file) ¨ Para criar

Arquivos de Comando M-File n 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. 53

Arquivos de Comando M-File Exenplo de script-file. % script-file: circulo. m % Este programa

Arquivos de Comando M-File Exenplo de script-file. % script-file: circulo. m % Este programa calcula a área de um circulo raio = 2. 5; area = pi*raio^2; fprintf(‘Area do circulo = %. 3 f ', area); 54

Arquivos de Comando M-File n Como Executar um Arquivo M (M-file) ¨ Para executar

Arquivos de Comando M-File n 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. 55

Arquivos de Comando M-File Para exemplificar, considere o arquivo circulo. m. Digite no prompt

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. >> circulo Area do circulo = 19. 635 56

Arquivos de Comando M-File Resumindo, pode-se dizer que um programa em MATLAB consiste na

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. 57

Introdução a Funções MATLAB n Funções Predefinidas MATLAB ¨ Fornece uma enorme variedade de

Introdução a Funções MATLAB n Funções Predefinidas MATLAB ¨ Fornece 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 de um resultado para o programa que as ativa. 58

Introdução a Funções MATLAB n Uso da função max Retorna o valor máximo de

Introdução a Funções MATLAB n 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 = 5 index = 4 59

Introdução a Funções MATLAB n Funções MATLAB com Matrizes como entrada. x = [

Introdução a Funções MATLAB n Funções MATLAB com Matrizes como entrada. x = [ 0 pi/2 pi 3*pi/2 2*pi] % Entrada y = sin(x) % Saída y = [ 0 1 0 -1 0] % Resultado 60

Introdução a Funções MATLAB Agora é com você!!! x = [ 0 pi/2 pi

Introdução a Funções MATLAB Agora é com você!!! x = [ 0 pi/2 pi 3*pi/2 2*pi] y = cos(x) 61

Introdução a Funções MATLAB Agora é com você!!! Calcule os valores de sin x,

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º. 62

Introdução a Funções MATLAB n Funções Elementares 63

Introdução a Funções MATLAB n Funções Elementares 63

Introdução a Funções MATLAB Funções Definidas pelo usuário. function [outarg 1, outarg 2, .

Introdução a Funções MATLAB Funções Definidas pelo usuário. function [outarg 1, outarg 2, . . . ] = fname(inarg 1, inarg 2, . . . ) % H 1 comentário % Mais um comentário. . . (Código executável). . . (return) n 64

Introdução a Funções MATLAB y B yb d A C ya xa xb x

Introdução a Funções MATLAB y B yb d A C ya xa xb x D: distancia entre os pontos A e B 65

Introdução a Funções MATLAB function [resultado] = distancia 2(xa, ya, xb, yb) % DISTANCIA

Introdução a Funções MATLAB function [resultado] = distancia 2(xa, ya, xb, yb) % DISTANCIA 2 Calcula a distancia entre dois pontos % Function DISTANCIA 2 calcula a distancia entre dois pontos % A(xa, ya) e B(xb, yb) no sistema de coordenadas cartesiano. % % Chamada a função % % res = distancia 2(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. 66

Introdução a Funções MATLAB % OBSERVAÇOES % Data Programador Descriçao % 05/10/07 Josenildo F.

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) 67

Introdução a Funções MATLAB Uso da função distancia 2. % Script file: teste_distancia 2.

Introdução a Funções MATLAB Uso da função distancia 2. % Script file: teste_distancia 2. m % Este programa testa a funçao distancia 2 % Data % 05/10/07 Programador Descriçao 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. 68

Introdução a Funções MATLAB % Dados fornecidos pelo usuario disp('Calcule a distancia entre os

Introdução a Funções MATLAB % Dados fornecidos pelo usuario disp('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 programador resultado = distancia 2(xa, ya, xb, yb); % Chamada a funçao. % Exibiçao do resultado fprintf('A distancia entre os pontos A e B e %fn', resultado); 69

Introdução a Funções MATLAB >> teste_distancia 2 Calcule a distancia entre os pontos A

Introdução a Funções MATLAB >> teste_distancia 2 Calcule a distancia entre os pontos A e B Forneca a abscissa do ponto A: 1 Forneca a ordenada do ponto A: 1 Forneca a abscissa do ponto B: 2 Forneca a ordenada do ponto B: 2 resultado = 1. 4142 A distancia entre os pontos A e B e 1. 414214 >> 70

Toolboxes ¨ ¨ ¨ ¨ Statistics Toolbox Symbolic Math Toolbox Partial Diferrential Equation Toolbox

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

Symbolic Math Toolbox n O Toolbox de Matemática Simbólica disponibiliza uma coleção de diversas

Symbolic Math Toolbox n 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. 72

Symbolic Math Toolbox n A grande vantagem de se utilizar tal processo é que

Symbolic Math Toolbox n 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. 73

Symbolic Math Toolbox EXPRESSÕES SIMBÓLICAS Deve-se entender por Expressão simbólica as expressões que contêm

Symbolic Math Toolbox EXPRESSÕ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. 74

Symbolic Math Toolbox EXPRESSÕES SIMBÓLICAS Exemplos: 75

Symbolic Math Toolbox EXPRESSÕES SIMBÓLICAS Exemplos: 75

Symbolic Math Toolbox O MATLAB disponibiliza várias funções que trabalham com funções polinomiais e

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: ¨ collect ¨ expand ¨ factor ¨ simplify ¨ simple 76

Symbolic Math Toolbox collect Organiza os coeficientes n Sintaxe collect( f ) mostra um

Symbolic Math Toolbox collect Organiza os coeficientes n 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. 77

Symbolic Math Toolbox collect(f) 1) Escreva a função y = (x+1)^3 na forma polinomial

Symbolic Math Toolbox collect(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 x 3 + 3 x 2 + 3 x + 1 78

Symbolic Math Toolbox Agora é com você!!! Escreva a função y = (x +

Symbolic Math Toolbox Agora é com você!!! Escreva a função y = (x + 1)(x + 2) na forma polinomial. 79

Symbolic Math Toolbox n collect( f, nome da variável simbólica) A função collect neste

Symbolic Math Toolbox n 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. 80

Symbolic Math Toolbox collect(f, nome da variável simbólica) 2) Escreva a função f(x, z)

Symbolic Math Toolbox collect(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 x 3 + 3 x 2 + 3 x + 1 + z 81

Symbolic Math Toolbox Agora é com você!!! Escreva a função y = (x +

Symbolic Math Toolbox Agora é com você!!! Escreva a função y = (x + 1)^3 + (z + 1)^2 na forma polinomial, em termos de z. 82

Symbolic Math Toolbox n expand realiza a distribuição de produtos para polinômios e aplica

Symbolic Math Toolbox n 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 n expand( f ) 83

Symbolic Math Toolbox expand(f) 3) Escreva a função y = (x+1)^3 na forma polinomial

Symbolic Math Toolbox expand(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 x 3 + 3 x 2 + 3 x + 1 84

Symbolic Math Toolbox expand X collect Além de representar funções polinomiais a função é

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. 85

Symbolic Math Toolbox expand 4) Obtenha a forma expandida trigonométrica cos(x + y). da

Symbolic Math Toolbox expand 4) Obtenha a forma expandida trigonométrica cos(x + y). da função 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 matlab cos(x)*cos(y) - sin(x)*sin(y) % Resultado 86

Symbolic Math Toolbox Agora é com você!!! Obtenha a forma expandida da função exponencial

Symbolic Math Toolbox Agora é com você!!! Obtenha a forma expandida da função exponencial exp(x + y). 87

Symbolic Math Toolbox Factor Fatoração n Sintaxe factor(X) Esta função obtém a forma fatorada

Symbolic Math Toolbox Factor Fatoração n 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. 88

Symbolic Math Toolbox n Uso da Função factor ¨ Calcular os fatores primos de

Symbolic Math Toolbox n Uso da Função factor ¨ Calcular os fatores primos de um número inteiro. ¨ Obter a forma polinomial fatorada. ¨ Simplificar expressões simbólicas. 89

Symbolic Math Toolbox Factor(x) 5) Calcule os fatores dos seguintes números 15 e 50.

Symbolic Math Toolbox Factor(x) 5) Calcule os fatores dos seguintes números 15 e 50. >> factor(15) ans = 3 5 >> factor(50) ans = 2 5 5 90

Symbolic Math Toolbox Factor n Observação: O maior valor inteiro que a função factor

Symbolic Math Toolbox Factor n 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. 91

Symbolic Math Toolbox Factor(x) 5) Calcule os fatores do número >> factor(15) ans =

Symbolic Math Toolbox Factor(x) 5) Calcule os fatores do número >> factor(15) ans = 3 5 >> factor(50) ans = 2 5 5 92

Symbolic Math Toolbox Factor(x) 5) Calcule os fatores do número 1234567890 >> factor(sym('1234567890')) ans

Symbolic Math Toolbox Factor(x) 5) Calcule os fatores do número 1234567890 >> factor(sym('1234567890')) ans = (2)*(3)^2*(5)*(101)*(3803)*(3607)*(27961)*(3541) 93

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

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 94

Symbolic Math Toolbox Agora é com você!!! Obtenha a forma fatorada da equação y

Symbolic Math Toolbox Agora é com você!!! Obtenha a forma fatorada da equação y = x^2 + 3*x + 2 95

Symbolic Math Toolbox Simplify Simplificação simbólica. n Sintaxe: R = simplify(S) A função simplify

Symbolic Math Toolbox Simplify Simplificação simbólica. n 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. 96

Symbolic Math Toolbox 7) Simplifique a seguinte expressão: >> x = sym('x'); % Cria

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 - 2 x + 4 ---------x^3 - 2 x^2 + 4 x - 8 97

Symbolic Math Toolbox Agora é com você!!! Simplifique a seguinte expressão: 98

Symbolic Math Toolbox Agora é com você!!! Simplifique a seguinte expressão: 98

Symbolic Math Toolbox 8) Simplifique a seguinte expressão >> x = sym(‘x’); % Cria

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 99

Symbolic Math Toolbox 9) Simplifique a seguinte expressão: >> syms x y positive %

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) 100

Symbolic Math Toolbox Simple Busca a forma mais simplificada para a expressão simbólica. n

Symbolic Math Toolbox Simple Busca a forma mais simplificada para a expressão simbólica. n 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. 101

Symbolic Math Toolbox 10 ) Simplifique a expressão y = (x + 1)(x +

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ção ans = x^2+3*x+2 102

Symbolic Math Toolbox Agora é com você!!! Simplifique a expressão 103

Symbolic Math Toolbox Agora é com você!!! Simplifique a expressão 103

Symbolic Math Toolbox pretty Esta função imprime uma expressão simbólica. n Pretty(expressão simbólica). A

Symbolic Math Toolbox pretty Esta função imprime uma expressão simbólica. n 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. 104

Symbolic Math Toolbox n LIMITES 105

Symbolic Math Toolbox n LIMITES 105

Symbolic Math Toolbox Limites % --------------------------------------------% Scripte file: limites. m % Este programa calcula

Symbolic Math Toolbox Limites % --------------------------------------------% 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 %-------------------------------------------- 106

Symbolic Math Toolbox syms x a; f = 1/(x^2); pretty(f); limit(f, 2) % Cria

Symbolic Math Toolbox syms x a; f = 1/(x^2); pretty(f); limit(f, 2) % Cria as variáveis simbólicas x e a. % Definição da função f(x) % Exibição da função % Calcula o limite quando x tende a 2. f 1 = (25*x^3 + 2)/(75*x^7 -2); % Definição da função f 1(x) pretty(f 1) % Exibição da função. limit(f 1) % Calcula o limite quando x tende a 0. 107

Symbolic Math Toolbox f 2 = (25*x^3 + 2)/(75*x^7 -2); % Definição da função

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

Symbolic Math Toolbox g = sin(2*x)/x; pretty(g) limit(g) % Definição da função g(x) %

Symbolic Math Toolbox g = sin(2*x)/x; pretty(g) limit(g) % Definição da função g(x) % Exibição da função % Calcula o limite quando x tende a 0. g 1 = sin(5*x)/x; pretty(g 1) limit(g 1) % Definição da função g 1(x) % Exibição da função % Calcula o limite quando x tende a 0. 109

Symbolic Math Toolbox g 2 = (sin(5*x) - sin(3*x))/x; % Definição da função g

Symbolic Math Toolbox g 2 = (sin(5*x) - sin(3*x))/x; % Definição da função g 2(x) pretty(g 2) % Exibição da função limit(g 2) % Calcula o limite quando x tende a 0. g 3 = (1 - sqrt(1 - x^2))/(x^2); % Definição da função g 3(x) pretty(g 3) % Exibição da função limit(g 3) % Calcula o limite quando x tende a 0. 110

Symbolic Math Toolbox n DERIVADAS 111

Symbolic Math Toolbox n DERIVADAS 111

Symbolic Math Toolbox DERIVADAS >> syms x n; % Cria a variável simbólica x.

Symbolic Math Toolbox DERIVADAS >> 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) d= 3*x^2+8*x-7 >> e = diff(p, 2) e= 6*x+8 >> f = diff(p, 3) f= 6 % Calcula a derivada de f(x). % Calcula a 2ª derivada de f(x). % Calcula a 3ª derivada de f(x). 112

Symbolic Math Toolbox DERIVADAS syms x n >> g = x^n; >> h =

Symbolic Math Toolbox DERIVADAS syms x n >> g = x^n; >> h = diff(g) h= x^n*n/x >> h = simplify(h) h= x^(n-1)*n % Cria as variaveis simbólicas x e n. % Define a função g(x). % Calcula a derivada de g(x). % Simplifica o resultado. 113

Symbolic Math Toolbox DERIVADAS DE FUNÇÕESTRANSCENDENTAIS >> syms x % Cria as variaveis simbólicas

Symbolic Math Toolbox DERIVADAS DE FUNÇÕESTRANSCENDENTAIS >> syms x % Cria as variaveis simbólicas x e n. >> f 1 = log(x); % Define a função f 1(x). >> df 1 = diff(f 1) % Calcula a derivada de f 1(x). df 1 = 1/x >> f 2 = (cos(x))^2; % Define a função f 2(x). >> df 2 = diff(f 2) % Calcula a derivada de f 2(x). df 2 = -2*cos(x)*sin(x) 114

Symbolic Math Toolbox DERIVADAS DE FUNÇÕES TRANSCENDENTAIS >> f 4 = cos(2*x); >> df

Symbolic Math Toolbox DERIVADAS DE FUNÇÕES TRANSCENDENTAIS >> f 4 = cos(2*x); >> df 4 = diff(f 4) df 4 = -2*sin(2*x) >> f 5 = exp(-(x^2)/2); >> df 5 = diff(f 5) df 5 = -x*exp(-1/2*x^2) 115

Symbolic Math Toolbox n Calcule a derivada de >> syms x; >> p =

Symbolic Math Toolbox n Calcule a derivada de >> syms x; >> p = x/(x-1); >> diff(p) ans = 1/(x-1)-x/(x-1)^2 % Cria a variável simbólica x. % Define a função f(x). % Calcula a derivada de f(x). >> simplify(ans) ans = -1/(x-1)^2 % Simplifica a expressão da derivada. >> pretty(ans) % Exibe a resposta no formato mais visivel. 1 - -------2 (x - 1) 116

Symbolic Math Toolbox n Calcule a derivada de em x = 1, ou seja,

Symbolic Math Toolbox n Calcule a derivada de em x = 1, ou seja, 117

Symbolic Math Toolbox % Cálculo da derivada syms x; % Cria a variável simbólica

Symbolic Math Toolbox % Cálculo da derivada syms x; % Cria a variável simbólica x. p = 2 + 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]; polyval(g, 1) subs(d, 1) % Define o polinômio da derivada % Calcula a derivada em x = 1 % Valor da função em x = 1 118

Symbolic Math Toolbox n INTEGRAIS >> syms x n t >> int(x^n) ans =

Symbolic Math Toolbox n INTEGRAIS >> syms x n t >> int(x^n) ans = x^(n+1)/(n+1) % Cria as variáveis simbólicas x n t % Calcula a integral de x^n >> int(x^3 +4*x^2 + 7*x + 10) % Calcula da integral x^3 + 4 x^2 + 7 x + 10 ans = 1/4*x^4+4/3*x^3+7/2*x^2+10*x >> int(x, 1, t) ans = 1/2*t^2 -1/2 % Calculo da integral de x, no intervalo [ 1, t ]. 119

Symbolic Math Toolbox INTEGRAIS DE FUNÇÕES TRANSCENDENTAIS >> syms x % Cria a variável

Symbolic Math Toolbox INTEGRAIS 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) 120

Programas em MATLAB n Resolver a equação quadrática 121

Programas em MATLAB n Resolver a equação quadrática 121

Programas em MATLAB % --------------------------------------------% Scripte file: quadratica. m % Este programa calcula as

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 %-------------------------------------------- 122

Programas em MATLAB % DEFINIÇAO DAS VARIAVEIS % a - coeficiente do termo x^2

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. % x 1 - raiz da equação quadrática % x 2 - raiz da equação quadrática % m - variável intermediaria % n - variável intermediaria 123

Programas em MATLAB clc; % Limpa a area de trabalho. % Obtenção dos parâmetros

Programas em MATLAB clc; % Limpa a area de trabalho. % Obtenção dos parâmetros disp('Forneca os coeficientes da equaçao quadratica'); a = input('n. Forneca o coeficiente a: '); b = input('Forneça o coeficiente b: '); c = input('Forneca o coeficiente c: '); x = linspace(-12, 300); % Gera 300 pontos entre -12 e 12. y = a*x. ^2 + b*x + c; % Definição da função y = f(x) 124

Programas em MATLAB % Cálculo das raízes m = -b/(2*a); n = sqrt(b^2 -

Programas em MATLAB % Cálculo das raízes m = -b/(2*a); n = sqrt(b^2 - 4*a*c)/(2*a); fprintf('n. As raizes da equacao quadratica sao: ') x 1 = m + n x 2 = m - n fprintf('n'); 125

Programas em MATLAB % Exibição do gráfico plot(x, y); % Gráfico em 2 -D.

Programas em MATLAB % Exibição do gráfico plot(x, y); % Gráfico em 2 -D. title('bfit. Equaçao Quadratica'); % Titulo do gráfico xlabel('bfitx'); % Eixo horizontal ylabel('bfity'); % Eixo vertical 126

Programas em MATLAB Forneca os coeficientes da equaçao quadratica Forneca o coeficiente a: 2

Programas em MATLAB Forneca os coeficientes da equaçao quadratica Forneca o coeficiente a: 2 Forneça o coeficiente b: 10 Forneca o coeficiente c: 12 As raizes da equaçao quadratica sao: x 1 = -2 x 2 = -3 127

Programas em MATLAB 128

Programas em MATLAB 128

ANIMAÇÃO n Demonstração Script-file: animacao. m 129

ANIMAÇÃO n Demonstração Script-file: animacao. m 129

ANIMAÇÃO n Demonstração Script-file: animacao 1. m 130

ANIMAÇÃO n Demonstração Script-file: animacao 1. m 130

ANIMAÇÃO n Demonstração Script-file: animacao 2. m 131

ANIMAÇÃO n Demonstração Script-file: animacao 2. m 131

OBRIGADO!!! 132

OBRIGADO!!! 132