29
1 INTRODUÇÃO AO MATLAB 30 e 31 de Maio de 2006. FEIS-UNESP Prof a . Dr a . Erica Regina Marani Daruichi Machado Guilherme Borges Moreira

30 e 31 de Maio de 2006. FEIS-UNESP · abs(x) valor absoluto ou módulo de um n: o. acos(x) ... mostrar e mudar o diretório atual ou fichário. what . Retorna uma listagem de todos

Embed Size (px)

Citation preview

Page 1: 30 e 31 de Maio de 2006. FEIS-UNESP · abs(x) valor absoluto ou módulo de um n: o. acos(x) ... mostrar e mudar o diretório atual ou fichário. what . Retorna uma listagem de todos

1

INTRODUÇÃO AO MATLAB

30 e 31 de Maio de 2006.

FEIS-UNESP

Profa. Dra. Erica Regina Marani Daruichi Machado Guilherme Borges Moreira

Page 2: 30 e 31 de Maio de 2006. FEIS-UNESP · abs(x) valor absoluto ou módulo de um n: o. acos(x) ... mostrar e mudar o diretório atual ou fichário. what . Retorna uma listagem de todos

2

1.INTRODUÇÃO

O MATALB é um ambiente computacional e também uma linguagem de programação, sendo

um software amplamente difundido na área acadêmica. Estudantes de várias universidades do mundo têm utilizado o MATLAB para obter respostas aos seus problemas e principalmente para entender como obtê-las.

Devido à diversidade de aplicações científicas, de engenharia, computação numérica, de análise

e visualização de dados e outras, o MATLAB se tornou o ambiente de computação técnicas de grande versatilidade.

Exemplos de aplicação do MATLAB: Estudante de física analisando e visualizando dados de seus experimentos com campos magnéticos; Controle de sistemas; Processo de codificação e compressão para TV digital; Modelagem de sistemas; Transformadas; Operações elementares; Estatística; Redes Neurais; Lógica Fuzzy...

O ambiente MATLAB permite que o usuário utilize suas funções sem a necessidade de uma programação elaborada. Entretanto, como linguagem de programação permite a construção de ferramentas e funções pelo usuário (são os arquivos *.M).

As TOOLBOXES são coleções de funções úteis relacionadas a um assunto. Essas

TOOLBOXOES são elaboradas por pesquisadores de todo o mundo, em vários campos tais como controle, processamento de sinais, identificação de sistemas,... Neste mini-curso serão apresentados alguns exemplos de TOOLBOXES.

O objetivo do curso é introduzir usuário no ambiente Matlab e apresentar suas ferramentas

básicas. Uma vez conhecido o ambiente, o usuário pode procurar os recursos necessários dentro do próprio Matlab, através dos menus Help. Será apresentado o ambiente do Simulink e ilustradas algumas simulações de instruções básicas.

Por sua simplicidade e clareza, os tópicos, texto e exemplos deste curso foram extraídos do livro

MATLAB Versão Estudante 5.3, Guia do Usuário. Este livro contém instruções básicas do software, que é o objeto deste curso.

2.OPERAÇÕES BÁSICAS - MATEMÁTICA ELEMENTAR

Operação Símbolo Exemplo Adição, a+b + 5+3 Subtração a-b - 23-12 Multiplicação a*b * 3.14*0.85Divisão a÷ b / ou \ 56/8=8\56Potenciação ab ^ 5^2

» 2*3+(5*48)-(4*23) ans = 154 » 56\8 ans = 0.1429

» 8/56 ans = 0.1429

Page 3: 30 e 31 de Maio de 2006. FEIS-UNESP · abs(x) valor absoluto ou módulo de um n: o. acos(x) ... mostrar e mudar o diretório atual ou fichário. what . Retorna uma listagem de todos

3

3.VARIÁVEIS

3.1.DECLARAÇÃO DE VARIÁVEIS Assim como qualquer outra linguagem de programação, o MATLAB tem regras a respeito dos

nomes das variáveis. os nomes das variáveis devem ser palavras únicas, sem inclusão de espaços;

N=1; N1=1; N_a=1

os nomes das variáveis devem começar com uma letra, seguida de um número qualquer de letras, algarismos ou sublinhas.

A12345=10 Rua_2=12 123_rua χ

as variáveis são sensíveis a maiúsculas e minúsculas;

A=3; a=5 ;

B=A+a

caracteres de pontuação não são permitidos.

A!=3 A1&3=2χ

podem conter até 19 caracteres

abcdefgj=1

não é necessário declarar a variável A=3.32+i

se uma instrução for muito longa, coloque (...) seguidas de <ENTER>.

N=1+x2...

+2*x+3

3.2.VARIÁVEIS ESPECIAIS O MATLAB tem diversas variáveis especiais

Ans Nome de uma variável padrão usada para resultados

NAN Não-número E: 0/0

Pi Razão entre o perímetro da circunferência e seu diâmetro

i e j 1ji −==

eps Menor número que, somado a 1, cria um número de ponto flutuante maior que 1 no computador.

Realmin Menor número real positivo utilizável

Inf Infinito, 1/0. Realmax Maior número real positivo utilizável

3.3.REDEFINIÇÃO DE VARIÁVEIS

3.3.1. O COMANDO DE ATRIBUIÇÃO É AUTODESTRUTIVO.

Ao inserir um novo valor na variável o valor antigo é destruído. O MATLAB faz os cálculos utilizando os valores conhecidos no momento em que o cálculo foi solicitado

3.3.2. EXCLUSÃO MANUAL

As variáveis do espaço de trabalho do MATLAB podem ser excluídas incondicionalmente usando-se o comando clear.

» a=3.21+i a =3.2100 + 1.0000i » b=2 b = 2

» a=3 a = 3 » c=a+b c =5

»a=3.21+i a = 3.2100 + 1.0000i » b=2 b = 2

» clear a » c=a+b ??? Undefined function or variable 'a'.

Page 4: 30 e 31 de Maio de 2006. FEIS-UNESP · abs(x) valor absoluto ou módulo de um n: o. acos(x) ... mostrar e mudar o diretório atual ou fichário. what . Retorna uma listagem de todos

4

3.3.3. LISTA DE VARIÁVEIS

Para listar todas as variáveis utilizadas na » who Your variables are: b

área de trabalho digite o comando who.

4.AJUDA ON-LINE

4.1.HELP

Utilizado no caso em que não se sabe o nome do tópico a respeito do qual se necessita de informações. Digite help e a tela descreverá categorias sobre as quais você pode obter ajuda.

4.2.HELP < TÓPICO> Utilizado no caso em que se sabe o nome o tópico a respeito do qual se necessita de informações

» help sqrt SQRT Square root. SQRT(X) is the square root of the elements of X. Complex results are produced if X is not positive See also SQRTM. Overloaded methods help sym/sqrt.m

4.3. COMANDO LOOKFOR

» lookfor complex CONJ Complex conjugate. CPLXPAIR Sort numbers into complex conjugate pairs IMAG Complex imaginary part. REAL Complex real part.

CDF2RDF Complex diagonal form to real block diagonal form. RSF2CSF Real block diagonal form to complex diagonal form.

Utilizado quando não tiver certeza da existência e da grafia exata de um tópico. Este comando fornece ajuda fazendo uma busca em toda primeira linha dos tópicos de ajuda e retornando aqueles que contêm a palavra-chave que você especificou. A palavra chave não precisa ser um comando MATLAB.

4.4.HELP DA BARRA DE MENU Na barra de menus do MATLAB selecione o menu Help e verifique as opções.

Page 5: 30 e 31 de Maio de 2006. FEIS-UNESP · abs(x) valor absoluto ou módulo de um n: o. acos(x) ... mostrar e mudar o diretório atual ou fichário. what . Retorna uma listagem de todos

5

5.CARACTERÍSTICAS CIENTÍFICAS

O MATLAB oferece diversas funções importantes nas ciências em geral. A tabela a seguir apresenta uma lista parcial de funções básicas suportadas por MATLAB.

abs(x) valor absoluto ou módulo de um no acos(x) arco cosseno

acosh(x) arco cosseno hiperbólico angle(x) ângulo de um no complexo asin(x) arco seno asinh(x) arco seno hiperbólico atan(x) arco tangente atan2(x,y) arco tangente em quatro quadrantes ceil(x) arredondar para mais infinito conj(x) conjugado complexo cos(x) cosseno cosh(x) cosseno hiperbólico exp(x) exponencial fix(x) arredondar par zero floor(x) arredondar para menos infinito imag(x) parte imaginária de um no complexo log10 logaritmo na base 10 log(x) logaritmo natural real(x) parte real de um no complexo sqrt(x) raiz quadrada rem(x,y) resto da divisão de x por y round(x) arredondar para o próximo no inteiro sing(x) retorna o sinal do argumento sin(x) seno sinh(x) seno hiperbólico tanh(x) tangente hiperbólica tan(x) Tangente

5.1.HELP DAS FUNÇÕES

Para conhecer saber mais sobre as funções consulte o menu Help elfun.

6.MANIPULAÇÃO DE DADOS 6.1.FORMATOS E VISUALIZAÇÃO DE DADOS – FORMATOS NUMÉRICOS

format short 34.5667 Apresentação padrão format long 34.56666666666666 16 dígitos format short e 3.4567e+001 5 dígitos mais expoente format long e 3.456666666666666e+001 16 dígitos mais expoente format hex 4041488888888888 hexadecimal format bank 34.57 duas casas decimais format rat 1037/30 aproximação racional

O Matlab não altera a representação interna de um número quando optamos por diferentes formatos, somente a visualização é alterada.

