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 - 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] 2 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 3 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. 4 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 5 6 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 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 long 3.14159265358979 16 dígitos format short e 3.1416e+000 5 dígitos + expoente format long e 3.141592653589793 e+000 16 dígitos + expoente 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 Comentários 400921fb54442d18 Hexadecimal, ponto flutuante 3.14 2 digitos decimais + positivo(+), negativo(-) ou zero(0) 355/113 razão aproximada 10 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 11 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 1 A 2 0 1 3 C 2 - 1 2 B 0 1 D5 13 Operadores Aritméticos A+B Operação ilegal 0 2 2 2 A–B 2 -2 2 0 A+C A+D 6 5 7 6 14 Operadores Aritméticos A*B -1 2 2 5 A*C 3 8 A .* B -1 0 0 1 A .* C Operação ilegal 15 Operadores Aritméticos A/B -1 2 -2 5 A\B -1 2 2 -3 A ./ B -1 0 Inf 1 A .\ B -1 Inf 0 1 16 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 17 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. 18 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 1 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 Operação & E lógico l OU lógico xor Ou exclusivo lógico ~ Não lógico 20 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. 21 Operadores Lógicos • Tabela da Verdade para Operadores Lógicos Entradas e ou xor não B A&B AlB 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 A 22 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 AlB BlC 3>4&1 3 > (4 & 1) ~C AlB&C A&C B&C Resultado 0 1 1 0 1 0 1 1 0 A = 1, B = 0 e C = -10 24 Operadores Lógicos -Exercícios Expressão ~A AlB BlC 3>4&1 3 > (4 & 1) ~C AlB&C A&C B&C Resultado 0 1 1 0 1 0 1 1 0 25 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 26 Estruturas de Controle 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 Algoritmo Série de ações executadas em uma ordem especifica. 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. 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 Pseudocódigo Se a nota do estudante for maior ou igual que 7.0 Imprima “Aprovado” 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 uma ação 32 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 33 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 34 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 Verdadeira Condição Executa uma ação Falsa 36 Estruturas de Controle 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’) Ação(ões) do case b Falso . . Falso Otherwise 38 Estruturas de Controle 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 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 Exemplo: Calcular a soma dos 10 primeiros inteiros. Soma 1 2 3 4 5 6 7 8 9 10 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: %.2f', soma); 41 Estruturas de Controle Exemplo: Calcular o fatorial de um número n. n = 5; fatorial = 1; % 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 end fprintf(‘O fatorial de %.2f eh %.2f', n, fatorial); 42 Estruturas de Controle Exemplo: Calcular a soma dos 5 primeiros inteiros impares. Soma 1 3 5 7 9 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: %.2f', soma); 43 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. 44 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. 45 Estruturas de Controle % Uso do break for k = 1:5 if k == 3; break; end fprintf(‘k = %d\n’, k); end disp(‘Fim do laço!’); 46 Estruturas de Controle k=1 k=2 Fim do laço! 47 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. 48 Estruturas de Controle % Uso do continue for k = 1:5 if k == 3; continue; end fprintf(‘k = %d\n’, k); end disp(‘Fim do laço!’); 49 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. 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 precisam sempre terminar com a extensão ‘.m’. Exemplos: programa1.m, exemplo1.m, etc. 52 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. 53 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 = %.3f ', area); 54 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. 55 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 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 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 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 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 3*pi/2 2*pi] y = cos(x) 61 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 Funções Elementares 63 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) 64 Introdução a Funções MATLAB y B yb d A C ya x xa xb D: distancia entre os pontos A e B 65 Introdução a Funções MATLAB function [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. 66 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 distancia2. % Script file: teste_distancia2.m % Este programa testa a funçao distancia2 % 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 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 = distancia2(xa, ya, xb, yb); % Chamada a funçao. % Exibiçao do resultado fprintf('A distancia entre os pontos A e B e %f\n', resultado); 69 Introdução a Funções MATLAB >> teste_distancia2 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 Curve Fitting Toolbox Signal Processing Toolbox Control System Toolbox Communication Toolbox 71 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. 72 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. 73 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: x 3 d z (5 x 4 ) dx 75 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 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 >> 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 78 Symbolic Math Toolbox Agora é com você!!! Escreva a função y = (x + 1)(x + 2) na forma polinomial. 79 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. 80 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 x3 + 3 x2 + 3 x + 1 + z 81 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 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 ) 83 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 x3 + 3x2 + 3x + 1 84 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 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 exp(x + y). 87 Symbolic Math Toolbox Factor 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. 88 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. 89 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 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 = 3 5 >> factor(50) ans = 2 5 5 92 Symbolic Math Toolbox Factor(x) 5) Calcule os fatores do número 12345678901234567890 >> factor(sym('12345678901234567890')) 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 + 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 = x^2 + 3*x + 2 95 Symbolic Math Toolbox Simplify 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. 96 Symbolic Math Toolbox 7) Simplifique a seguinte expressão: x3 8 y 4 x 16 >> 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 97 Symbolic Math Toolbox Agora é com você!!! x2 Simplifique a seguinte expressão: y 3 x 8 98 Symbolic Math Toolbox 8) Simplifique a seguinte expressão y cos ( x) sin ( x) 2 2 >> 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: log(x * y) >> 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. 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 + 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 y 2 cos2 ( x) sin 2 ( x) 103 Symbolic Math Toolbox pretty 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. 104 Symbolic Math Toolbox LIMITES 105 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 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. 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. 107 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); pretty(f3) limit(f3,2) % Definição da função f3(x) % Exibição da função % 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ção limit(f4,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) % Exibição da função % Calcula o limite quando x tende a 0. g1 = sin(5*x)/x; pretty(g1) limit(g1) % Definição da função g1(x) % Exibição da função % Calcula o limite quando x tende a 0. 109 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ção limit(g3) % Calcula o limite quando x tende a 0. 110 Symbolic Math Toolbox DERIVADAS 111 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 = 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 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) 114 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) 115 Symbolic Math Toolbox Calcule a derivada de f ( x ) x x 1 >> 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 Calcule a derivada de f ( x) 2 x x 2 em x = 1, ou seja, f ' (1) 117 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]; 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 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 + 4x^2 + 7x + 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 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 Resolver a equação quadrática 2s 10s 12 0 2 121 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 % 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 123 Programas em MATLAB clc; % 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) 124 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 - n fprintf('\n'); 125 Programas em MATLAB % Exibição do gráfico plot(x,y); % Gráfico em 2-D. title('\bf\itEquaçao Quadratica'); % Titulo do gráfico xlabel('\bf\itx'); % Eixo horizontal ylabel('\bf\ity'); % Eixo vertical 126 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: x1 = -2 x2 = -3 127 Programas em MATLAB 128 ANIMAÇÃO Demonstração Script-file: animacao.m 129 ANIMAÇÃO Demonstração Script-file: animacao1.m 130 ANIMAÇÃO Demonstração Script-file: animacao2.m 131 OBRIGADO!!! 132