6.2.OUTRAS CARACTERÍSTICAS BÁSICAS

• A vírgula indica ao MATLAB para mostrar o resultado; o ponto-e-vírgula suprime a visualização; • A execução do MATLAB pode ser interrompida a qualquer momento pressionando CTRL-C; • O comando quit termina a execução do MATLAB; • Todo texto depois do sinal de porcentagem (%) é considerado um comentário; • Pode-se colocar mais de um comando em uma linha, separando-os por vírgula ou ponto-e-vírgula. • O comando clc apaga os dados da tela, mas não a memória (clear).

6.3.ENTRADA DE DADOS – INPUT

A função input permite a entrada de dados via teclado. Após esta instrução o MATLAB interrompe a execução do programa e espera que o usuário digite algum valor, que pode ser numérico ou literal (este valor deve ser inserido entre plicas ‘ ’) .

» a=input(' ') 'curso' a =curso

» a=input(' ') 15 a =15

6.4.APRESENTAÇÃO DE TEXTOS - DISP Para apresentar textos na tela utiliza-se o comando disp. » disp('Curso de MATLAB')

Curso de MATLAB

Page 6: 30 e 31 de Maio de 2006. FEIS-UNESP · abs(x) valor absoluto ou módulo de um n: o. acos(x) ... mostrar e mudar o diretório atual ou fichário. what . Retorna uma listagem de todos

6

6.5.ARMAZENAMENTO DE DADOS - SAVE X LOAD

Este comando salva todas as variáveis em um arquivo em disco chamado matlab.mat. Para recuperar as variáveis em uma outra seção do MATLAB, pode-se executar o comando load para restaurar o espaço de trabalho com as variáveis de matlab.mat. Podem ser utilizados os comandos save e load em arquivos com outros nomes, ou salvar somente algumas variáveis.

» save dados a b » clear » load dados

Resultado semelhante pode ser obtido utilizando o item de menu Save Workspace as ... e Load Workspace ...do menu FILE.

7. GERENCIAMENTO DE ARQUIVOS O MATLAB apresenta diversos comandos de gerenciamento de arquivos que lhe permitem listar

nomes de arquivos, visualizar e excluir arquivos M, mostrar e mudar o diretório atual ou fichário.

what Retorna uma listagem de todos os arquivos M do diretório dir, ls Lista todos os arquivos do diretório type nome Mostra o arquivo M nome.m na janela de comandos delete nome Exclui o arquivo M nome.m cd, chdir caminho Muda para o diretório dado por caminho cd, pwd Mostra o diretório de trabalho atual which nome Mostra o caminho para o para o diretório nome

8.VETORES E MATRIZES Para criar um vetor ou uma matriz no MATLAB, coloca-se um colchete esquerdo, introduzem-se

os valores desejados separados por espaços ou por vírgulas e em seguida fecha-se o colchete direito. Separando os elementos por espaços ou vírgulas especificam-se elementos de colunas diferentes; separando os elementos com pontos-e-vírgulas especificam-se elementos de linhas diferentes.

8.1.VETORES 8.1.1. VETOR LINHA X VETOR COLUNA

Vetor linha Vetor coluna

» x=[3,2,1,5,6] x = 3 2 1 5 6

» x=[3 2 1 5 6] x = 3 2 1 5 6 7

» x=[3 2 1]' x =3 2 1

» x=[3; 2; 1] x =3 2 1

8.1.2. ESPECIFICAÇÃO DE VETOR POR DOIS PONTOS

Sintaxe: (x0:inc:xf) cria um vetor que começa em x0, incrementa de inc e termina em xf.

Os valores podem ser assumidos em forma decrescente.

Quando o incremento “inc” não é especificado explicitamente, ele assume o valor 1.

» y=0:0.1:0.5 y = 0 0.1000 0.2000 0.3000 0.4000 0 .5000

» y=1:5 y = 1 2 3 4 5

» y=-3:1:1 % ou y=-3:1 y = -3 -2 -1 0 1

Page 7: 30 e 31 de Maio de 2006. FEIS-UNESP · abs(x) valor absoluto ou módulo de um n: o. acos(x) ... mostrar e mudar o diretório atual ou fichário. what . Retorna uma listagem de todos

7

8.1.3. LEITURA DE VETOR

» x=input('') % Leitura de um vetor via teclado [1 2 3 4 5 6] x = 1 2 3 4 5 6

8.1.4. ENDEREÇAMENTO

No Matlab, elementos de conjunto individuais são acessados usando-se subscritos, ou seja, x(1) é o primeiro elemento de x, x(2) é o segundo elemento de x e assim por diante. No exemplo 8.1.2:

» y(4)

ans = 0 » y(2:4) ans = -2 -1 0

» y(2:2:5) ans = -2 0

» y([5 2 4 1]) ans = 1 -2 0 -3

» y(3) ans = -1

8.1.5. OPERAÇÕES COM VETORES

Quando se trata de operações com vetores na multiplicação, divisão e potenciação introduzem um ponto antes do símbolo da operação. Isto indica ao MATLAB que as operações se tratam de vetores e não de matrizes.

» x=(0:0.1:0.5)*pi % multiplica cada elemento por pi x = 0 0.3142 0.6283 0.9425 1.2566 1.5708 » a=-1:2; b=1:3; » c=[a b] c = -1 0 1 2 1 2 3 » d=[a(1:2:4) 5 5 5] d = -1 1 5 5 5 » a-2 ans = -3 -2 -1 0 » 5*a-3 ans = -8 -3 2 7

» a=-4:-1, b=1:4 a = -4 -3 -2 -1 b = 1 2 3 4 » e=a.*b %multiplicação elemento por elementoe = -4 -6 -6 -4 » f=a./b f = -4.0000 -1.5000 -0.6667 -0.2500 » x=input('') %entrada de vetores via teclado [1 2 3 4 5 6] x = 1 2 3 4 5 6

8.1.6. COMANDO LINSPACE

Sintaxe: linspace (primeiro_valor, último_valor, número_de_ valores). Este comando cria um conjunto de valores (vetor) onde é possível determinar o número de pontos, mas não o incremento.

» x=linspace(0,pi,12) x = Columns 1 through 7 Columns 8 through 12 0 0.2856 0.5712 0.8568 1.1424 1.4280 1.7136 1.9992 2.2848 2.5704 2.8560 3.1416

Page 8: 30 e 31 de Maio de 2006. FEIS-UNESP · abs(x) valor absoluto ou módulo de um n: o. acos(x) ... mostrar e mudar o diretório atual ou fichário. what . Retorna uma listagem de todos

8

8.1.7. COMANDO LOGSPACE

Sintaxe: logspace(primeiro_expoente, último_expoente, número_de_ elementos) Este comando cria um conjunto de valores (vetor) com espaçamento logarítmico.

» x=logspace(0,2,11) x = Columns 1 through 7 Columns 8 through 1 1.0000 1.5849 2.5119 3.9811 6.3096 10.0000 15.8489 25.1189 39.8107 63.0957 100.0000

O conjunto começa em 100, termina em 102 e contém 11 elementos. 8.2.MATRIZES

8.2.1. INTRODUÇÃO DE UMA MATRIZ

Pode-se entrar com matrizes no MATLAB de diversas maneiras: • Entrar com uma lista explícita de elementos. • Gerar matrizes utilizando funções e linhas de comando do MATLAB. • Criar matrizes em arquivos-M. • Chamar matrizes de um arquivo de dados externo. • A maneira mais fácil de declarar matrizes é fazendo a explicitação da lista de elementos na linha

de comando, seguindo as convenções abaixo: •Separar os elementos da lista de elementos através de espaços ou vírgulas. •Colocar os elementos entre colchetes, [ ]. •Usar (;) ponto-e-vírgula para indicar o fim de uma linha.

Por exemplo, entrando com a linha de comando.

» A=[1 2 3;4 5 6;7 8 0] A = 1 2 3 4 5 6 7 8 0

» B=[100;213;521] B = 100 213 521

8.2.2. OPERAÇÕES COM MATRIZES

%Divisão de matrizes » x=(A\B)’ % inv(A)*B x =-46.3333 105.6667 -21.6667 %Utiliza a Técnica de fatoração LU e representa a resposta como a divisão esquerda de A por B. O Operador não tem o ponto precedente porque se trata de divisão matricial e não operação de elementos. É mais rápida porque realiza menos cálculos internos. %No caso de sistemas lineares, se houver mais equações do que incógnitas, isto é, em um caso superdeterminado, o uso do operador \automaticamente encontra a solução que minimiza o erro quadrado de (Ax-b=0) (solução dos mínimos quadrados)

% Caso subdeterminado » x=(pinv(A)*B)' x = -46.3333 105.6667 -21.6667 %Obtém-se a solução na qual o comprimento euclidiano ou norma de x é menor do que em qualquer outra solução possível. %A solução é baseada no pseudo-inverso (solução de norma mínima). Alternativamente ou operador de divisão calcula a soluçãoque tem zero para alguns elementos de x.

% Calculo de determinante » A=[1 2 3;4 5 6;7 8 0] » m=det(A) m = 27 % Calculo da inversa » x=inv(A) x = -1.7778 0.8889 -0.1111 1.5556 -0.7778 0.2222 -0.1111 0.2222 -0.1111 %Multiplicação de Matrizes » Y=A*B Y = 2089 4591 2404

Page 9: 30 e 31 de Maio de 2006. FEIS-UNESP · abs(x) valor absoluto ou módulo de um n: o. acos(x) ... mostrar e mudar o diretório atual ou fichário. what . Retorna uma listagem de todos

9

8.2.3. MANIPULAÇÃO MATRICIAL

» A(3,2)=0 % altera o elemento da linha 3 A = % e coluna 2 de 8 para 0 1 2 3 4 5 6 7 0 9 » A(2,5)=1 % coloca 1 na segunda linha A = % e na quinta coluna.Como 1 2 3 0 0 % a matriz A não tem cinco 4 5 6 0 1 % colunas, o tamanho de A 7 0 9 0 0 % é aumentado conforme % necessário e A é % preenchida com zeros.

»A=[1 2 3;4 5 6;7 8 9]; » B=A(3:-1:1,1:3) % ou B=A(3:-1:1,:) B = 7 8 9 % cria uma matriz B 4 5 6 % colocando as linhas da 1 2 3 % matriz A em ordem inversa » C=[A B(:,[1 3])] %matriz A e todas asC = % linhas da matriz B 1 2 3 7 9 %das colunas 1 e 3 4 5 6 4 6 7 8 9 1 3

8.2.4. MATRIZES ESPECIAIS

% matriz nula » x=zeros(3) x = 0 0 0 0 0 0 0 0 0 % matriz unitária %2 linhas,4 colunas » x=ones(2,4) x =1 1 1 1 1 1 1 1 %matriz de elementos iguais » x=ones(3)*pi x =3.1416 3.1416 3.1416 3.1416 3.1416 3.1416 3.1416 3.1416 3.1416 % matriz identidade » x=eye(3) » x=eye(3,2) x =1 0 0 x= 1 0 0 1 0 0 1 0 0 1 0 0

%matriz de elementos iguais » x=ones(3)*pi x =3.1416 3.1416 3.1416 3.1416 3.1416 3.1416 3.1416 3.1416 3.1416 % matriz de no aleatórios » x=rand(3,1) x =0.9501 0.2311 0.6068 % comprimento da matriz » A=-200:pi:100 » size(A) ans = 1 96 % matriz com 1 linha e 96 colunas » length(A) ans = 96 % retorna o comprimento do vetor

» A=[1 2 3 4; 5 6 7 8]; » size(A) ans = 2 4 % 2 linhas e 4 colunas » length(A) % retorna o no de linhasans = 4 % ou o no de colunas, % o que for maior. %encontrar elementos específicos % acha os subscritos (posição) onde a expressão relacional é verdadeira » x=(-3:3) x = -3 -2 -1 0 1 2 3 » k=find(abs(x)>1) k = 1 2 6 7 » A=[1 2 3;4 5 6;7 8 9]; » [i,j]=find(A<5) i =1 j= 1 2 1 1 2 1 3

8.3.HELP DE MATRIZES E VETORES Para conhecer mais funções sobre matrizes consulte o Help matfun (funções com matrizes),

Help elmat (matrizes elementares), Help sparfun.

9.GRÁFICOS 9.1.FUNÇÃO PLOT

Os gráficos constituem um recurso visual poderoso para interpretação de dados. Para iniciar a construção, determina-se inicialmente a variável independente que irá compor o eixo horizontal do gráfico. Depois disso determina-se a variável que irá compor o eixo vertical.

Page 10: 30 e 31 de Maio de 2006. FEIS-UNESP · abs(x) valor absoluto ou módulo de um n: o. acos(x) ... mostrar e mudar o diretório atual ou fichário. what . Retorna uma listagem de todos

10

Características da função plot:

escolhe automaticamente os limites dos eixos, marcar os pontos individuais e desenha linhas retas entre eles.

plota múltiplos conjuntos de dados nos mesmos eixos; utiliza diferentes tipos de linhas; marca somente os pontos de dados sem interliga-los; linhas de grade; coloca nomes nos eixos e títulos; usa cores distintas para diferentes curvas

9.1.1. ESTILOS DE LINHA, MARCADORES E CORES

Símbolo Cor Símbolo Tipo de linha y amarelo . ponto m magenta o círculo c ciano x x-marca r vermelho + mais g verde * asterisco b azul - linha contínua w branco : linha pontilhada k preta -. traços e pontos

-- linha tracejada

» z=cos(x) % duas curvas nos mesmos eixos »plot(x,y,'r-o',x,z,'b-+') % seno (vermelho, ‘o’) , cosseno (azul,‘+’) % nomeia o eixo horizontal »xlabel('x (rad)') % nomeia o eixo vertical » ylabel('Ilustração do comando plot') % coloca um título » title('Funções seno(x) e cosseno(x)') % linhas de grade » grid % limite dos eixos % define os valores máximo e mínimo dos eixos usando um vetor linha »axis([0 6.5 -1 1]) % inserir textos no gráfico »text(2.8,0.53,'sen(x)') % inserir textos no gráfico a partir da posição do cursor (dê um clique na posição desejada) » gtext('cos(x)')

Os textos ‘seno’, ‘cos’ podem ser introduzidos diretamente na figura, assim como a espessura das linhas.

» x=linspace(0,2*pi,30); » y=sin(x); » plot(x,y)

Como exemplo inicial, será ilustrado a função seno no intervalo [0,2π] com 30 pontos.

Page 11: 30 e 31 de Maio de 2006. FEIS-UNESP · abs(x) valor absoluto ou módulo de um n: o. acos(x) ... mostrar e mudar o diretório atual ou fichário. what . Retorna uma listagem de todos

11

9.2.EIXOS

axis([xmin xmax ymin ymax]) define os valores máximo e mínimo dos eixos axis auto retorna o escalamento de eixos para o modo automático padrão:

xmion=min(x), xmax=max(x) axis(axis) congela a escala nos seus limites atuais axis square (‘square’) faz com que o gráfico seja quadrado e não retangular axis on (‘on’) liga nomes de eixos, marcadores e grade axis off (‘off’) desliga todos os nomes de eixos, grades e marcadores axis equal (‘equal’) define os fatores de escalamento para ambos os eixos com sendo iguais

9.3.FIGURE Se você desejar dois ou mais gráficos em diferentes janelas, use o comando figure ou a seleção New figure do menu File, na janela de comandos. O comando figure sem argumentos cria uma nova janela. O comando figure(n) abre uma janela específica de número n.

9.4.COMANDO HOLD ON Permite que seja adicionada mais de uma curva no mesmo gráfico. Quando o hold on é

acionado, o MATLAB não remove as curvas já existentes quando novos comandos plot são emitidos. Em vez disso, ele acrescenta novas curvas nos eixos já existentes. Contudo, se os novos valores não se ajustarem aos limites de eixos em vigor, os eixos podem ser reescalados. Fazendo hold off, libera-se a janela atual para novos gráficos. O comando hold sem argumentos comuta a função entre liga e desliga.

9.5.O COMANDO SUBPLOT O comando subplot(m,n,p), divide a janela atual em uma matriz m por n de áreas gráficas e faz com que

a p-ésima área fique ativa. Os subgráficos são numerados da esquerda para a direita, ao longo da linha superior, daí para a segunda linha.

» y=sin(x); » z=cos(x); »w=[y;z], » a=2*sin(x).*cos(x), » b=sin(x)./(cos(x)+eps) » subplot(2,2,1) » plot(y,z),title('Seno x cosseno' ) » subplot(2,2,2) » plot(x,y,x,2*y.*z, '--'), » title('2Seno(x)cosseno(x)=sen(2x)' ) » subplot(2,2,3) » plot3(y,z,x),grid »title('Gráfico Tridimensional'), »xlabel('sin(x)'), »ylabel('cos(x)'),zlabel('x') » subplot(2,2,4) » plot(x,b), axis([0 2*pi -20 20]), » title('sen(x)/cos(x)')

Page 12: 30 e 31 de Maio de 2006. FEIS-UNESP · abs(x) valor absoluto ou módulo de um n: o. acos(x) ... mostrar e mudar o diretório atual ou fichário. what . Retorna uma listagem de todos

12

9.6.OUTRAS CARACTERÍSTICAS

loglog Mesmo que o plot mas as duas escalas são logarítmicas semilog Escala logarítmica para o eixo x e linear para y semilogy Escala logarítmica para o eixo y e linear para x polar(t,r,s) Coordenadas polares,t é vetor ângulo em radianos, r é o vetor raio, s descreve cor,

marcadores bar(x,y) Gráfico de barras stairs(x,y) Gráfico escada hist(y,n) Desenha um histograma com n divisões do vetor y. hist(y,x) Desenha um histograma usando as divisões especificadas no vetor x. hist(y) Faz um histograma de dez divisões para os dados do vetor y rose(t) Desenha um histograma polar com 20 divisões para os ângulos do vetor t. (t,n), (t,x) stem(y) Cria um gráfico dos pontos de dados de y conectado ao eixo horizontal por uma linha stem(x,y) Cria um gráfico de pontos de dados de y nos valores especificados em x. [x,y]=ginput(n)

Seleciona n pontos de um gráfico em uso por meio do mouse e retorna suas coordenadas nos vetores de coluna x e y. Se n é omitido, pode-se obter um no infinito de pontos até teclar <enter>

fplot(‘fun’,[xmim max])

Cria um gráfico da função fun sobre o intervalo xmin≤x≤xmax com escalamento automático do eixo y. Fplot(‘fun’,[xmim max]) especifica também y. Há restrições de funções. Consulte o Help.

Figura 2

% polares »t=0:0.01:2*pi, »r=sin(2*t).*cos(2*t); »subplot(3,2,1); »polar(t,r), »title ('Gráfico polar'); % gráfico de barras »x=-2.9:0.2:2.9; »y=exp(-x.*x); »subplot(3,2,2); »bar(x,y,'w'); »title('Gráfico de barras') »ylabel('Curva normal'); % gráfico escada »subplot(3,2,3); »stairs(x,y), »title('Gráfico em escadas') »ylabel('Curva normal'); % histograma »subplot(3,2,4); »y=randn(5000,1); »hist(y,x); »title('Histograma de dados Gaussianos'); % hastes »subplot(3,2,5); »y=randn(50,1); »stem(y,':'); »title('Gráfico de haste'), »ylabel('Dados Aleatórios') %função »subplot(3,2,6); »fplot('sin(x)./x',[-20 20 -.4 1.2]) »title('Fplot de sen(x)/x) ') »xlabel('x'),ylabel('f(x)')

»x=linspace(-3,2*pi,330) »y=sin(x).^2./(x+eps); »plot(x,y), »title('Gráfico de sen(x)^2/x') »[a,b]=ginput(4); »hold on »plot(a,b,'bo') »hold off

Page 13: 30 e 31 de Maio de 2006. FEIS-UNESP · abs(x) valor absoluto ou módulo de um n: o. acos(x) ... mostrar e mudar o diretório atual ou fichário. what . Retorna uma listagem de todos

13

9.7.GRÁFICOS TRIDIMENSIONAIS

Formato generalizado: plot3(x1,y1,z1,S1,x2,y2,z2,S2,...), onde xn, yn e zn são vetores ou matrizes e sn especifica as cores, símbolos marcadores e/ou estilos de linhas).

»t=0:pi/50:10*pi

»plot3(sin(t),cos(t),t) »title('Helice'),xlabel('sen(t)') »ylabel('cos(t'),zlabel('t')

9.8.GRÁFICOS DE REDES E SUPERFÍCIE

O Matlab define uma superfície de rede por meio das coordenadas z de pontos acima de uma grade retangular no plano xy. Ele forma um gráfico unindo pontos adjacentes com linhas retas. O resultado se parece com uma rede de pesca com nós nos pontos de dados. Estes gráficos são muito úteis na visualização de grandes matrizes ou para a representação gráfica de funções de duas variáveis.

9.8.1. FUNÇÃO MESHGRID

O primeiro passo para gerar um gráfico de rede de uma função de duas variáveis é gerar matrizes X e Y que consistam em linhas e colunas repetidas, respectivamente, sobre um intervalo das variáveis x e y. Isto pode ser feito pela função meshgrid. [X,Y] = meshgrid(x,y) cria uma matriz x, cujas linhas são cópias do vetor x, e uma matriz Y, cujas colunas são cópias do vetor y. Esse par de matrizes pode então ser usado para calcular funções de duas variáveis usando os recursos convencionais.

» x=-7.5:.5:7.5; y=x; » [X,Y]=meshgrid(x,y); » R=sqrt(X.^2+Y.^2)+eps; » Z=sin(R)./R » mesh(X,Y,Z) » surf(X,Y,Z)

9.8.2. FUNÇÃO SURF

Um gráfico de superfície da mesma matriz Z (usado na função mesh) se parece com o gráfico em rede, exceto pelo fato de que os espaços entre as linhas são preenchidos.

9.8.3. FUNÇÃO PEAKS

Esta função (peaks.m) gera uma matriz quadrada de dados. Os dados são baseados em uma função de duas variáveis e contêm pontos de dados para x e y, no intervalo –3 a 3.

( ) 221y2y2x535x2x21y2 ye

31eyx10ex12yxf −−−−−−= +−−−−+− )()()(),(

Page 14: 30 e 31 de Maio de 2006. FEIS-UNESP · abs(x) valor absoluto ou módulo de um n: o. acos(x) ... mostrar e mudar o diretório atual ou fichário. what . Retorna uma listagem de todos

14

Você pode especificar o tamanho da matriz quadrada de dados gerada por peaks passando-lhe argumentos. Se omitir os argumentos, seu padrão será 31.

»M=peaks(20) »plot(M) »title('Gráfico de Peaks') »mesh(M)

9.8.4. GRÁFICOS DE CONTORNO

Mostram linhas de elevação ou altura constante (um exemplo é o mapa topográfico). Os gráficos de contorno bi e tridimensionais são gerados usando-se as funções contour e controur3, respectivamente.

[x,y,z]=peaks; contour(x,y,z,20); contour3(x,y,z,20);

Outra forma de visualizar informações sobre contorno é usar cores para representar alturas. A

função pcolor mapeia em um conjunto de cores e apresenta a mesma informação do gráfico de contorno, na mesma escala. Exemplo: digite ‘z=peaks’ e em seguida ‘pcolor(z)’. Uma vez que pcolor e contour mostram a mesma informação na mesma escala, é sempre útil superpor os dois.

» [x,y,z]=peaks; » colormap(hot) » pcolor(x,y,z) » shading flat » hold on » contour(x,y,z,20,'k'); » hold off

9.9.HELP DE GRÁFICOS Para conhecer mais funções sobre gráficos consulte Help graphics, Help graph2d, Help

graph3d, Help specgraph.

Page 15: 30 e 31 de Maio de 2006. FEIS-UNESP · abs(x) valor absoluto ou módulo de um n: o. acos(x) ... mostrar e mudar o diretório atual ou fichário. what . Retorna uma listagem de todos

15

10.ANÁLISE DE DADOS

A análise de dados no Matlab é feita em matrizes orientadas por colunas. As diversas variáveis são armazenadas em colunas individuais e cada linha representa uma observação diferente de cada variável. Nesta análise podem ser verificados os valores críticos do conjunto, como o valor máximo, o mínimo, o valor médio, a covariância, a correlação...

» a=20:-1:0 » b=linspace(-1,9,length(a)); » c=linspace(10,100,length(a)); » x=[a',b',c'] % média de cada coluna » media=mean(x) %media das três colunas » m_media=mean(media) m_media = 23

» maximo=max(x) % valor máximo de cada coluna maximo = 20 9 100 » [maximo,p]=max(x) %Indica o valor máximo e maximo = 20 9 100 %o local onde ocorreu p = 1 21 21 » [minimo,q]=min(x) % Indica o valor mínimo e o minimo = 0 -1 10 % local onde ocorreuq = 21 1 1

10.1.HELP DE ANÁLISE DE DADOS Para conhecer mais funções de análise de dados consulte Help datafun.

11.POLINÔMIOS 11.1.RAÍZES X POLINÔMIO

Achar as raízes de um polinômio é encontrar os valores para os quais o polinômio é igual a zero. No Matlab, um polinômio é representado por um vetor de linha dos seus coeficientes em ordem decrescente. As raízes do polinômio são obtidas pelo comando roots. O Matlab adota como convenção colocar os polinômios como vetores de linha e as raízes como vetores de coluna. Dadas às raízes de um polinômio, também é possível construir o polinômio associado, através do comando poly.

» p=[1 -12 0 25 116]; » r=roots(p) r = 11.7473 2.7028 -1.2251 + 1.4672i

11.2.OPERAÇÕES COM POLINÔMIOS

-1.2251 - 1.4672i

» pp=poly(r) pp = 1.0000 -12.0000 -0.0000 25.0000 116.0000

» a=[1 2 3 4]; » b=[1 2 9 16]; » s=a+b % adição s = 2 4 12 20

» e=s+[0 0 1 s(4)] e = 2 4 13 40 » [q,r]=deconv(e,b) % divisão q = 2 % quociente

r = 0 0 -5 8 % resto da divisão

% Multiplicação polinomial » c=conv(a,b) % convolução »c = 1 4 16 44 67 84 64 »x=linspace(-1,3); »p=[1 4 -7 -10]; % calcula o valor de p(x) nos valores x »v=polyval(p,x) % armazena os valores em v »plot(x,v) »title('x^3+4x^2-7x-10'), xlabel('x')

Page 16: 30 e 31 de Maio de 2006. FEIS-UNESP · abs(x) valor absoluto ou módulo de um n: o. acos(x) ... mostrar e mudar o diretório atual ou fichário. what . Retorna uma listagem de todos

16

11.3.HELP DE POLINÔMIOS Para conhecer mais funções de análise de dados consulte Help polyfun.

12.AJUSTE DE CURVAS E INTERPOLAÇÃO Em diversas áreas do conhecimento, com freqüência é necessário descrever os dados obtidos

experimentalmente por meio de uma função analítica. Há duas alternativas pra resolver o problema: interpolação e ajuste de curvas ou regressão.

12.1.AJUSTE DE CURVAS Para o Matlab, o melhor ajuste de curvas é interpretado como sendo a minimização da soma do

erro quadrado dos pontos de dados e a curva utilizada é restrita a polinômios. Matematicamente falando, isso é denominado ajuste de curvas a um polinômio pelo mínimo quadrado (abreviação da minimização da soma do erro quadrado). Este método tem como objetivo achar alguma curva suave que “melhor se ajuste” aos dados, mas que não necessariamente passe por quaisquer dos pontos.

A função polyfit resolve o problema do ajuste de curvas pelo método dos mínimos quadrados. A escolha da ordem do polinômio é de certa forma, arbitrária. Necessita-se de dois pontos para

definir uma reta ou um polinômio de primeira ordem. Necessita-se de três pontos para definir um polinômio quadrático ou de segunda ordem. Seguindo-se essa progressão, necessita-se de n+1 pontos de dados para especificar de forma única um polinômio de ordem n. No exemplo acima, onde há 11 pontos, poderíamos escolher um polinômio até a décima ordem. Entretanto, das as propriedades dos polinômios de ordem superior, não se deve escolher a ordem com um valor mais alto que o necessário.

Além disso, à medida que a ordem do polinômio aumenta, a aproximação torna-se menos suave, já que os polinômios de ordem superior podem ser derivados mais vezes até que se tornem zero.

» x=[0:0.1:1]; » y=[-0.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2]; » n=2; » p=polyfit(x,y,n) p = -9.8108 20.1293 -0.0317 % cria os dados para o eixo xi » xi=linspace(0,1,100); » z=polyval(p,xi); % calcula o polinômio p nos pontos de xi % 03170x129320x81089y 2 ... −+= −» plot(x,y,'o',x,y,xi,z,':') »pp=polyfit(x,y,10) »zz=polyval(pp,xi) »plot(xi,zz,'-') »xlabel('x'), ylabel ('y=f(x)') »title('Ajuste de Curva') » xlabel('x'), ylabel ('y=f(x)') » title('Ajuste de Curva’)

12.2.INTERPOLAÇÃO

A interpolação é definida como sendo uma forma de estimar os valores de uma função entre aqueles fornecidos por um conjunto de dados. A interpolação é uma ferramenta valiosa quando não se pode calcular rapidamente a função nos pontos intermediários desejados. Por exemplo, isso ocorre quando os pontos de dados resultam de medições experimentais ou de procedimentos computacionais demorados.

Page 17: 30 e 31 de Maio de 2006. FEIS-UNESP · abs(x) valor absoluto ou módulo de um n: o. acos(x) ... mostrar e mudar o diretório atual ou fichário. what . Retorna uma listagem de todos

17

12.2.1. INTERPOLAÇÃO LINEAR

A interpolação linear considera que os valores intermediários caem em uma linha reta entre os pontos definidos. Com certeza, à medida que se têm mais pontos de dados e a distância entre eles diminui, a interpolação linear torna-se mais precisa.

Considere o exemplo de registro de temperatura. Foram realizadas algumas medidas de temperatura ao longo de um dia e deseja-se estimar o valor da temperatura em horários diferentes dos que foram realizadas as medidas.

» h=1:12 % horário das medições % valores lidos em graus Celsius » t=[5 8 9 15 25 29 31 30 22 25 27 24] » plot(h,t,h,t, '+') » xlabel('Hora'),ylabel('Graus Celsius') » t1=interp1(h,t,9.3) » t2=interp1(h,t,[3.2 6.5 7.1 11.7]) » t1 =22.9000 » t2 =10.2000 30.0000 30.9000 24.9000 »[a,b]=ginput(1) % seleciona um ponto da curva

12.2.2.INTERPOLAÇÃO CÚBICA

Em vez de pressupor que uma linha reta conecta os pontos de dados, podemos considerar que alguma curva suave se ajusta a eles. A suposição mais comum é a de que um polinômio de terceira ordem, isto é, um polinômio cúbico, seja usado para modelar cada segmento entre pontos consecutivos e que a inclinação de cada polinômio cúbico se ajuste nos pontos dados. Este tipo de interpolação é chamado de splines cúbicas ou apenas splines.

A função interp1 possui algumas restrições: não se pode pedir resultados fora da variável independente; a variável independente tem que ser monotônica (crescente ou decrescente).

» h=1:12 » t=[5 8 9 15 25 29 31 30 22 25 27 24] » hh=1:0.1:12 » tt=interp1(h,t,hh,'spline') » plot(h,t,h,t, '+',hh,tt) » xlabel('Hora'),ylabel('Graus Celsius'),title('Temperatura') » t1=interp1(h,t,9.3,'spline') t1 =21.8577 » t2=interp1(h,t,[3.2 6.5 7.1 11.7],’spline’) t2 =9.6734 30.0427 31.1755 25.3820

12.2.3.INTERPOLAÇÃO BIDIMENSIONAL

A interpolação bidimensional interpola funções de duas variáveis, z=f(x,y). Utilize a função interp2.

12.3.HELP DE GRÁFICOS

Para conhecer mais sobre funções de interpolação consulte Help polyfun.

13.PROGRAMAÇÃO Os programas podem ser redigidos no editor de texto e salvos como um arquivo.m. Para executar

o programa basta digitar o seu nome área de trabalho do Matlab. Se necessário, mude o diretório da

Page 18: 30 e 31 de Maio de 2006. FEIS-UNESP · abs(x) valor absoluto ou módulo de um n: o. acos(x) ... mostrar e mudar o diretório atual ou fichário. what . Retorna uma listagem de todos

18

área de trabalho para a pasta onde está armazenado o programa. A área de trabalho padrão utiliza a pasta Work, do Maltab.

% Programa apresentacao.m clear clc disp 'Execução de programas no Matlab' disp( ' ') disp 'Conversão de graus para radianos' x=input('Digite o valor de x em graus: ') disp 'Valor de x em radianos ' x=x*pi/180

As linguagens de programação de computadores apresentam características que permitem o controle de fluxo de execução de comando, com base em estruturas de tomada de decisões. O controle de fluxo é um recurso poderoso, pois permite que cálculos feitos anteriormente influenciem operações futuras.

Como estas estruturas freqüentemente envolvem diversos comandos Matlab, elas em geral aparecem em arquivos M, em vez de serem introduzidas diretamente no prompt do Matlab.

13.1.LOOPS FOR

Os loops for (repetição determinística) possibilitam que uma série de comandos seja repetida por um número de vezes fixo e predefinido. A forma geral do loop for é

» apresentacao

for x= xi:xp:xf Comandos end

%% programa loopfor_1.m for n=1:1:10 x(n)=sin(n*pi/10); end

%% programa loopfor_1.m for n=1:1:10

x(n)=sin(n*pi/10); n=10 % não causará nenhum efeito end

Um loop for não pode ser terminado reatribuindo-lhe a variável de loop dentro do loop for

%%%%%%% programa loopfor_2.m dados=[ 3 9 45 6; 7 16 -1 5]; for n=dados x=n(1)-n(2)

13.2.LOOPS WHILE

Ao contrário do loop for, que executa um grupo de comandos um número fixo de vezes, o loop while executa um grupo de comandos um número indefinido de vezes. Forma geral do loop while:

end

Qualquer conjunto válido Matlab é aceitável no loop for.

Os comandos entre as instruções while e end são executados enquanto todos os elementos em expressão forem verdadeiros.

while expressão Comandos end

%%%%%%% programa loopwhile_1.m num=0;eps=1; while (1+eps)>1 eps=eps/2; num=num+1; end

Page 19: 30 e 31 de Maio de 2006. FEIS-UNESP · abs(x) valor absoluto ou módulo de um n: o. acos(x) ... mostrar e mudar o diretório atual ou fichário. what . Retorna uma listagem de todos

19

13.3.IF-ELSE-END Em diversas situações, as seqüências de comandos têm de ser executadas condicionalmente, com

base em um teste relacional.

13.4.FUNÇÕES DE ARQUIVO M Quando utilizamos funções do Matlab como inv, abs, angle e sqrt, o Matlab toma as variáveis que foram

definidas, calcula os resultados desejados usando sua entrada e depois devolve os resultados. Os comandos executados pela função, assim como quaisquer variáveis intermediárias criadas por esses comandos, encontram-se ocultos. Apenas os dados de entrada e saída são disponíveis.

Essas propriedades fazem das funções ferramentas muito poderosas para executar comandos que incluem dentro deles funções matemáticas úteis ou seqüências de comandos que apareçam freqüentemente quando algum problema de maior porte estiver sendo resolvido. Devido à deste recurso, o MATLAB apresenta uma estrutura que lhe permite criar suas próprias funções na forma de arquivos M armazenados em seu computador. Um arquivo M de função é semelhante a um arquivo de instrução, pois se trata também de um arquivo-texto com extensão.m. Assim como no caso dos arquivos M de instrução, os arquivos M de função não são introduzidos a partir da janela de comandos, mas sim de arquivos textos externos criados com um editor de texto. A primeira linha de uma função M define o arquivo M como uma função, especifica seu nome e os nomes de suas variáveis de entrada e saída.

13.5.CRIANDO UMA FUNÇÃO Digite no editor de texto do Matlab a função “operacao” mostrada abaixo. Salve o arquivo como

operacao.m no diretório de trabalho. Em seguida faça o teste

function y = fliplr(x) %FLIPLR Flip matrix in left/right direction. %FLIPLR(X) returns X with row preserved and columns flipped in the left/right direction % X = 1 2 3 becomes 3 2 1 % 4 5 6 6 5 4 if ndims(x)~=2, error('X must be a 2-D matrix.'); end [m,n] = size(x); y = x(:,n:-1:1);

function r=operacao(x) r=x^2+2*x+x^(1/2);

» x=4; » operacao(x) ans = 26

function r=operacao2(x,y,z) r=x^2+2*y+z^(1/2);

» x=3;y=2;z=1; » operacao2(x,y,z) ans = 14

if condição Comandos end

if condição Comandos_v else Comandos_f end

if condição_1 comandos_1 elseif condicao_2 comandos_2 elseif condicao_3 comandos_3 else if … else Comandos end

%%% programa ifthen_1.m idade=input('Digite a idade: ') if idade<=14 disp ('Criança') elseif idade>14 & idade<=18 disp ('Adolescente') elseif idade>18 & idade<=60 disp ('Adulto') else disp('Idoso') end

Page 20: 30 e 31 de Maio de 2006. FEIS-UNESP · abs(x) valor absoluto ou módulo de um n: o. acos(x) ... mostrar e mudar o diretório atual ou fichário. what . Retorna uma listagem de todos

20

13.6.HELP DE PROGRAMAÇÃO Para saber mais sobre instruções de programação consulte Help lang.

14.SIMULINK Simulink é um software para modelagem, simulação e análise de sistemas dinâmicos. Ele suporta

sistemas lineares e não lineares, modelados em tempo contínuo, discreto ou híbrido. Para modelagem, SIMULINK fornece uma interface gráfica para construção de modelos em diagramas de blocos, usando operações de clique-e-arrasta do mouse. O software contém um bloco de biblioteca de fontes, componentes lineares, não lineares e conectores. Depois que o modelo é definido, ele pode ser simulado usando um método de integração a ser escolhido na janela de comandos do Matlab.

14.1.BIBLIOTECA

Após ativar o Simulink na barra de ferramentas do Matlab será apresentada a janela de menus do Simulink. Crie um novo modelo. Será apresentada uma nova janela em branco (janela de modelo) onde serão inseridos os blocos do modelo.

14.2.CONSTRUÇÃO DE UM MODELO Será ilustrado a evolução da função ‘sen(x(t))’, ‘sen(2x(t))’ e ‘| sen(x(t))| ’ .

Na janela de menus selecione Simulink, seguida Sources e depois escolha Signal Generator block. Arraste o bloco para dentro da janela de modelo e escolha a função sin(x) (dê dois cliques do bloco). faça uma cópia deste bloco e escolha a função cos(x). no menu Sinks, repita o procedimento para Scope (osciloscópio), To Workspace (armazenador) o ganho é obtido no menu Math, e o mux no menu Signal & Systems. conecte as entradas e saídas dos blocos, como ilustra a figura. Ajuste os parâmetros na opção Parameters ( tempo inicial, final e método de simulação) do menu

Simulation; digite a=3, na tela de trabalho do Matlab. Inicie a simulação selecionando Start no menu Simulation da janela de modelo.

Page 21: 30 e 31 de Maio de 2006. FEIS-UNESP · abs(x) valor absoluto ou módulo de um n: o. acos(x) ... mostrar e mudar o diretório atual ou fichário. what . Retorna uma listagem de todos

21

Nesta simulação foram armazenados os valores do sen(x), na variável valores_sin, os valores de sen(x)*3, na variável valores_ganho, os valores de |sen(x)|, na variável valores_abs e os valores do tempo, armazenados na variável tempo. Estas variáveis podem ser utilizadas normalmente no Matlab e todas tem o mesmo número de componentes.

» length(tempo) ans = 61 » [tempo(1:5) valores_sin(1:5) valores_ganho(1:5) valores_abs(1:5)] ans = 0 0 0 0 0.0000 0.0000 0.0000 0.0000 0.0600 0.3681 1.1044 0.3681 0.1200 0.6845 2.0536 0.6845 0.1800 0.9048 2.7145 0.9048 »plot(tempo,valores_sin,'bo',tempo,valores_ganho,'r+',tempo,valores_abs,'g')

15.MATEMÁTICA SIMBÓLICA Expressões simbólicas são strings de caracteres ou conjuntos de strings de caracteres que

representam número, funções, operadores e variáveis. As variáveis não necessitam ter valores predefinidos. Equações simbólicas são expressões simbólicas quem contêm um sinal de igualdade. A aritmética simbólica é a prática de resolução dessas equações por meio da aplicação de regras conhecidas e de identidade a determinados símbolos, exatamente da forma como se resolve em álgebra ou cálculo.

15.1.REPRESENTAÇÃO DE EXPRESSÕES SIMBÓLICAS As funções simbólicas do MATLAB possibilitam manipular essas expressões de diversas formas:

% derivada de cos(x) em relação a x % representação implícita » diff('cos(x)') ans =-sin(x) % cria uma matriz simbólica, representação explícita: uso obrigatório de sym » M=sym('[a,b;c,d]') M =[ a, b] [ c, d]

% encontra o determinante da matriz simbólica M » determ(M) ans =a*d-b*c % string de caracteres (não usa sym) » M=('[a,b;c,d]') M =[a,b;c,d]

15.2.VARIÁVEIS SIMBÓLICAS

Quando se trabalha com expressões simbólicas contendo mais de uma variável, uma variável é a variável independente. Se não for dito ao MATLAB qual variável é a independente, ele seleciona um baseado na regra seguinte:

O caractere padrão escolhido é x. Se não existir x, aquele mais próximo de x, alfabeticamente falando, é escolhido. Se houver empate, o caractere posterior no alfabeto será o escolhido.

Ex: ‘1/(5+cos(x)’) variável livre: x ‘3*y+z’ variável livre: y ‘sin(pi/4)-cos(3/5)’ variável livre: x ‘a+sin(t)’ variável livre: t

Page 22: 30 e 31 de Maio de 2006. FEIS-UNESP · abs(x) valor absoluto ou módulo de um n: o. acos(x) ... mostrar e mudar o diretório atual ou fichário. what . Retorna uma listagem de todos

22

15.2.1.ESPECIFICANDO A VARIÁVEL INDEPENDENTE

% deriva em relação a ‘n’ » diff('sin(omega)*a+t') » diff('x^n','n') ans = 1 ans = x^n*log(x) % deriva em relação a ‘omega’

» diff('sin(omega)*a') » diff('sin(omega)*a+t','omega') ans = cos(omega)*a ans = cos(omega)*a

15.3.OPERAÇÕES ALGÉBRICAS PADRÃO 15.3.1.OPERAÇÕES AVANÇADAS

»f='2*x^2+3*x-5'; »g='x^2-x+1' % expressão simbólica »symadd(f,g) % soma de expressões simbólicas ans =3*x^2+2*x-4 »symmul(f,g) % multiplicação de expressões simbólicas ans = x^2+4*x-6 »symdiv(f,g) % divisão de expressões simbólicas ans =(2*x^2+3*x-5)/(x^2-x+1) »sympow(f,’3’) % encontra a expressão simbólica para f^3 ans =(2*x^2+3*x-5)^3

» f='cos(x)'; g='sin(2*x)'; % cria funções simbólicas % encontra a expressão para f(g(x)) » compose(f,g) » symop(f, '/',g,'+',3) % combina as duas ans =1/(1+sin(x)^2) ans =cos(x)/sin(2*x)+3 %dados h(u), k(v),encontre h(k(v))

» f=sym('1/(1+x^2)');g=sym('sin(x)' » compose(h,k,'u','v') » h=sym('1/(1+u^2)');k=sym('sin(v)'); ans =1/(1+sin(v)^2)

15.3.2.FUNÇÃO INVERSA

A função inv(x) calcula a inversa de x, seja x simbólico ou numérico. O inverso funcional é calculado pela função finverse(x). O inverso funcional, digamos f(x), é a expressão g(x) que satisfaz a condição g(f(x))=x. Por exemplo, o inverso funcional de ex é ln(x), já que ln(ex ) =x. O inverso funcional de sen(x) é arcsen(x). O inverso funcional de (1/tan(x)) é arctan(1/x).

» inv(sym('1/x')) » finverse(sym('a*x+b')) % solução para ‘g(f(x))=x’ ans =x

» finverse(sym('1/x')) % o inverso de 1/x é 1/x ans =-(b-x)/a ans =1/x % já que ‘1/(1/x) =x’

» t=sym('a*b+c*d-a*z') t =a*b+c*d-a*z » finverse(sym('x^2')) Warning: finverse(x^2) is not unique. » finverse(t,'a') ans = x^(1/2) ans =-(c*d-a)/(b-z) % solução para ‘g(f(a))=a’

15.3.3.SOMATÓRIA DE SÉRIES » f=sym('(2*n-1)^2');

∑−1x

0

2x ∑ −n

0

2)1n2(» f=sym('x^2'); » symsum(f,1,'n') » symsum(f) ans = 11/3*n+8/3-4*(n+1)^2+4/3*(n+1)^3 ans = 1/3*x^3-1/2*x^2+1/6*x » factor(ans) %muda a forma da resposta

ans =1/3*n*(2*n-1)*(2*n+1)

Page 23: 30 e 31 de Maio de 2006. FEIS-UNESP · abs(x) valor absoluto ou módulo de um n: o. acos(x) ... mostrar e mudar o diretório atual ou fichário. what . Retorna uma listagem de todos

23

15.4. FUNÇÕES DE CONVERSÃO Serão apresentadas algumas funções que convertem expressões simbólicas em valores numéricos

e vice-versa. Algumas funções simbólicas automaticamente convertem um número em sua representação simbólica caso ele seja um dos argumentos da função.

15.4.1.FUNÇÃO NUMERIC

A função sym pode receber um argumento numérico e converte em uma representação simbólica. A função numeric faz o contrário. Ele converte uma constante simbólica (expressão simbólica sem variáveis) em um valor numérico.

15.4.2.FUNÇÃO EVAL

Calcula uma string de caracteres. Dessa forma, eval é outra função que pode ser usada para converter uma constante simbólica em um número, ou calcular uma expressão.

15.4.3.FUNÇÃO POLY2SYM X SYM2POLY

» phi=sym('(1+sqrt(5))/2') » f=sym('2*x^2+x^3-3*x+5'); » numeric(phi) % converte em valor um numérico » n=sym2poly(f) % extrai o vetor de coeficientes ans = 1.6180 n = 1 2 -3 5 » eval(phi) ans = 1.6180 » poly2sym(n) % recria o polinômio em x » poly2sym(n,'s') % recria o polinômio em s ans =2*x^2+x^3-3*x+5 ans =s^3+2*s^2-3*s+5

A função simbólica sym2poly converte um polinômio simbólico em seu vetor de coeficientes equivalente no MATLAB. A função poly2sym faz o inverso e possibilita especificar a variável a ser usada na expressão resultante.

15.5.SUBSTITUIÇÃO DE VARIÁVEIS A função subs permite mudar a variável em uma expressão simbólica. O formato é

subs(f,novo,antigo), sendo f uma expressão simbólica e novo e antigo caracteres ou outras expressões simbólicas.

» f='a*x^2+b*x+c'; » subs(f,'s','x') % substitui ‘x’ por ‘s’ na expressão f ans =a*s^2+b*s+c

15.6.DERIVAÇÃO

A derivação de uma expressão simbólica usa da função diff em uma dentre quatro formas:

» f='a*x^3+x^2-b*x-x'; % expressão simbólica » F=sym('[a*x,b*x^2;c*x^3,d*x]');% matriz simbólica » diff(F) % deriva os elementos em relação a x

» diff(f) % deriva em relação ao padrão (x) ans =[ a, 2*b*x] ans =3*a*x^2+2*x-b-1 [ 3*c*x^2, d] » diff(f,'a') % deriva f em relação a ‘a’ » M=[(1:8).^2] % cria um vetor ans =x^3 M = 1 4 9 16 25 36 49 64 » diff(f,2) % deriva f 2 vezes em relação a ‘x’ » diff(M) %encontra a diferença entre os elementos ans =6*a*x+2 ans = 3 5 7 9 11 13 15

» diff(f,'a',2) % deriva f 2 vezes em relação a ‘a’ ans =0

Page 24: 30 e 31 de Maio de 2006. FEIS-UNESP · abs(x) valor absoluto ou módulo de um n: o. acos(x) ... mostrar e mudar o diretório atual ou fichário. what . Retorna uma listagem de todos

24

15.7.INTEGRAÇÃO

A função de integração int(f), onde f é uma expressão simbólica, tenta encontrar outra expressão simbólica F tal que diff(F)=f. A integral ou antiderivada talvez não exista em forma fechada, ou pode existir mas o software não consegue achá-la, ou o software pode achá-la eventualmente, mas não consegue terminar o cálculo por falta de memória ou tempo. Quando o MATLAB não pode encontrar a antiderivada, ele devolve o comando sem ser processado. Como a função de derivada, a função de integração tem mais de uma forma.

» f=sym('sin(s+2*x)'); %função simbólica » int(f,'s',pi/2,pi) % integra em relação a s de π/2 a π» int(f) %integra em relação a x ans =-1/2*cos(s+2*x)

ans =2*cos(x)^2-1-2*sin(x)*cos(x) » f=sym('[a*x,b*x^2;c*x^3,d*s]'); » int(f,'s') %integra em relação a s » int(f) % integra os elementos de um conjunto

ans =-cos(s+2*x) » int(f,pi/2,pi) % integra em relação a x de π/2 a π

ans =[ 1/2*a*x^2, 1/3*b*x^3] ans =-cos(s) [ 1/4*c*x^4, d*s*x]

15.8.FUNÇÃO SOLVE

Essa função avalia a o string de caracteres simbólicos com apenas uma variável para o valor, no qual a função é definida como igual a zero. A função solve(f), onde f é função de x, calcula x para f(x)=0.

» solve('(3*x^2+2*x+1)=(5*x+12)') » v=sym('-10*t+20'); ans =[ 1/2+1/6*141^(1/2)] [ 1/2-

1/6*141^(1/2)] » solve(v) %encontrar o valor de t quando v(t)=0 » numeric(ans) ans =2 ans = 2.4791 -1.4791

15.9.REPRESENTAÇÃO GRÁFICA DE EXPRESSÕES SIMBÓLICAS

15.10.FORMATAÇÃO E SIMPLIFICAÇÃO DE EXPRESSÕES

Às vezes, o MATLAB retorna uma expressão simbólica que é difícil de ler. Entretanto, há diversas ferramentas disponíveis para ajudar a tornar a expressão mais legível.

15.10.1.FUNÇÃO PRETTY

Tenta exibir uma expressão simbólica de forma semelhante as dos livros de matemática.

As expressões simbólicas podem ser apresentadas em muitas formas equivalentes. Algumas

formas podem ser preferíveis a outras em diferentes situações.

A função ezplot traça o gráfico de uma função simbólica dada no domínio –2*π ≤ t≤ 2*π e escala o eixo y de forma adequada.

» y=sym('-5*t^2+20*t+30'); » ezplot(y) % cria um gráfico a partir da função »ezplot(y,[0 6]) % cria o gráfico e limita o eixo

» f=taylor(sym('log(x+1)/(x-5)')) f = -1/5*x+3/50*x^2-41/750*x^3+293/7500*x^4-1207/37500*x^5

» g=int(sym('log(x)/exp(x^2)')) » pretty(g)

Page 25: 30 e 31 de Maio de 2006. FEIS-UNESP · abs(x) valor absoluto ou módulo de um n: o. acos(x) ... mostrar e mudar o diretório atual ou fichário. what . Retorna uma listagem de todos

25

15.10.2.FUNÇÃO SIMPLIFY

%representa como um produto de polinômios %cria uma função » factor(ans) » f=sym('(x^2-1)*(x-2)*(x-3)')

f =(x^2-1)*(x-2)*(x-3) ans =(x-1)*(x-2)*(x-3)*(x+1)

%reúne todos os termos semelhantes » expand(f) % distribui o produto nas somas » collect(f) ans =x^4-5*x^3+5*x^2+5*x-6 ans = x^4-5*x^3+5*x^2+5*x-6 %muda para a representação aninhada » horner(ans) ans =-6+(5+(5+(-5+x)*x)*x)*x

É uma ferramenta poderosa, de utilização geral, que tenta simplificar uma expressão pela aplicação de muitos tipos diferentes de identidades algébricas envolvendo somas, potências inteiras e fracionárias, funções trigonométricas, exponenciais, logarítmicas, funções de Bessel, hipergeométricas e gama.

15.10.3. FUNÇÃO SIMPLE

É uma das mais poderosas, mas a menos ortodoxa de todas as ferramentas de simplificação. A função simple tenta usar várias ferramentas diferentes de simplificação e seleciona a forma que tem o menor número de caracteres na expressão resultante. Algumas vezes é útil usar simple mais de uma vez, a fim de tentar uma operação de simplificação diferente ao da primeira.

» simplify(sym('log(2*x/y)')) » f=sym('(1/x^3+6/x^2+12/x+8)^(1/3)'); » simple(f) % serão apresentadas algumas ans =log(2)+log(x/y) ans = (2*x+1)/x %passagens antes do resultado » simplify(sym('sin(x)^2+3*x+cos(x)^2-5'))» simple(ans) ans =-4+3*x

ans =2+1/x

15.11.FRAÇÕES PARCIAIS As funções simbólicas do MATLAB podem ser usadas para converter uma expressão simbólica

em sua representação fracionária parcial. Dado um polinômio racional f, int(f) integrará a função e geralmente separará os termos. Então, diff(ans) derivará cada termo a fim de obter a expressão original f na forma de uma

soma de termos, que é a representação de função em frações parciais.

» y=sym('(10*s^2+40*s+30)/(s^2+6*s+8)'); » g='(x^3+5)/(x^2-1)'; % encontra a representação fracionária de y » diff(int(g)) » diff(int(y)) ans = x+3/(x-1)-2/(1+x) ans =10-15/(s+4)-5/(s+2) » pretty(ans) 3 2 » pretty(ans) x + ----- - -----

x - 1 1 + x

15.12.LATEX E FORTRAN

O comando latex é útil para quem usa o programa LaTeX para processamento de texto ou editoração eletrônica. Esse comando retorna o código LaTeX necessário para criar a expressão que você fornecer e pode ainda armazenar o código LaTeX em um arquivo. O comando fortran produz o código da linguagem de programação FORTRAN.

» f = taylor(sym('log(1+x)') ); » latex(f) % produz o código LaTeX da função ans =x-1/2\,{x}^{2}+1/3\,{x}^{3}-1/4\,{x}^{4}+1/5\,{x}^{5}

Page 26: 30 e 31 de Maio de 2006. FEIS-UNESP · abs(x) valor absoluto ou módulo de um n: o. acos(x) ... mostrar e mudar o diretório atual ou fichário. what . Retorna uma listagem de todos

26

% produz o código fortran da expressão simbólica f » fortran(f) ans = t0 = x-x**2/2+x**3/3-x**4/4+x**5/5

15.13.INSTRUÇÃO DIGITS O Matlab se baseia exclusivamente na aritmética de ponto flutuante do computador para o

processamento dos números. Embora sejam rápidas, as operações de ponto flutuante são limitadas pelo número máximo de dígitos e podem introduzir erros de arredondamento em cada operação; elas não podem produzir resultados exatos.

A precisão relativa das operações aritméticas individuais em Matlab é cerca de 16 dígitos de precisão a menos que se redefina o número de dígitos (n) pela instrução digits(n). A conseqüência do aumento do número de dígitos é o aumento do tempo total de processamento, embora a visualização dos resultados não seja alterada. A instrução vpa permite visualizar os dados na precisão desejada.

» format long » vpa('pi') % precisão digits (20) » pi ans =3.1415926535897932385 ans = 3.14159265358979

» vpa('pi',30) % apresenta o resultado com 30 dígitos » digits ans =3.14159265358979323846264338328 Digits = 16 » A=sym('[1/4,log(sqrt(2));exp(1),3/7]'); » vpa('pi') % precisão digits

(16) » vpa(A,8) ans =3.141592653589793 ans = [ .250000000000000000, .346573590279972655]» digits(20) [ 2.71828182845904524, .428571428571428571]

15.14.RESOLUÇÃO DE EQUAÇÕES

O Matlab permite resolver equações simbólicas usando-se ferramentas simbólicas. Se a expressão não for uma equação (não contiver um sinal de igualdade), a função solve define a expressão simbólica como sendo igual a zero antes de resolvê-la.

» solve('a*x^2+b*x+c') % raízes da equação » e1='d+(c+u)/2=v'; e2='u=c+d+v-10'; ans =[ 1/2/a*(-b+(b^2-4*a*c)^(1/2))] » e3='v+d=u+c/4'; e4='v+u=c+8*d-1'; [ 1/2/a*(-b-(b^2-4*a*c)^(1/2))] » [x1,x2,x3,x4]=solve(e1,e2,e3,e4,'u,c,d,v') » solve('a*x^2+b*x+c', 'b') % resolve para b x1 =8 ans =-(a*x^2+c)/x x2 =3

x3 =16 » f=solve('cos(x)=sin(x)') x4 =15 f =1/4*pi

15.15.EQUAÇÕES DIFERENCIAIS A função dsolve encontra soluções simbólicas para equações diferenciais ordinárias. A sintaxe

de dsolve é um pouco diferente da maioria das outras funções. As equações são definidas usando-se a letra D para significar derivação e D2 e D3 etc. para significar derivações repetidas.

Quaisquer letras após D maiúsculo são consideradas variável dependente. A equação d2y/dx=0 é representada pela expressão simbólica D2y=0. A variável independente pode ser especificada ou então será tomada pelo padrão seguindo-se a regra do symvar.

Page 27: 30 e 31 de Maio de 2006. FEIS-UNESP · abs(x) valor absoluto ou módulo de um n: o. acos(x) ... mostrar e mudar o diretório atual ou fichário. what . Retorna uma listagem de todos

27

» dsolve('Dy=1+y^2') % encontra a solução geral para dy/dt=1+y2 ans = tan(t+C1) % C1 é uma constante de integração » y=dsolve('Dy=1+y^2','y(0)=1') % adiciona uma condição incial y =tan(t+1/4*pi) » dsolve('Dy=1+y^2','y(0)=1','v') % especifica a variável independente dy/dv

ans =tan(v+1/4*pi)

15.15.1.EQUAÇÕES DIFERENCIAIS DE SEGUNDA ORDEM

Considere a equação de segunda ordem 2)0(y,0)0(dtdy,y)t2cos(

dtyd2

==−=

» y=dsolve('D2y=cos(2*t)-y','Dy(0)=0','y(0)=1') y =(1/2*sin(t)+1/6*sin(3*t))*sin(t)+(1/6*cos(3*t)-1/2*cos(t))*cos(t)+4/3*cos(t) » y=simple(y) y =-1/3*cos(2*t)+4/3*cos(t)

Considere a equação de segunda ordem 1)1(y,0)0(y,0y3dtdy2

dtyd2

2

===−−

» y=dsolve('D2y-2*Dy-3*y=0','y(0)=0','y(1)=1') y = 1/(exp(3)-exp(-1))*exp(3*t)-1/(exp(3)-exp(-1))*exp(-t)

» y=simple(y) y =(exp(3*t)-exp(-t))/(exp(3)-exp(-1)) » pretty(y) exp(3 t) - exp(-t)

----------------------------- exp(3) - exp(-1)

15.15.2.EQUAÇÕES DIFERENCIAIS MÚLTIPLAS

1)0(g,0)0(f,g3f4dtdg

,g4f3dtdf

==+−=+= »[f,g]=dsolve('Df=3*f+4*g', 'Dg=-4*f+3*g', 'f(0)=0, g(0)=1')

f =exp(3*t)*sin(4*t)

g =exp(3*t)*cos(4*t)

32dt

dy,22

y),tcos(4ydt

yd2

2

−=⎟⎠⎞

⎜⎝⎛ π=⎟

⎠⎞

⎜⎝⎛ π=+

» y=dsolve('D2y+y=4*cos(t)','y(pi/2)=2*pi','Dy(pi/2)=-3') y =(2*sin(t)*cos(t)+2*t)*sin(t)-2*sin(t)^2*cos(t)+pi*sin(t)+5*cos(t)

» y=simple(y)

y =2*sin(t)*t+pi*sin(t)+5*cos(t)

15.16.MATRIZES SIMBÓLICAS

Matrizes e vetores simbólicos são conjuntos cujos elementos são expressões simbólicas.

Page 28: 30 e 31 de Maio de 2006. FEIS-UNESP · abs(x) valor absoluto ou módulo de um n: o. acos(x) ... mostrar e mudar o diretório atual ou fichário. what . Retorna uma listagem de todos

28

» A=sym('[a b c;b c a;c a b]') % matriz simbólica

» H=sym(hilb(3)) % matriz simbólica de Hilbert H = [ 1, 1/2, 1/3]

A =[ a, b, c] [ 1/2, 1/3, 1/4] [ b, c, a] [ 1/3, 1/4, 1/5] [ c, a, b] » J=inv(H) % inversa da matriz simbólica » determ(A) % determinante J =[ 9, -36, 30] ans =3*a*c*b-a^3-b^3-c^3 [ -36, 192, -180]

[ 30, -180, 180]

» F=sym('[1/2,1/4;1/4,1/2]'); » jordan(F) » eigensys(F) % autovalores ans =[ 1/4, 0] ans =[ 1/4] [ 0, 3/4] [ 3/4] » G=symop(F,'+','t') % soma t à diagonal de F G =[ 1/2+t, 1/4+t] » [V,E]=eigensys(F) %autovalores E e autovetores B

[ 1/4+t, 1/2+t]

V = [ -1, 1] E = [ 1/4, 0] [ 1, 1] [ 0, 3/4]

15.16.1.RESOLUÇÃO DE SISTEMAS LINEARES

Considere o sistema:

⎪⎪⎪

⎪⎪⎪

−=+−−−=−−−

=++−−

=−++

1vd8cu10vdcu

0vd2cu

0vd2c

2u

% matriz dos coeficientes » A=sym('[1/2,1/2,1,-1;-1,-1/4,1,1;1,-1,-1,-1;1,-1,-8,1]'); » B=sym('[0;0;-10;-1]'); » X=linsolve(A,B) % resolve o sistema simbólico A*X=B X =[ 16] [ 8] [ 3] [ 15]

15.17.TRANSFORMADAS 15.17.1.TRANSFORMADA DE LAPLACE

A função laplace(f) transforma f(t), no domínio do tempo, em F(s), no domínio s. A expressão pode ser novamente transformada no domínio do tempo usando-se o inverso da transformada de Laplace,

» f=sym('exp(-a*t)*cos(w*t)'); » F=laplace(f) F =(s+a)/((s+a)^2+w^2) » ilaplace(F) ans =exp(-a*t)*cos(w*t)

15.17.2.TRANSFORMADA DE FOURIER

A transformada de Fourier (fourier(f)) e sua inversa (ifourier(f)) são utilizadas para determinar as características de um sistema em ambos os domínios de tempo e freqüência

» F=fourier(f) F =-1/2*i*pi^(1/2)*w*exp(-1/4*w^2) » ifourier(F) ans =1/2*4^(1/2)*x*exp(-x^2)

15.17.3.TRANSFORMADA Z

» f=sym('2^n/7-(-5)^n/7');

Utilizada para analisar sistemas de tempo discreto, sendo z um número complexo. A transformada z e a transformada z inversa são obtidas usando-se as funções ztrans(f) e iztrans(f).

» G=ztrans(f) G =1/14*z/(1/2*z-1)+1/35*z/(-1/5*z-1) » simple(G) ans =z/(z-2)/(z+5) » iztrans(G) ans =1/7*2^n-1/7*(-5)^n

Page 29: 30 e 31 de Maio de 2006. FEIS-UNESP · abs(x) valor absoluto ou módulo de um n: o. acos(x) ... mostrar e mudar o diretório atual ou fichário. what . Retorna uma listagem de todos

29

15.18.SOMAS DE RIEMANN

A integral de uma função pode representar a área sob a curva da função e ser aproximada em um intervalo fechado usando-se as somas de Riemann. O Matlab possui uma ferramenta interativa que lhe permite observar aproximações diferentes da integral usando essa técnica. A forma da função é rsums(f), onde f é uma função simbólica. Ela fará aparecer uma janela gráfica, em que a área sob a curva da função de 0 a 1 será aproximada por 10 retângulos. O título exibe a função e a área total dos retângulos calculada

. Sob o gráfico está um deslizador horizontal que lhe permite mudar o número de retângulos usados para aproximar a curva de 2 a 256 usando o mouse

» f=sym('10*x*exp(-5*x^2)'); » ezplot(f) » vpa(int(f,0,1),6) % calcula a integral ans =.993262 % aproximação de Riemann de 0 a 1 »rsums(f)

15.19.CALCULADORA DE FUNÇÕES

Esta ferramenta é uma calculadora de funções gráficas interativas, chamada funtool, que usa o clique do mouse para efetuar cálculos em expressões simbólicas; funtool manipula duas funções de uma variável (f(x) e g(x)) e traça os gráficos das duas um janelas separadas. Uma terceira janela controla a calculadora e contém as funções simbólicas f e g, o domínio em x dos gráficos e uma expressão ‘a’ constante que pode ser alterada digitando em caixas de texto. Há três linhas de teclas sob a caixa de textos, que invocam as funções simbólicas do MATLAB, e uma quarta linha de teclas para controlar a própria calculadora. A tecla Help fornece informações mais detalhadas sobre funtool. A tecla Close fecha a janela da função.

15.20.HELP DA MATEMÁTICA SIMBÓLICA Para saber mais função simbólica consulte Help simbolic.

16.TÓPICOS EXTRAS