Tutorial de matlab (em português)
-
Upload
vitor-machado -
Category
Documents
-
view
260 -
download
66
Transcript of Tutorial de matlab (em português)
Universidade Federal de Minas Gerais
Departamento de Ci�encia da Computa�c�ao do ICEx
Introdu�c�ao ao MATLAB
Frederico F� Campos� �lho
fevereiro de ����
Sum�ario
� Ambiente de programa�c�ao �
��� Janela de comando � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �
��� Comandos de aux��lio ao usu�ario � � � � � � � � � � � � � � � � � � � � � � � � � �
����� Comando help � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �
����� Comando lookfor � � � � � � � � � � � � � � � � � � � � � � � � � � � � �
��� Exerc��cios � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �
� Elementos fundamentais �
��� Constantes e vari�aveis � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �
����� Arranjos � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �
����� Matrizes � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �
����� Vari�aveis literais � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��
����� Vari�aveis especiais � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��
��� Express oes � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��
����� Express oes aritm�eticas � � � � � � � � � � � � � � � � � � � � � � � � � � ��
����� Express oes l�ogicas � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��
����� Express oes literais � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��
��� Gr�a�cos � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��
i
ii SUM�ARIO
����� Gr�a�cos bidimensionais � � � � � � � � � � � � � � � � � � � � � � � � � � ��
����� Gr�a�cos tridimensionais � � � � � � � � � � � � � � � � � � � � � � � � � ��
����� Figuras � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��
��� Exerc��cios � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��
� MATLAB como linguagem de programa�c�ao ��
��� Comandos de entrada e sa��da � � � � � � � � � � � � � � � � � � � � � � � � � � ��
����� Formato de exibi�c ao � � � � � � � � � � � � � � � � � � � � � � � � � � � ��
����� Espa�co de trabalho � � � � � � � � � � � � � � � � � � � � � � � � � � � � �
����� Di�ario � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��
����� Leitura e grava�c ao de dados � � � � � � � � � � � � � � � � � � � � � � � ��
��� Estruturas condicionais � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��
����� Estrutura if�end � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��
����� Estrutura if�else�end � � � � � � � � � � � � � � � � � � � � � � � � � ��
����� Estrutura if�elseif�end � � � � � � � � � � � � � � � � � � � � � � � � �
��� Estruturas de repeti�c ao � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �
����� Estrutura for�end � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��
����� Estrutura while�end � � � � � � � � � � � � � � � � � � � � � � � � � � � �
����� Estrutura com interrup�c ao no interior � � � � � � � � � � � � � � � � � � ��
��� Arquivos M � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��
����� Programa � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��
����� Comandos para execu�c ao de express oes � � � � � � � � � � � � � � � � � ��
����� Subprograma function � � � � � � � � � � � � � � � � � � � � � � � � � ��
����� Depura�c ao de programa � � � � � � � � � � � � � � � � � � � � � � � � � ��
SUM�ARIO iii
����� Gerenciamento de arquivos � � � � � � � � � � � � � � � � � � � � � � � � ��
��� Exerc��cios � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��
� MATLAB para Computa�c�ao Cient�ca ��
��� Medidas de tempo e opera�c oes � � � � � � � � � � � � � � � � � � � � � � � � � � ��
��� �Algebra linear � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��
����� Decomposi�c oes e inversa � � � � � � � � � � � � � � � � � � � � � � � � � ��
����� Solu�c ao de sistemas � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��
����� Autovalores e autovetores � � � � � � � � � � � � � � � � � � � � � � � � ��
����� Normas e condi�c ao � � � � � � � � � � � � � � � � � � � � � � � � � � � � �
��� C�alculo de zero e m��nimo de fun�c ao � � � � � � � � � � � � � � � � � � � � � � � �
����� Opera�c oes com polin�omios � � � � � � � � � � � � � � � � � � � � � � � � �
����� C�alculo de ra��zes � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��
����� Determina�c ao dos m��nimos de fun�c oes � � � � � � � � � � � � � � � � � ��
��� Interpola�c ao e ajuste de curvas � � � � � � � � � � � � � � � � � � � � � � � � � ��
����� C�alculo das diferen�cas �nitas ascendentes � � � � � � � � � � � � � � � � ��
����� Interpola�c ao unidimensional � � � � � � � � � � � � � � � � � � � � � � � ��
����� Ajuste polinomial � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��
��� Integra�c ao num�erica � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �
iv SUM�ARIO
Pref�acio
MATLAB �R�� acronismo de MATrix LABoratory� �e um sistema interativo e linguagem deprograma�c ao para computa�c ao num�erica e visualiza�c ao para as �areas t�ecnicas e cient���cas�Seu elemento b�asico de dados �e uma matriz� a qual n ao requer dimensionamento� OMATLAB permite a solu�c ao de muitos problemas num�ericos em uma fra�c ao do tempo queseria necess�ario para escrever um programa em uma linguagem como FORTRAN� Pascal ouC� Al�em do mais� em MATLAB as solu�c oes dos problemas s ao expressas de um modo bempr�oximo do que elas s ao escritas matematicamente� MATLAB �e marca registrada daThe MathWorks� Inc��� Prime Park WayNatick� Massachusetts ������ � USAURL http���www�mathworks�com�
Existem vers oes pro�ssionais do MATLAB para computadores pessoais baseados em micro�processadores x� e Macintosh� esta�c oes de trabalho da Digital� Hewlett�Packard� IBM�Silicon Graphics e Sun� al�em de vers oes para alguns supercomputadores� �E tamb�em dis�pon��vel uma vers ao de estudante para ambiente Windows e Macintosh�
O objetivo deste texto �e apresentar o MATLAB �vers ao ���� como uma linguagem de progra�ma�c ao dotada de fun�c oes n ao dispon��veis nas linguagens convencionais� Por isto� este ma�terial pode ser utilizado em disciplinas� tais como� Programa�c ao de Computadores� C�alculoNum�erico� An�alise Num�erica� �Algebra Linear e quaisquer outras dos cursos de Engenhariae das �areas de Ci�encias Exatas� Tamb�em� ser ao exploradas algumas caracter��sticas pr�opriasque mostrar ao por que o MATLAB �e uma poderosa ferramenta de apoio ao aprendizado eutiliza�c ao da Computa�c ao Cient���ca�
No cap��tulo � �e descrito o ambiente de programa�c ao do MATLAB mostrando a janela decomandos e como obter informa�c oes de comandos durante a sess ao� O cap��tulo � mostra oselementos fundamentais do MATLAB� como constantes e vari�aveis� express oes e gr�a�cos� Nocap��tulo �� o MATLAB �e apresentado como uma linguagem de programa�c ao� sendo descritoscomandos de entrada e sa��da� estruturas condicionais e de repeti�c ao e arquivos� O cap��tulo �apresenta fun�c oes do MATLAB para resolver problemas de �algebra linear� c�alculo de zero em��nimo de fun�c ao� interpola�c ao� ajuste de curvas e integra�c ao num�erica�
Sugest oes para aprimorar o presente texto� bem como� para efetuar corre�c oes ser ao bem�vindas pelo e�mail� ffcampos�dcc�ufmg�br�
Belo Horizonte� fevereiro de ��
Frederico Ferreira Campos� �lhoDCC�ICEx�UFMG
v
vi
Cap��tulo �
Ambiente de programa�c�ao
A intera�c ao entre o MATLAB e o usu�ario �e feita por interm�edio de uma janela� na qual umcomando �e fornecido e o resultado exibido� No caso de d�uvida sobre a sintaxe ou mesmo aexist�encia de um comando� o MATLAB possui meios de auxiliar o usu�ario durante a sess ao�
��� Janela de comando
Para executar o MATLAB em ambiente Windows ou Macintosh� o cursor deve ser colocadosobre o seu��cone e pressionado o bot ao da esquerda domouse ou ent ao entrar com o comandomatlab em caso de ambiente Unix� Aparecer�a a janela de comando pela qual ser�a feita aintera�c ao entre o MATLAB e o usu�ario� O sinal de que o programa est�a pronto para receberum comando �e indicado pelos caracteres ��� ou por EDU�� no caso da vers ao de estudante� A�gura ��� mostra a janela de comando da vers ao de estudante do MATLAB para ambienteWindows�
Figura ���� Janela de comando da vers ao de estudante do MATLAB�
Um comando �e �nalizado acionando�se a tecla Enter ou Return� Se um comando for muitolongo� ent ao tr�es pontos ����� seguidos do pressionamento da tecla Enter ou Return indica
�
� Cap��tulo �� Ambiente de programa�c�ao
que o comando continuar�a na pr�oxima linha� Comandos m�ultiplos podem ser colocados emuma mesma linha se eles forem separados por v��rgulas ou ponto�e�v��rgulas� Al�em disto� asv��rgulas dizem ao MATLAB para mostrar os resultados e os ponto�e�v��rgulas para suprimira exibi�c ao�
Todo texto ap�os o sinal de � �e considerado coment�ario� e portanto ignorado� o que tornaf�acil a documenta�c ao de um programa�
As teclas � e � podem ser usadas para listar os comandos previamente usados e as teclas �e � movem o cursor na linha de comandos possibilitando assim a sua modi�ca�c ao�
O n�umero de linhas a serem exibidas de cada vez na janela de comandos pode ser rede�nidapelo comando more� Sua sintaxe �e
moren�umero�de�linhas��
onde n�umero�de�linhas� de�ne o n�umero de linhas a serem exibidas� O comando �e desati�vado por more off� enquanto que more on de�nide um n�umero de linhas de modo a ocupartoda a janela de comandos�
A execu�c ao de um comando em MATLAB pode ser interrompida a qualquer instante bas�tando para isto pressionar as teclas Control e C� simultaneamente� O comando clc �e usadopara limpar a janela de comandos e home posiciona o cursor no canto superior esquerdo dajanela de comando� O t�ermino de execu�c ao do MATLAB �e feito pelo comando quit ou exit�
Quando o MATLAB �e ativado� os comandos contidos no arquivo matlabrc�m s ao automa�ticamente executados para que sejam atribuidos valores a alguns par�ametros� Nesta fasetamb�em s ao executados os comandos do arquivo startup�m� caso ele exista� O usu�ario podecriar� em seu pr�oprio diret�orio� o arquivo startup�m contendo� por exemplo� de�ni�c ao deconstantes matem�aticas e f��sicas� formatos de exibi�c ao ou quaisquer comandos do MATLABpara personalizar a sua janela de comando�
A abrang�encia e potencialidade do MATLAB est�a muito al�em do que ser�a mostrado nestetexto� por isso �e aconselh�avel executar o comando demo para visualizar uma demonstra�c aoe se ter uma id�eia dessa potencialidade�
��� Comandos de aux��lio ao usu�ario
O MATLAB possui muito mais comandos do que aqueles apresentados neste texto� o quetorna mais dif��cil lembr�a�los� Com o intuito de auxiliar o usu�ario na procura de comandos� oMATLAB prov�e assist�encia por interm�edio de suas extensivas capacidades de aux��lio direto�Estas capacidades est ao dispon��veis em tr�es formas� o comando help� o comando lookfor einterativamente por meio de um menu de barras� no caso de vers ao para ambiente Windowse Macintosh�
���� Comandos de aux��lio ao usu�ario �
����� Comando help
O comando help �e a maneira mais simples de obter aux��lio no caso de se conhecer o t�opicoem que se quer assist�encia� Sua sintaxe �e
help t�opico�
onde t�opico� �e o nome da fun�c ao ou de diret�orio� Por exemplo�
�� help sqrt
SQRT Square root�
SQRTX� is the square root of the elements of X� Complex
results are produced if X is not positive�
See also SQRTM�
Assim s ao produzidas informa�c oes sobre a fun�c ao sqrt para extrair raiz quadrada� O co�mando help funciona a contento quando se conhece exatamente o t�opico sobre o qual sequer assist�encia� Considerando que muitas vezes este n ao �e o caso� o help pode ser usadosem t�opico� para listar todos os t�opicos de aux��lio prim�ario
�� help
HELP topics�
matlab�general � General purpose commands�
matlab�ops � Operators and special characters�
matlab�lang � Programming language constructs�
matlab�elmat � Elementary matrices and matrix manipulation�
matlab�elfun � Elementary math functions�
matlab�specfun � Specialized math functions�
matlab�matfun � Matrix functions � numerical linear algebra�
matlab�datafun � Data analysis and Fourier transforms�
matlab�polyfun � Interpolation and polynomials�
matlab�funfun � Function functions and ODE solvers�
matlab�sparfun � Sparse matrices�
matlab�graph d � Two dimensional graphs�
matlab�graph�d � Three dimensional graphs�
matlab�specgraph � Specialized graphs�
matlab�graphics � Handle Graphics�
matlab�uitools � Graphical user interface tools�
matlab�strfun � Character strings�
matlab�iofun � File input�output�
matlab�timefun � Time and dates�
matlab�datatypes � Data types and structures�
matlab�demos � Examples and demonstrations�
For more help on directory�topic� type �help topic��
�E importante notar que os t�opicos listados ir ao depender da instala�c ao do MATLAB em umdado computador� Estes t�opicos podem variar de acordo com esta instala�c ao� Por exemplo�para obter aux��lio sobre as fun�c oes matem�aticas especializadas
� Cap��tulo �� Ambiente de programa�c�ao
�� help specfun
Specialized math functions�
Specialized math functions�
airy � Airy functions�
besselj � Bessel function of the first kind�
bessely � Bessel function of the second kind�
besselh � Bessel functions of the third kind Hankel function��
besseli � Modified Bessel function of the first kind�
besselk � Modified Bessel function of the second kind�
beta � Beta function�
betainc � Incomplete beta function�
betaln � Logarithm of beta function�
ellipj � Jacobi elliptic functions�
ellipke � Complete elliptic integral�
erf � Error function�
erfc � Complementary error function�
erfcx � Scaled complementary error function�
erfinv � Inverse error function�
expint � Exponential integral function�
gamma � Gamma function�
gammainc � Incomplete gamma function�
gammaln � Logarithm of gamma function�
legendre � Associated Legendre function�
cross � Vector cross product�
Number theoretic functions�
factor � Prime factors�
isprime � True for prime numbers�
primes � Generate list of prime numbers�
gcd � Greatest common divisor�
lcm � Least common multiple�
rat � Rational approximation�
rats � Rational output�
perms � All possible permutations�
nchoosek � All combinations of N elements taken K at a time�
factorial � Factorial function�
Coordinate transforms�
cart sph � Transform Cartesian to spherical coordinates�
cart pol � Transform Cartesian to polar coordinates�
pol cart � Transform polar to Cartesian coordinates�
sph cart � Transform spherical to Cartesian coordinates�
hsv rgb � Convert hue�saturation�value colors to red�green�blue�
rgb hsv � Convert red�green�blue colors to hue�saturation�value�
��� Exerc��cios �
O comando help �e mais conveniente se o usu�ario conhecer exatamente o t�opico em quedeseja aux��lio� No caso de n ao saber soletrar ou mesmo desconhecer um t�opico as outrasduas formas de assist�encia s ao muitas vezes mais produtivas�
����� Comando lookfor
O comando lookfor prov�e assist�encia pela procura em todas as primeiras linhas dos t�opicosde aux��lio do MATLAB e retornando aquelas que contenham a palavra�chave especi�cada�O mais importante �e que a palavra�chave n ao precisa ser um comando do MATLAB� Suasintaxe �e
lookfor palavra�chave�
onde palavra�chave� �e a cadeia de caracteres que ser�a procurada nos comandos do MA�TLAB� Por exemplo� para informa�c oes sobre matriz identidade
�� lookfor identity
EYE Identity matrix�
SPEYE Sparse identity matrix�
Apesar da palavra identity n ao ser um comando do MATLAB� ela foi encontrada nadescri�c ao de dois comandos� para uma dada instala�c ao� Tendo esta informa�c ao� o comandohelp pode ser usado para exibir informa�c oes a respeito de um comando espec���co� como porexemplo
�� help eye
EYE Identity matrix�
EYEN� is the N�by�N identity matrix�
EYEM�N� or EYE�M�N�� is an M�by�N matrix with ��s on
the diagonal and zeros elsewhere�
EYESIZEA�� is the same size as A�
See also ONES� ZEROS� RAND� RANDN�
Em um PC� um aux��lio por interm�edio de menu�dirigido �e dispon��vel selecionando Table ofContents ou Index no menu Help� Como o uso desta forma de assist�encia �e bem intuitivo�o melhor a fazer �e experimentar�
�� Exerc��cios
Se�c�ao � �
���� Executar o programa MATLAB�
���� Veri�car a diferen�ca entre � e � nos comandos pi��� pi��� e pi��� pi�����
���� Testar o funcionamento das teclas � e ��
� Cap��tulo �� Ambiente de programa�c�ao
���� Ver o funcionamento das teclas � e ��
���� Veri�car a diferen�ca entre more ��� more off e more on�
Se�c�ao � �
���� Quantos par�ametros tem a fun�c ao erro erf�
���� Quais s ao os comandos utilizados para interpola�c ao�
��� Qual o comando usado para calcular o determinante �determinant� de uma matriz�
���� Qual o comando para achar raiz �root� de uma equa�c ao polinomial�
���� Comparar a soma dos autovalores �eigenvalues� com o tra�co �trace� de uma matriz dePascal de ordem qualquer� Fazer a mesma compara�c ao usando uma matriz com elementosaleat�orios�
Cap��tulo �
Elementos fundamentais
Neste cap��tulo ser ao apresentados alguns��tens b�asicos� como constantes� vari�aveis� express oese gr�a�cos� o que tornar�a poss��vel o uso imediato do MATLAB no modo interativo� Al�emdisto� estes elementos s ao fundamentais para a elabora�c ao de programas�
��� Constantes e vari�aveis
Uma constante num�erica no MATLAB �e formada por uma seq�u�encia de d��gitos que podeestar ou n ao precedida de um sinal positivo ��� ou um negativo ��� e pode conter um pontodecimal ���� Esta seq�u�encia pode terminar ou n ao por uma das letras e� E� d ou D seguida deoutra seq�u�encia de d��gitos precedida ou n ao de um sinal positivo ��� ou um negativo ���� Estasegunda seq�u�encia �e a pot�encia de � pela qual a primeira seq�u�encia deve ser multiplicada�Por exemplo� �� �e�� signi�ca ���� e �����d �e ������
Em modo interativo� o MATLAB �e um interpretador de express oes� A express ao fornecida�e analisada sintaticamente e se estiver correta ser�a avaliada� O resultado pode ser atribu��do�a uma vari�avel por interm�edio do sinal ���� ou seja�
vari�avel��express�ao�
Por exemplo
�� g��������
g �
�������
Se o nome da vari�avel e o sinal de atribui�c ao ��� forem omitidos ent ao o resultado ser�a dado�a vari�avel default ans�
�� ���
ans �
������
Na se�c ao ��� ser ao apresentados os tipos de express oes poss��veis no MATLAB� Como qualqueroutra linguagem de programa�c ao� o MATLAB tem regras a respeito do nome de vari�aveis�conforme mostrado na tabela ����
�
Cap��tulo �� Elementos fundamentais
regra sobre nome de vari�avel coment�ario
conter at�e �� caracteres caracteres al�em do ��o s ao ignorados�come�car com letra seguida deletras� n�umeros ou � �
caracteres de pontua�c ao n ao s ao permitidos�
Tamanho da letra �e diferenciador raiz� Raiz e RAIZ s ao vari�aveis distintas�
Tabela ���� Regras para nomes de vari�aveis�
Algumas linguagens de programa�c ao requerem um tratamento especial para n�umeros com�plexos� o que n ao �e o caso do MATLAB� Opera�c oes matem�aticas com n�umeros complexoss ao escritas do mesmo modo como para n�umeros reais�
�� a��� i
a �
������ � �����i
�� b����j
b �
������ � ������i
Note que i e j s ao usados para indicar a parte imagin�aria do n�umero complexo� As vari�aveisreais e complexas em MATLAB ocupam e �� bytes de mem�oria� respectivamente�
����� Arranjos
Um arranjo ou vetor �e um conjunto de vari�aveis homog�eneas �conte�udo de mesmo tipo�identi�cadas por um mesmo nome e individualizadas por meio de ��ndices� No MATLAB oarranjo pode ser de�nido elemento por elemento�
a � � a�� a�� ��� � an �
separados por espa�co em branco ou v��rgula�
�� a��� ���������
a �
������ ������ �������
O vetor a possui os elementos a����� a ����� e a�������� Se os valores do arranjoforem igualmente espa�cados ele pode ser de�nido por interm�edio da express ao
b � valor inicial��incremento��valor final�
Para gerar um vetor com o primeiro elemento igual a �� o segundo igual a ��� o terceiroigual a � e assim sucessivamente at�e o �ultimo igual a � basta de�nir
�� b��������
b �
�� �� � � �� �� ��
Se o incremento desejado for igual a � ent ao ele poder�a ser omitido
�� u���
u �
� � � �
���� Constantes e vari�aveis �
Ao inv�es de usar incremento� um arranjo pode tamb�em ser constru��do de�nindo o n�umerodesejado de elementos na fun�c ao linspace� cuja sintaxe �e
linspacevalor inicial��valor final��n�umero de elementos��
Assim� para criar um arranjo com o primerio elemento igual a �� o �ultimo igual a � epossuindo � elementos�
�� c�linspace��������
c �
�� �� � � �� �� ��
Isto produz um vetor id�entico a b�������� de�nido acima� Se no comando linspace opar�ametro n�umero de elementos� for omitido ent ao ser ao gerados � pontos� Os elemen�tos tamb�em podem ser acessados individualmente�
�� c � � segundo elemento de c
ans �
��
ou em blocos usando os comandos de de�ni�c ao de arranjos
�� c���� � terceiro ao quinto elemento
ans �
� � ��
Lembrando que ��� �� gera a seq�u�encia �� �� �� ent ao
�� c��� ��� � quinto� terceiro e primeiro elementos
ans �
�� � ��
O endere�camento indireto �e tamb�em poss��vel� permitindo referenciar os elementos em qual�quer ordem
�� c�� ��� � quarto e primeiro elementos
ans �
� ��
Nos exemplos acima os arranjos possuem uma linha e v�arias colunas� por isto s ao tamb�emchamados vetores linha� Do mesmo modo� podem existir vetores coluna� ou seja� arranjoscom v�arias linhas e uma �unica coluna� Para criar um vetor coluna elemento por elementoestes devem estar separados por ���
v � � v�� v�� ��� � vn �
Deste modo� para gerar um vetor coluna com os elementos ���� ��� � ��� �
�� v��������� ���� �
v �
������
��� ���
��� ���
� Cap��tulo �� Elementos fundamentais
Por isto� separando os elementos de um arranjo por brancos ou v��rgulas s ao especi�cadosos elementos em diferentes colunas �vetor linha�� Por outro lado� separando os elementospor ponto�e�v��rgula especi�ca�se os elementos em diferentes linhas �vetor coluna�� Paratransformar um vetor linha em vetor coluna e vice�versa� o operador de transposi�c ao ��� �eusado
�� x�v�
x �
������ ��� ��� ��� ���
�� y������
y �
�
�
No caso do vetor ser complexo o operador de transposi�c ao ���� deve ser usado para obtera transposi�c ao pois o uso do operador ��� resultar�a em um complexo conjugado transposto�Por exemplo� seja o vetor complexo
�� z�������������������i
z �
������ � ������i ����� � �� ���i ������ � ������i
o transposto �e
�� t�z��
t �
������ � ������i
����� � �� ���i
������ � ������i
e o complexo conjugado transposto
�� cc�z�
cc �
������ � ������i
����� � �� ���i
������ � ������i
Assim� no caso do vetor n ao ser complexo a transposi�c ao pode ser feita usando ��� ou �����A fun�c ao length deve ser usada para saber o comprimento de um vetor
�� l�lengthz�
l �
�
����� Matrizes
As matrizes s ao arranjos bidimensionais e constituem as estruturas fundamentais doMATLAB e por isto existem v�arias maneiras de manipul�a�las� Uma vez de�nidas� elaspodem ser modi�cadas de v�arias formas� como por inser�c ao� extra�c ao e rearranjo�
���� Constantes e vari�aveis ��
Similarmente aos vetores� para construir uma matriz os elementos de uma mesma linhadevem estar separados por branco ou v��rgula e as linhas separadas por ponto�e�v��rgula ouEnter �ou Return��
A � � a�� a�� ��� a�n� a�� a�� ��� a�n� ��� � am� am� ��� amn �
Para criar uma matriz A com � linhas e � colunas
�� A��� ��� � � �
A �
� ��
� �
Para modi�car um elemento basta atribuir�lhe um novo valor�
�� A�� ���
A �
� � ��
� �
Se for atribu��do um valor a um elemento n ao existente� ou seja� al�em dos elementos da matrizent ao o MATLAB aumenta esta matriz automaticamente preenchendo�a com valores nulosde forma a matriz permanecer retangular
�� A������
A �
� � �� � � �
� � � � �
� � � � � �
Seja agora a matriz quadrada B de ordem �
�� B��� �� � � �� � � �
B �
� �
� � �
� �
De modo similar aos arranjos� os elementos de uma matriz podem ser referenciados indivi�dualmente� tal como
�� B ���
ans �
�
ou em conjuntos� neste caso usando a nota�c ao de arranjo� Por exemplo� os elementos daslinhas � e � e coluna ��
�� B�� ��� �
ans �
�
A nota�c ao de vetor� valor inicial��incremento��valor final�� tamb�em pode serusada ou at�e mesmo linspace� Lembrando que ������ gera a seq�u�encia �� � � e ���
produz �� � �� ent ao o comando
�� Cap��tulo �� Elementos fundamentais
�� C�B�����������
C �
� �
� � �
� �
cria uma matriz C a partir das linhas �� � e � e colunas �� � e � de B� ou seja� cria uma matrizC a partir das linhas de B em ordem contr�aria�
Considerando que s ao referenciadas todas as � colunas de B� a nota�c ao simpli�cada ��� podeser igualmente usada ao inv�es de ���
�� C�B���������
C �
� �
� � �
� �
Para criar uma matriz D a partir das linhas � e � e colunas � e � de B� faz�se
�� D�B�� ��� ���
D �
� �
� �
Para construir uma matriz E a partir da matriz B seguida da coluna � de C seguida ainda de� coluna com os elementos iguais a �
�� E��B C�� � � ���
E �
� � �
� � � �
� �
Para remover uma linha ou coluna de uma matriz usa�se a matriz vazia ��� Para remover acoluna � de E
�� E�������
E �
� �
� � �
� �
E posteriormente para remover a linha �
�� E�������
E �
� � �
� �
A fun�c ao size �e usada para fornecer o n�umero de linhas e colunas de uma matriz� Ela podeser usada de duas formas�
�� t�sizeE�
t �
�
���� Constantes e vari�aveis ��
onde a vari�avel t �e um vetor linha com duas posi�c oes� contendo o n�umero de linhas e colunasde E� respectivamente� A outra forma �e
�� �l�c��sizeE�
l �
c �
�
onde as vari�aveis simples l e c cont�em o n�umero de linhas e colunas de E� respectivamente�Se a fun�c ao length for usada em uma matriz ela fornecer�a o maior valor entre n�umero delinhas e colunas
�� c�lengthE�
c �
�
OMATLAB tem fun�c oes que se aplicam individualmente �a cada coluna da matriz produzindoum vetor linha com elementos correspondentes ao resultado de cada coluna� Se a fun�c ao foraplicada �a transposta da matriz ter�se� ao resultados relativos �a cada linha da matriz� Se oargumento da fun�c ao for um vetor ao inv�es de uma matriz ent ao o resultado ser�a um escalar�Algumas destas fun�c oes s ao mostradas na tabela ����
fun�c ao descri�c ao
sum soma dos elementosprod produto dos elementosmean m�edia aritm�eticastd desvio padr aomax maior elementomin menor elementosort ordena�c ao em ordem crescente
Tabela ���� Exemplos de fun�c oes do MATLAB�
Seja um quadrado m�agico que �e uma matriz de ordem n� n � � com valores entre � e n� talque a soma das linhas� colunas e diagonal s ao iguais
�� A�magic��
A �
�� � ��
� �� �� �
� � �
� �� �� �
�� sumA�
ans �
�� �� �� ��
�� prodA�
ans �
��� ��� ��� � ��
�� Cap��tulo �� Elementos fundamentais
�� meanA�
ans �
������ ������ ������ ������
�� stdA�
ans �
������ ��� � ��� � ������
�� maxA�
ans �
�� �� �� ��
�� maxmaxA�� � maior elemento da matriz
ans �
��
�� minA�
ans �
� � �
�� sortA�
ans �
� � �
� � � �
�� �� �
�� �� �� ��
O MATLAB possui tamb�em v�arias fun�c oes para manipula�c ao de matrizes dentre as quaisdestacam�se aquelas mostradas na tabela ����
fun�c ao descri�c ao
diag se o argumento for um vetor ent ao cria uma matriz diagonal comos elementos do vetor� se o argumento for uma matriz ent ao produzum vetor coluna contendo os elementos da diagonal�
tril obt�em a parte triangular inferior de uma matriz�triu obt�em a parte triangular superior de uma matriz�
Tabela ���� Algumas fun�c oes para opera�c oes de matrizes�
Para a matriz A dada acima
�� d�diagA�
d �
��
��
�
�
�� D�diagd�
D �
�� � � �
� �� � �
� � � �
� � � �
���� Constantes e vari�aveis ��
�� L�trilA�
L �
�� � � �
� �� � �
� � �
� �� �� �
�� U�triuA�
U �
�� � ��
� �� �� �
� � � �
� � � �
O MATLAB fornece v�arias matrizes elementares de grande utilidade� como as mostradas natabela ���� Se um �unico par�ametro for provido ent ao a matriz ser�a quadrada de ordem igualao valor do par�ametro� Se forem dois par�ametros ent ao ela ser�a retangular com as dimens oesiguais aos valores destes par�ametros�
fun�c ao descri�c ao da matriz
zeros nula�ones elementos iguais a ��eye identidade ou parte dela�rand elementos aleat�orios uniformemente distribuidos entre e ��randn elementos aleat�orios com distribui�c ao normal com m�edia e desvio
padr ao ��
Tabela ���� Algumas matrizes elementares do MATLAB�
Por exemplo�
�� Z�zeros �
Z �
� �
� �
�� U�ones ���
U �
� � �
� � �
�� I�eye ���
I �
� � � �
� � � �
�� R�rand��
R �
�� ��� ������ ������
�� ��� ��� �� ������
������ ���� � ��� ��
�� N�randn����
�� Cap��tulo �� Elementos fundamentais
N �
����� � �� ��� ���� ������ �������
������� ������� ������� ������� ����
��� �� ��� � ��� �� ��� �� �������
As fun�c oes rand e randn produzem n�umeros pseudo�aleat�orios e a seq�u�encia gerada �e de�terminada pelo estado do gerador� Quando o MATLAB �e ativado� �e atribu��do um mesmovalor inicial ao estado� e portanto� a seq�u�encia de n�umeros gerados ser�a a mesma� a n ao serque o estado seja mudado� Para colocar o gerador no estado inicial quando estas fun�c oes j�ativerem sido executadas usa�se
�� rand�state����
�� randn�state����
����� Vari�aveis literais
Uma vari�avel pode conter uma cadeia de caracteres ao inv�es de um n�umero� Estes caracteress ao manipulados iguais aos vetores linha� A cadeia de caracteres deve estar delimitada porap�ostrofos para ser atribuida a uma vari�avel literal� Assim�
�� a��MATLAB�� b��cadeia de caracteres�
a �
MATLAB
b �
cadeia de caracteres
Para obter os caracteres das posi�c oes �� � e � da vari�avel a�
�� c�a����
c �
LAB
Os caracteres podem ser concatenados
�� d��a � manipula � b�
d �
MATLAB manipula cadeia de caracteres
As cadeias de caracteres contendo mais de uma linha devem ter o mesmo n�umero de colunascomo acontece com as matrizes�
�� e���O MATLAB�
�permite �
�matrizes�
�literais��
e �
O MATLAB
permite
matrizes
literais
����� Vari�aveis especiais
O MATLAB tem diversas vari�aveis especiais� as quais est ao listadas na tabela ���� Comexcess ao de ans� estas vari�aveis n ao devem ser rede�nidas� Para mais informa�c oes sobrematrizes e outras vari�aveis use help elmat�
���� Express�oes ��
vari�avel valor
ans nome de vari�avel default usado para resultados�pi � � �� �����eps menor n�umero tal que quando adicionado a � cria um n�umero de
ponto �utuante maior que �� Seu valor �e eps � ���� � ����������em computadores com aritm�etica de ponto �utuante IEEE�
inf in�nito� por exemplo� ���NaN n ao �e um n�umero �Not�a�Number�� por exemplo� ��i e j i � j �
p���realmin menor n�umero positivo de ponto �utuante em um computador
particular� Em m�aquinas com formato de ponto �utuante IEEErealmin � �������������
realmax maior n�umero de ponto �utuante represent�avel em um computadorparticular� Em m�aquinas com formato de ponto �utuante IEEErealmax � ������������
Tabela ���� Vari�aveis especiais do MATLAB�
��� Expressoes
Uma express ao �e uma combina�c ao de constantes� vari�aveis e operadores� cuja avalia�c aoresulta em um valor �unico� O MATLAB possui tr�es tipos de express oes� aritm�eticas� l�ogicase literais�
����� Expressoes aritm�eticas
�E dispon��vel no MATLAB as opera�c oes aritm�eticas b�asicas mostradas na tabela ����
opera�c ao express ao operador exemplo
adi�c ao a b � ��
subtra�c ao a� b � �������
multiplica�c ao a� b � �� � �
divis ao a b � ou ! ��� �!�
potencia�c ao ab " "��
Tabela ���� Opera�c oes aritm�eticas b�asicas do MATLAB�
As express oes s ao avaliadas da esquerda para a direita� tendo a potencia�c ao maior ordem depreced�encia� seguida pela multiplica�c ao e divis ao �ambas tendo igual preced�encia� e seguidapela adi�c ao e subtra�c ao �com igual preced�encia�� Os par�enteses podem ser usados paraalterarem a ordem de preced�encia�
As opera�c oes b�asicas entre vetores s�o s ao de�nidas quando estes tiverem o mesmo tamanhoe orienta�c ao �linha ou coluna�� Estas opera�c oes b�asicas s ao apresentadas na tabela ����As opera�c oes de multiplica�c ao� divis ao e potencia�c ao envolvendo vetores s ao antecedidaspelo caracter ���� o que signi�ca que estas opera�c oes s ao efetuadas elemento por elemento�Considere
� Cap��tulo �� Elementos fundamentais
Seja a � � a� a� ���an �� b � � b� b� ���bn � e c um escalar
opera�c ao express ao resultado
adi�c ao escalar a�c � a� c a� c ��� an c �
adi�c ao vetorial a�b � a� b� a� b� ��� an bn �
multiplica�c ao escalar a�c � a�c a�c ��� anc �multiplica�c ao vetorial a��b � a�b� a�b� ��� anbn �
divis ao �a direita a��b � a��b� a��b� ��� an�bn �
divis ao �a esquerda a�!b � b��a� b��a� ��� bn�an �
potencia�c ao a�"c � a�"c a�"c ��� an"c �
c�"a � c"a� c"a� ��� c"an �
a�"b � a�"b� a�"b� ��� an"bn �
Tabela ���� Opera�c oes vetoriais b�asicas�
�� a����� b���������� c�
a �
� � � �
b �
�� � �� �� ��
c �
�� a�c
ans �
� � � � �
�� a�b
ans �
�� �� �� ��
�� a��b
ans �
������ ������ ������ ������ ������
�� a�"c
ans �
� � �� �
�� c�"a
ans �
� � �� �
De modo similar �as opera�c oes vetorias� existem as opera�c oes matriciais b�asicas� as quaisest ao compiladas na tabela ���
O operador ! envolvendo matrizes e vetores est�a relacionado com solu�c ao de sistemas lineares�conforme ser�a visto na se�c ao ������ Sejam as matrizes A e B de ordem � e o escalar c
�� A��� �� � � �� � � �� B���� � ��� �� �� ��� �� �� � �� c��
A �
� �
���� Express�oes ��
Seja c um escalar e
A � � a�� a�� ��� a�n� a�� a�� ��� a�n� ��� � am� am� ��� amn �
B � � b�� b�� ��� b�n� b�� b�� ��� b�n� ��� � bm� bm� ��� bmn �
opera�c ao express ao resultado
adi�c ao escalar A�c aij c
adi�c ao matricial A�B aij bij
multiplica�c ao escalar A�c aij cmultiplica�c ao por elemento A��B aij bijmultiplica�c ao matricial A�B AB
divis ao por elemento A��B aij�bij
divis ao �a esquerda A�!B bij�aij
potencia�c ao A�"c acijA"c Ac
c�"A caij
c"A cA
A�"B abijij
Tabela ��� Opera�c oes matriciais b�asicas�
� � �
� �
B �
�� � ��
�� �� ��
�� �� �
c �
�
�� A�c
ans �
� � �
� �
�� �� �
�� A�B
ans �
� �� ��
�� �
� � �
�� A�c
ans �
� �
� �� ��
� � �
A diferen�ca no resultado das express oes quando os operadores cont�em o caracter ��� deveser observada� Na multiplica�c ao�
� Cap��tulo �� Elementos fundamentais
�� A��B � multiplicacao de matriz elemento a elemento
ans �
�� � �
�� �� �
�� ��� ���
�� A�B � multiplicacao matricial ordinaria
ans �
� � ��
�� �� ��
�� ��� � �
E na potencia�c ao�
�� A�"c � elemento de uma matriz elevado a uma constante
ans �
� � �
�� � � ��
��� �� �
�� A"c � multiplicacao sucessiva de matriz A"� � A�A�A �
ans �
��� ��� ���
��� ���� ����
���� ��� ��
�� c�"A � constante elevada a elemento da matriz
ans �
� �
�� �� �
��� ���� � ���
Como pode ser esperado de uma linguagem para aplica�c oes nas �areas t�ecnicas e cient���cas�o MATLAB oferece v�arias fun�c oes importantes para matem�atica� ci�encia e engenharia� Atabela ��� apresenta algumas fun�c oes matem�aticas elementares do MATLAB� e uma listamais completa pode ser obtida usando o comando help elfun� As fun�c oes matem�aticasespecializadas podem ser listadas usando help specfun�
Se a vari�avel for um vetor ou uma matriz a avalia�c ao de uma fun�c ao se d�a para cada elementoda vari�avel
�� a����
a �
� � � �
�� b�sqrta�
b �
������ ����� ���� � ����� � ���
Os resultados acima podem ser apresentados na forma de uma tabela por interm�edio docomando
�� �a�b��
ans �
���� Express�oes ��
fun�c ao descri�c ao fun�c ao descri�c ao
trigonom�etricasacos arco co�seno cos co�senoacosh arco co�seno hiperb�olico cosh co�seno hiperb�olicoacot arco co�tangente cot co�tangenteacoth arco co�tangente hiperb�olica coth co�tangente hiperb�olicaacsc arco co�secante csc co�secanteacsch arco co�secante hiperb�olica csch co�secante hiperb�olicaasec arco secante sec secanteasech arco secante hiperb�olica sech secante hiperb�olicaasin arco seno sin senoasinh arco seno hiperb�olico sinh seno hiperb�olicoatan arco tangente tan tangenteatanh arco tangente hiperb�olica tanh tangente hiperb�olicaatan arco tangente de � quadrantes
exponenciaisexp exponencial log�� logaritmo decimallog logaritmo natural sqrt raiz quadrada
complexasabs valor absoluto imag parte imagin�aria do complexoangle �angulo de fase real parte real do complexoconj complexo conjugado
num�ericasceil arredonda em dire�c ao a � lcm m��nimo m�ultiplo comumfix arredonda em dire�c ao a rem resto de divis aofloor arredonda em dire�c ao a �� round arredonda em dire�c ao ao intei�
ro mais pr�oximogcd m�aximo divisor comum sign sinal
Tabela ���� Fun�c oes matem�aticas elementares�
������ ������
����� �����
������ ���� �
������ �����
������ � ���
����� Expressoes l�ogicas
Uma express ao se diz l�ogica quando os operadores s ao l�ogicos e os operandos s ao rela�c oese�ou vari�aveis do tipo l�ogico� Uma rela�c ao �e uma compara�c ao realizada entre valores domesmo tipo� A natureza da compara�c ao �e indicada por um operador relacional conforme atabela ����
O resultado de uma rela�c ao ou de uma express ao l�ogica �e verdadeiro ou falso� contudo noMATLAB o resultado �e num�erico� sendo que � signi�ca verdadeiro e � signi�ca falso� Noteque ��� �e usado para atribui�c ao de um valor a uma vari�avel enquanto que ���� �e usado paracompara�c ao de igualdade� No MATLAB os operadores relacionais podem ser usados paracomparar vetores do mesmo tamanho ou comparar um escalar com os elementos de um vetor�Em ambos os casos o resultado ser�a um vetor de mesmo tamanho� Sejam os vetores a e b eo escalar c
�� Cap��tulo �� Elementos fundamentais
operador relacional descri�c ao
� maior que�� maior ou igual a menor que� menor ou igual a�� igual a�� diferente de
Tabela ���� Operadores relacionais do MATLAB�
�� a������ b� ������ c��
a �
� � � � � � � ��
b �
� � � � � � � �
c �
�
Assim
�� d�a��c
d �
� � � � � � � � � �
produz um vetor que cont�em o valor � �verdadeiro� quando o elemento correspondente dovetor a for maior ou igual a �� caso contr�ario cont�em o valor � �falso�� Como no MATLABo resultado da rela�c ao l�ogica �e um valor num�erico� este pode fazer parte de uma express aoaritm�etica
�� e�a�b���
e �
� � � � � � �� ��
Portanto� quando um elemento de b for menor ou igual a �� o valor � �resultado da rela�c aol�ogica� �e adicionado ao correspondente valor de a�
Os operadores l�ogicos permitem a combina�c ao ou nega�c ao das rela�c oes l�ogicas� Os operadoresl�ogicos do MATLAB s ao listados na tabela �����
operador l�ogico descri�c ao uso
# e conjun�c ao$ ou disjun�c ao� n�ao nega�c ao
Tabela ����� Operadores l�ogicos do MATLAB�
Para os vetores a e b de�nidos anteriormente
�� f�a���#a���
f �
� � � � � � � � � �
���� Express�oes ��
Os elementos de f s ao iguais a � quando os correspondentes elementos de a forem maiores doque � e menores ou iguais a �� Para fazer a nega�c ao� ou seja� onde for � ser�a � e vice�versabasta
�� g��f
g �
� � � � � � � � � �
A ordem de preced�encia no MATLAB para express oes envolvendo operadores aritm�eticos el�ogicos s ao indicados na tabela �����
ordem de preced�encia operadores
�a " �" � ��
�a � � ! �� �� �!
�a � � � ��un�ario� ��un�ario��a � � �� � �� ��
�a $ #
Tabela ����� Ordem de preced�encia das opera�c oes aritm�eticas e l�ogicas�
Os par�enteses podem ser usados para alterarem a ordem de preced�encia� Assim� a avalia�c aoda express ao
�� h��a����" �� #��b���
h �
� � � � � � � � � �
�e equivalente �as v�arias etapas
�� h��a��
h� �
�� �� � �� � � � � �
�� h �h��"
h �
�� � � � � � �� �
�� h����b
h� �
� � � �� �� � � � �
�� h���h
h� �
��� � �� �� � �� �� � ��� � �
�� h��h���
h� �
� � � � � � � � � �
�� h��h����
h� �
� � � � � � � � � �
�� h�h�#h�
h �
� � � � � � � � � �
�� Cap��tulo �� Elementos fundamentais
����� Expressoes literais
O MATLAB disp oe de v�arias fun�c oes para manipula�c ao de cadeia de caracteres conformepode ser obtido por help strfun� Algumas delas s ao mostradas a seguir� O comando n �
abss� retorna no vetor n os valores num�ericos dos caracteres ASCII �American Standard
Code for Information Interchange� contidos no vetor s de acordo com a tabela �����
representa�c ao decimal dos caracteres
�� % �� � �� �� E � Q �� � �� i ��� u
�� � �� � � � � F � R �� " �� j �� v
�� & �� � �� � �� G � S �� ' �� k ��� w
�� ( � � � �� H � T �� ) � l �� x
�� � �� � �� � �� I � U �� a �� m ��� y
� # � �� � �� J � V � b �� n ��� z
�� � �� � �� * �� K � W �� c ��� o ��� +
� �� � �� � �� L X � d ��� p ��� $
�� � �� � �� A �� M � Y �� e ��� q ��� ,
�� � �� � �� B � N � Z �� f ��� r ��� �
�� � �� � �� C �� O �� � �� g ��� s
�� � �� � � D P �� ! �� h ��� t
Tabela ����� Caracteres em c�odigo ASCII�
Por exemplo� para o vetor s de tamanho ��
�� s � ����i�
s �
���i
�� n � abss�
n �
�� �� �� ���
De modo contr�ario� c � setstrm� constr�oi a cadeia de caracteres c a partir do vetornum�erico m� Este comando �e particularmente �util para escrever textos em portugu�es �vertabela ������
�� m � � �� ��� ��� �� � ��� �
m �
�� ��� ��� �� � ���
�� c � setstrm�
c �
Fun-c�ao
ou de um modo mais simples
�� d � ��N��setstr �����mero��
d �
��� Gr�acos ��
representa�c ao decimal dos caracteres
��� .A � .E � D� ��� / ��� .a ��� .e �� ��
�� 0
��� �A �� �E �� �N ��� .U ��� �a ��� �e ��� �n ��� .u
��� "A �� "E �� .O �� �U ��� "a ��� "e ��� .o �� �u
��� �A �� 1E ��� �O ��� "U ��� �a ��� 1e ��� �o ��� "u
��� 1A �� .I ��� "O �� 1U �� 1a ��� .2 ��� "o ��� 1u
��� 3A �� �I ��� �O ��� �Y ��� 3a ��� �2 ��� �o ��� �y
�� 4 �� "I ��� 1O ��� �� 5 �� "2 ��� 1o ���
��� C- �� 1I ��� � ��� 6 ��� -c ��� 12 ��� ��� 1y
Tabela ����� Caracteres em c�odigo ASCII extendido do MATLAB�
N�umero
A fun�c ao str num�cadeia de caracteres��� converte a representa�c ao do valor num�ericoda cadeia de caracteres� escrita em c�odigo ASCII para a representa�c ao num�erica� Acadeia de caracteres� deve estar escrita de acordo com as regras de de�ni�c ao de cons�tantes num�ericas vistas na se�c ao ���
�� x � str num��� �d ������e��i��
x �
�� ���e�� � ������e���i
com este valor num�erico �e poss��vel� por exemplo� extrair a raiz quadrada
�� y � sqrtx�
y �
���� �� � ��� ��i
Por outro lado� a fun�c ao t � num stra� converte o n�umero a para a sua representa�c aoem caracteres� Esta fun�c ao �e de grande utilidade quando da escrita de r�otulos e t��tulos emgr�a�cos �ver se�c ao �����
�� v � ����� ����
�� ��velocidade � ��num strv��� m�s��
ans �
velocidade � ������ m�s
O resultado de num str �e exibido normalmente com � d��gitos� Se um par�ametro extra fordado ent ao ele indicar�a o n�umero m�aximo de d��gitos a serem exibidos
�� num strv���
ans �
����� �
�� Gr�a�cos
Uma das grandes virtudes do MATLAB �e a facilidade que ele oferece para produzir gr�a�cosde boa qualidade� Nesta se�c ao ser ao vistos como gerar gr�a�cos bi e tridimensionais e osmodos de grav�a�los em arquivos para que possam ser inclu��dos em textos�
�� Cap��tulo �� Elementos fundamentais
����� Gr�acos bidimensionais
Para gerar gr�a�cos bidimensionais podem ser usados as vers�ateis fun�c oes plot e fplot�
Fun�c�ao plot
A sintaxe desta fun�c ao �e
plotx��y���tipo de linha ����x �y ��tipo de linha �������
onde x e y s ao vetores contendo as abscissas e ordenadas dos pontos a serem exibidos�respectivamente e tipo de linha� �e uma cadeia de � a � caracteres que especi�ca a cor eo estilo da linha� os quais s ao mostrados na tabela �����
s��mbolo cor s��mbolo estilo de linhay amarela � pontom lil�as o c��rculoc turquesa x marca xr vermelho � maisg verde � asteriscob azul � linha s�olidaw branco � linha pontilhadak preto �� linha de tra�co e ponto
�� linha tracejada
Tabela ����� Alguns tipos de linha da fun�c ao plot�
Considere os vetores
�� x � linspace���������
�� y � sinx��
�� z � cosx��
Para gerar um gr�a�co de sen�x� em fun�c ao de x basta
�� plotx�y�
O gr�a�co produzido �e mostrado na �gura ����a��
Tamb�em pode ser gerado um gr�a�co um pouco mais complexo� sen�x� e cos�x� em fun�c aode x com os valores de sen�x� sendo destacados com ��� e os de cos�x� com �o�� Para isto ocomando
�� plotx�y������x�z����o��
produz a �gura ����b�� O MATLAB oferece alguns comandos para identi�ca�c ao nos gr�a�cos�como os exibidos na tabela �����
Assim os comandos
�� xlabel�eixo x��
��� Gr�acos ��
−8 −6 −4 −2 0 2 4 6 8−1
−0.8
−0.6
−0.4
−0.2
0
0.2
0.4
0.6
0.8
1
�a� f�x� � sen�x�
−8 −6 −4 −2 0 2 4 6 8−1
−0.8
−0.6
−0.4
−0.2
0
0.2
0.4
0.6
0.8
1
�b� f�x� � sen�x� e f�x� � cos�x�
Figura ���� Gr�a�cos produzidos pelo comando plot�
comando descri�c ao
xlabel�texto��� escreve texto� abaixo do eixo das abscissas�ylabel�texto��� escreve texto� ao lado do eixo das ordenadas�title�texto��� escreve texto� no alto da �gura�
textxi�yi��texto��� escreve texto� na posi�c ao xi�yi��gtext�texto��� escreve texto� na posi�c ao indicada pelo mouse�
Tabela ����� Fun�c oes para identi�ca�c ao de gr�a�cos�
�� ylabel�eixo y��
�� title��fun��setstr ����setstr �����es seno e co�seno���
� Cap��tulo �� Elementos fundamentais
�� text���������cosx���
produzir ao os r�otulos e t��tulos no gr�a�co da �gura ����b�� como mostrado na �gura ����a��Note que a fun�c ao setstr foi usada para gerar os caracteres da l��ngua portuguesa mostradosna tabela ���� da p�agina ���
−8 −6 −4 −2 0 2 4 6 8−1
−0.8
−0.6
−0.4
−0.2
0
0.2
0.4
0.6
0.8
1
eixo x
eixo
yfunções seno e co−seno
cos(x)
�a� R�otulos e t��tulos
−8 −6 −4 −2 0 2 4 6 8−1
−0.8
−0.6
−0.4
−0.2
0
0.2
0.4
0.6
0.8
1
eixo x
eixo
y
funções seno e co−seno
cos(x)
sen(x)cos(x)
�b� Grade e legendas
Figura ���� Documenta�c ao de gr�a�cos�
O comando grid on faz com que apare�ca uma grade no gr�a�co produzido� Por sua vez gridoff faz com que a grade desapare�ca� O uso de grid sem argumento altera o estado� isto �e�se n ao houver grade ent ao grid ser�a equivalente �a grid on e se houver grid far�a com quea grade desapare�ca� O comando legend�texto �����texto ������� adiciona uma
��� Gr�acos ��
caixa de legendas ao esbo�co da �gura atual� usando as cadeias de caracteres texto� comor�otulos� Para mover a caixa de legendas basta pressionar o bot ao esquerdo do mouse sobreela e coloc�a�la na posi�c ao desejada� A �gura ����b� mostra o efeito dos comandos
�� grid on
�� legend�senx����cosx���
Para mais informa�c oes sobre o uso de plot e das fun�c oes relacionadas use o comando help�
Fun�c�ao fplot
O comando fplot�fun-c�ao����Xmin Xmax�� faz com que a fun�c ao especi�cada pela cadeiade caracteres �fun-c�ao�� seja esbo�cada no intervalo Xmin � x � Xmax� Os comandos
�� fplot�sinx��x���� � ���� grid on
�� xlabel�x��� ylabel�fx���� title�fx��senx��x��
produzem o gr�a�co mostrado na �gura ����a�� Para que a fun�c ao especi�cada pela cadeia decaracteres �fun-c�ao�� seja esbo�cada somente para Xmin � x � Xmax e Ymin � f�x� � Ymax
deve ser usado o comando fplot�fun-c�ao����Xmin Xmax Ymin Ymax��� Deste modo� oscomandos abaixo geram o gr�a�co da �gura ����b��
�� fplot�sinx��x������ �� ��� ����� grid on
�� xlabel�x��� ylabel�fx���� title�fx��senx��x��
Para mais informa�c oes sobre os comandos para manipula�c ao de gr�a�cos bidimensionais usehelp graph d�
����� Gr�acos tridimensionais
De uma maneira similar aos gr�a�cos bidimensionais� o MATLAB possui v�arios comandospara que gr�a�cos tridimensionais sejam tamb�em facilmente esbo�cados� Ser ao descritas a se�guir� de modo sucinto� algumas fun�c oes com esta �nalidade� Portanto� para mais informa�c oessobre essas fun�c oes deve ser utilizado o comando help graph�d�
Fun�c�ao meshgrid
O comando �X�Y��meshgridx�y� transforma o dom��nio especi�cado pelos vetores x e y emmatrizes X e Y que podem ser usadas para avaliar fun�c oes de duas vari�aveis e fazer esbo�costridimensionais de malhas e superf��cies� As linhas da matriz X s ao c�opias do vetor x e ascolunas da matriz Y s ao c�opias do vetor y
�� x � �������
x �
������� ������� � ������ ������ ������ �����
�� y � ��������
y �
������� ������� � ������ ������
�� �X�Y� � meshgridx�y�
X �
������� ������� � ������ ������ ������ �����
� Cap��tulo �� Elementos fundamentais
−20 −15 −10 −5 0 5 10 15 20−20
−15
−10
−5
0
5
10
15
20
x
f(x)
f(x)=sen(x)*x
�a� Restri�c ao em x
−15 −10 −5 0 5 10 15−10
−8
−6
−4
−2
0
2
4
6
8
10
x
f(x)
f(x)=sen(x)*x
�b� Restri�c oes em x e y
Figura ���� Esbo�cos da fun�c ao f�x� � sen�x�x pelo comando fplot�
������� ������� � ������ ������ ������ �����
������� ������� � ������ ������ ������ �����
������� ������� � ������ ������ ������ �����
������� ������� � ������ ������ ������ �����
Y �
������� ������� ������� ������� ������� ������� �������
������� ������� ������� ������� ������� ������� �������
� � � � � � �
������ ������ ������ ������ ������ ������ ������
��� Gr�acos ��
������ ������ ������ ������ ������ ������ ������
�� Z � X�Y
Z �
� ����� ������� ������� ������� � ������ ������
������� ������� ������� � ������ ������ ������
������� ������� � ������ ������ ������ �����
������� � ������ ������ ������ ����� �����
� ������ ������ ������ ����� ����� ������
Fun�c�ao plot�
Esta fun�c ao �e uma generaliza�c ao da fun�c ao plot vista na se�c ao ����� para esbo�cos tridimen�sionais� Sua sintaxe �e
plot�X��X��Z���tipo de linha ����X �Y �Z �tipo de linha �������
onde X� Y e Z s ao matrizes de mesmo tamanho contendo as coordenadas tridimensionais dospontos a serem exibidos e tipo de linha� �e uma cadeia de � a � caracteres que especi�caa cor e o estilo da linha de acordo com a tabela ���� da p�agina ��� Se X� Y e Z forem vetoresde mesmo tamanho ent ao �e esbo�cada uma linha no espa�co tridimensional cujas coordenadass ao os elementos destes vetores� Assim� para produzir o esbo�co da fun�c ao z � sen�x� cos�y��
no intervalo �� � x � � e �� � y � �� mostrado na �gura ����a�� utiliza�se os comandos��� �X�Y� � meshgrid����� ���� ��� � ��
�� Z � sinX���cosY��" �
�� plot�X�Y�Z�� grid on
�� xlabel�eixo x��� ylabel�eixo y��� zlabel�eixo z��
�� title�plot���
Fun�c�oes mesh� meshc e meshz
A fun�c ao meshX�Y�Z� produz o esbo�co de uma malha na superf��cie especi�cada pelas ma�trizes X� Y e Z� A fun�c ao meshcX�Y�Z� esbo�ca a malha com contornos desenhados abaixo emeshzX�Y�Z� faz o esbo�co da malha com um plano de refer�encia� Os comandos
�� �X�Y� � meshgrid����� ���� ��� � ��
�� Z � sinX���cosY��" �
�� meshX�Y�Z�� grid on
�� xlabel�eixo x��� ylabel�eixo y��� zlabel�eixo z��
�� title�mesh��
geram o esbo�co mostrado na �gura ����b�� Por outro lado�
�� meshcX�Y�Z�� grid on
�� xlabel�eixo x��� ylabel�eixo y��� zlabel�eixo z��
�� title�meshc��
usando a mesma matriz Z de�nida acima e
�� meshzX�Y�Z�� grid on
�� xlabel�eixo x��� ylabel�eixo y��� zlabel�eixo z��
�� title�meshz��
�� Cap��tulo �� Elementos fundamentais
−3−2
−10
12
3
−2
−1
0
1
2−1
−0.5
0
0.5
1
eixo x
plot3
eixo y
eixo
z
�a� plot�
−3−2
−10
12
3
−2
−1
0
1
2−1
−0.5
0
0.5
1
eixo x
mesh
eixo y
eixo
z
�b� mesh
Figura ���� Esbo�cos da fun�c ao z � sen�x� cos�y�� usando os comandos plot� e mesh�
produzem os esbo�cos apresentados na �guras ����a� e �b��
Fun�c�oes surf e surfl
A fun�c ao surfX�Y�Z� produz uma superf��cie sombreada tridimensional especi�cada pelasmatrizes X� Y e Z� A fun�c ao surflX�Y�Z� gera uma superf��cie sombreada acrescida de umefeito de ilumina�c ao� Deste modo� os comandos
�� �X�Y� � meshgrid����� ���� ��� � ��
�� Z � sinX���cosY��" �
��� Gr�acos ��
−3−2
−10
12
3
−2
−1
0
1
2−1
−0.5
0
0.5
1
eixo x
meshc
eixo y
eixo
z
�a� meshc
−3−2
−10
12
3
−2
−1
0
1
2−1
−0.5
0
0.5
1
eixo x
meshz
eixo y
eixo
z
�b� meshz
Figura ���� Esbo�cos de z � sen�x� cos�y�� usando os comandos meshc e meshz�
�� surfX�Y�Z�� grid on
�� xlabel�eixo x��� ylabel�eixo y��� zlabel�eixo z��
�� title�surf��
com a matriz Z de�nida acima e
�� surflX�Y�Z�� grid on
�� xlabel�eixo x��� ylabel�eixo y��� zlabel�eixo z��
�� title�surfl��
�� shading interp
�� colormapgray�
�� Cap��tulo �� Elementos fundamentais
produzem as superf��cies mostradas nas �guras ����a� e �b�� Os comandos shading interp
e colormapgray� foram usados para real�car o efeito da ilumina�c ao�
−3−2
−10
12
3
−2
−1
0
1
2−1
−0.5
0
0.5
1
eixo x
surf
eixo y
eixo
z
�a� surf
−3−2
−10
12
3
−2
−1
0
1
2−1
−0.5
0
0.5
1
eixo x
surfl
eixo y
eixo
z
�b� surfl
Figura ���� Esbo�cos de z � sen�x� cos�y�� usando os comandos surf e surfl�
����� Figuras
As �guras geradas pelo MATLAB podem ser facilmente impressas ou gravadas em um ar�quivo para posterior impress ao ou inclus ao em um texto� Para tal basta usar o comandoprint cuja sintaxe �e
print ��ddisp�� nome do arquivo�
���� Exerc��cios ��
onde disp� s ao dispositivos para especi�carem o tipo de arquivo a ser gravado com o nomenome do arquivo�� Alguns destes dispositivos s ao mostrados na tabela �����
disp� descri�c�ao disp� descri�c�ao
ps PostScript para impressorasem preto e branco
eps PostScript encapsulado pa�ra impressoras em preto ebranco
psc PostScript para impressorasem cores
epsc PostScript encapsulado pa�ra impressoras em cores
ps PostScript n��vel � para im�pressoras em preto e branco
esp PostScript n��vel � encapsu�lado para impressoras empreto e branco
psc PostScript n��vel � para im�pressoras em cores
epsc PostScript n��vel � encapsu�lado para impressoras emcores
Tabela ����� Alguns dispositivos para grava�c ao de arquivos de �guras�
Assim� o comando
�� print �deps figplot
gera um arquivo PostScript �R� encapsulado com nome figplot�eps� O comando help
print deve ser usado para obter mais informa�c oes sobre todos os dispositvos suportadospelo MATLAB�
��� Exerc��cios
Se�c�ao � �
Observar atentamente e anotar o resultado dos comandos do MATLAB� Apesar dos coman�dos estarem separados por v��rgula� entrar com um de cada vez�
���� Atribuir o valor �������� �a vari�avel a e �������� �a vari�avel b�
���� Conferir os nomes permitidos de vari�aveis
arco�seno��� limite�sup��� Area��� area��
���� Construir os vetores
a��� ��� ��� ����� b�������� � c���� ���� d������
e�linspace�������� e��� e ���� e�������� e�� � ���� f�e�� g�e���
h� �������
���� Construir as matrizes e veri�car o resultado das fun�c oes
�� Cap��tulo �� Elementos fundamentais
A��� �� �� � ��� � � ��� A ������ B�A ���� � ���� C��A B���
C��� ������� C ������� sizeC�� sumC�� sumC��� prodC�� prodC���
minC��� maxC�� zeros����� ones��� eye��� D�rand��� diagdiagD���
triuD�� trilD�
���� Analisar o resultado dos comandos
s��MATLAB�� �s � em ordem reversa � � slengths��������
Se�c�ao � �
Observar atentamente e anotar o resultado dos comandos do MATLAB� Apesar dos coman�dos estarem separados por v��rgula� entrar com um de cada vez�
���� Avaliar as express oes escalares
���� ���� ���� ��� � !�� �" � �� ������� �� "�
���� Seja a � �� b � �� c � �� d � �� e � �� Avaliar
x � �
qe�e� a��e� b� cd
y � a� b� � c
d e
�cos�a�
d sen�b c�
��
z � log��
�b
d e�
� exp
�b a
b� a
c�
� b�
p� b�
�
��� Avaliar as express oes vetoriais
u� ��� v�linspace��������� k���
u�k� u�v� u�k� u��v� u��v� u�!v� u�"k� k�"u� v�"u
���� Avaliar as express oes matriciais
M�� �� �� � � ��� �� ��� N��� � � � � ��� � ��� x������� z�
M�z� M�N� M�z� M��N� M�N� M�x� M��N� M�!N� M�"z� M"z� z�"M� z"M� M�"N
���� Veri�car a diferen�ca entre as fun�c oes usando a � � e a � ���� �ceila�� fixa�� floora�� rounda�� signa�
����� Para c � � �i e c � �� �i� observar os resultados das fun�c oes complexasabsc�� conjc�� realc�� imagc�
����� Com rela�c ao �as vari�aveis l�ogicas� dados
a�� � verdadeiro
b�� � falso
c�sqrt ���
d�exp�����
completar a tabela
a b c d a#b a#c b#d a$b a$c b$d �a �b
���� Exerc��cios ��
����� Avaliar as express oes l�ogicas para x�����
x�� # x��� x�� $ absx��
����� De�nir os comandos para gerarem as cadeias de caracteresT�2tulo� vari�avel e equa-c�oes�
����� Qual a diferen�ca entre as fun�c oes str num e num str�
Se�c�ao � �
����� Seja a fun�c ao
y � e�x��� cos�x�x�
Gerar uma tabela com � pontos para �� � x � � e exibir o gr�a�co da fun�c ao usando ocomando plot colocando r�otulos e grade�
����� Repetir a opera�c ao acima usando � pontos e sem usar grade�
���� Gerar uma tabela de � pontos para
y � sen�x�x� �� � x � �e exibir o seu gr�a�co usando o comando fplot com r�otulos e grade�
����� Seja a fun�c ao
z � sen�x�y��
Gerar uma superf��cie com �� � x � � e �� � y � � usando os comandos meshc e meshz�
���� Usando os comandos surf e surfl exibir a superf��cie de
z � x cos�x� sen�y�
com �� � x � � e �� � y � ��
� Cap��tulo �� Elementos fundamentais
Cap��tulo �
MATLAB como linguagem de programa�c�ao
No cap��tulo anterior foram descritos os elementos fundamentais do MATLAB� os quais pos�sibilitam sua utiliza�c ao em um modo interativo� Neste cap��tulo ser ao abordados algunscomandos que tornar ao poss��vel desenvolver programas escritos em MATLAB� tais como�comandos para entrada e sa��da de dados� manipula�c ao de arquivos� estruturas condicionaise estruturas de repeti�c ao�
�� Comandos de entrada e sa��da
O MATLAB fornece algumas facilidades para especi�car o formato de sa��da dos resultados�grava�c ao e leitura das vari�aveis de uma sess ao de trabalho para uso posterior e edi�c ao deprogramas em arquivos�
����� Formato de exibi�cao
Para saber o valor de uma vari�avel basta entrar com o seu nome�
�� pi
ans �
������
O comando dispvari�avel�� �e usado para exibir vari�avel� sem mostrar o seu nome oupara exibir uma cadeia de caracteres contida na vari�avel��
�� disp�numeros aleatorios entre � e ���� disprand ����
numeros aleatorios entre � e �
�� ��� ������ ��� �� ������ ��� �� ������
�� ��� ������ ���� � ������ ������ ��� �
Quando o MATLAB exibe um resultado num�erico� ele segue diversas regras� Normalmente�se o resultado �e um n�umero inteiro� ele �e exibido como tal� Igualmente� quando o resultado�e um n�umero real �ponto �utuante�� ele �e mostrado com aproximadamente quatro d��gitosap�os o ponto decimal� Se os d��gitos signi�cativos do resultado est ao fora desta faixa ent aoo resultado �e exibido em nota�c ao cient���ca� O comando format �e usado para modifcar oformato num�erico de exibi�c ao� como mostrado na tabela ����
��
� Cap��tulo � MATLAB como linguagem de programa�c�ao
comando � resultado
format short ������ � d��gitos decimais�format bank ���� � d��gitos decimais�format long ��������������� �� d��gitos decimais�format short e ������e � d��gitos decimais e expoente�format long e ����������������e �� d��gitos e expoente�format hex ����fb�����d� hexadecimal�format � � � ou branco para valor positivo�
negativo ou nulo�format rat ������� aproxima�c ao racional�format compact suprime linhas em branco�format loose mant�em linhas em branco�format atribui o padr ao � short e loose�
Tabela ���� O comando format�
����� Espa�co de trabalho
Durante uma sess ao� os comandos e vari�aveis utilizados residem no espa�co de trabalho doMATLAB e podem ser armazenados quando desejado� O comando who lista o nome dasvari�aveis que est ao sendo usadas� ou seja� que est ao presentes no espa�co de trabalho� enquantoque o comando whos fornece maiores informa�c oes sobre estas vari�aveis� As vari�aveis no espa�code trabalho podem ser removidas incondicionalmente usando o comando clear�
�� clear tempo� raiz remove as vari�aveis tempo e raiz��� clear remove todas as vari�aveis do espa�co de trabalho�
Aten�c�ao� n ao ser�a solicitada a con�rma�c ao� Todasas vari�aveis estar ao irremediavelmente removidas�
O comando save �e usado para gravar as vari�aveis do espa�co de trabalho em um arquivo emdisco� Sua sintaxe �e
save nome do arquivo� vari�aveis� chaves�
onde nome do arquivo� especi�ca que as vari�aveis do espa�co de trabalho ser ao gravadasno arquivo bin�ario nome do arquivo��mat� Por exemplo� save trab� faz com que todasas vari�aveis da sess ao sejam gravadas no arquivo trab��mat� Se o nome do arquivo n ao fordado ent ao todas as vari�aveis ser ao gravadas no arquivo default matlab�mat�vari�aveis� de�nem quais as vari�aveis do espa�co de trabalho a serem gravadas no arquivonome do arquivo��mat� As vari�aveis devem estar separadas por brancos�chaves� especi�cam as caracter��sticas dos dados que ser ao gravados no arquivo denominadonome do arquivo��mat� As chaves� podem ser
�ascii de�ne que o arquivo ser�a no formato ASCII e seu nome n ao conter�a aextens ao �mat� que �e a forma usada para armazenar arquivos bin�arios�
�double antecedido por �ascii� de�ne que os n�umeros ser ao gravados com ��d��gitos ao inv�es de �
�tabs antecedido por �ascii� de�ne que os dados estar ao tabulados��append adiciona vari�aveis a um arquivo j�a existente�
As vari�aveis salvas no arquivo ASCII nome do arquivo��extens�ao� s ao intercaladas emuma �unica vari�avel denominada nome do arquivo�� Ao salvar dados complexos usando a
��� Comandos de entrada e sa��da ��
chave �ascii faz com que a parte imagin�aria dos dados seja perdida pois o MATLAB n aopode carregar o dado n ao num�erico i�
O comando load �e usado para recuperar os dados gravados em um arquivo pelo comandosave e coloc�a�los no espa�co de trabalho� Sua sintaxe �e
load nome do arquivo��extens�ao�
O comando load sem argumento recupera os dados do arquivo default matlab�mat� loadtrab� �sem extens ao� recupera os dados do arquivo bin�ario trab��mat� A extens ao podeser usada para recuperar arquivos ASCII� Neste caso� o arquivo deve conter uma matriz dedados com m linhas e n colunas em cada linha� O resultado �e uma matriz m � n com omesmo nome do arquivo sem a extens ao� Os dados em formato ASCII tem que estar naforma de matriz sen ao o comando load n ao conseguir�a recuper�a�los�
No exemplo a seguir� as vari�aveis a �� � ��� b �� � �� e c �� � �� s ao gravadas no arquivoASCII de nome trab�dat usando o comando save� Em seguida� o comando load �e utilizadopara recuperar estes dados gerando a vari�avel trab ��� �� no espa�co e trabalho��� a����
a �
� �
�� b�eye ���
b �
� � �
� � �
�� c�magic��
c �
� � �
� � �
�
�� who � variaveis no espaco de trabalho
Your variables are�
a b c
�� whos � variaveis no espaco de trabalho
Name Size Bytes Class
a �x� � double array
b x� �� double array
c �x� � double array
Grand total is �� elements using ��� bytes
�� save trab�dat a b c �ascii � grava o arquivo ASCII trab�dat
�� type trab�dat � mostra o conteudo do arquivo trab�dat
���������e��� ��������e��� ���������e���
���������e��� ���������e��� ���������e���
���������e��� ���������e��� ���������e���
���������e��� ���������e��� ���������e���
���������e��� ���������e��� ���������e���
���������e��� ��������e��� ��������e���
�� load trab�dat
�� Cap��tulo � MATLAB como linguagem de programa�c�ao
�� whos � variaveis no espaco de trabalho
Name Size Bytes Class
a �x� � double array
b x� �� double array
c �x� � double array
trab �x� ��� double array
Grand total is �� elements using �� bytes
�� trab
trab �
� �
� � �
� � �
� � �
� � �
�
Se o arquivo contiver uma vari�avel com o mesmo nome de uma j�a existente no espa�co detrabalho ent ao o comando load faz com que a vari�avel do espa�co de trabalho seja substitu��dapela vari�avel existente no arquivo�
����� Di�ario
Todos os comandos solicitados pelo usu�ario e as respostas fornecidas pelo MATLAB �com ex�cess ao de gr�a�cos� podem ser gravados em um arquivo ASCII para que possam ser impressosou mesmo inclu��dos em algum relat�orio� como foi feito neste texto�
Para esta grava�c ao basta usar o comando diary nome do arquivo�� a partir do qual aintera�c ao usu�ario�MATLAB ser�a registrada� A suspens ao do registro �e feita por diary off
e a reinicializa�c ao �e obtida por diary on� Por esta raz ao� os �unicos nomes de arquivos quen ao s ao permitidos s ao on e off�
����� Leitura e grava�cao de dados
A transfer�encia de dados entre o espa�co de trabalho e algum dispositivo de entrada e sa��da�arquivo em disco� impressora� etc�� aumenta a utiliza�c ao do MATLAB visto tornar poss��vel�por exemplo� at�e a troca de informa�c oes com um outro programa�
Abertura de arquivo
O comando fopen abre um arquivo ou obt�em informa�c oes sobre os arquivos abertos� Suasintaxe �e
�fid��mensagem��� � fopen�nome do arquivo����permiss�ao���
Deste modo� o comando fopen associa o nome externo do arquivo �nome do arquivo�� �aunidade fid que ser�a utilizada nos comandos de entrada e sa��da no modo especi�cado pela�permiss�ao��� Os caracteres permitidos para �permiss�ao�� est ao listados na tabela ����
��� Comandos de entrada e sa��da ��
�permiss�ao�� especi�ca�c ao
�r� Abre o arquivo para leitura��r�� Abre o arquivo para leitura e escrita� mas n ao cria o arquivo��w� Abre o arquivo para escrita e caso necess�ario cria o arquivo� Por�em�
remove o conte�udo do arquivo existente��w�� Abre o arquivo para leitura e escrita e se necess�ario cria o arquivo�
Todavia� remove o conte�udo do arquivo existente��a� Cria e abre um arquivo novo ou abre um arquivo j�a existente para
escrita� anexando ao �nal do arquivo��a�� Cria e abre um arquivo novo ou abre um arquivo j�a existente para
leitura e escrita� anexando ao �nal do arquivo�
Tabela ���� Atributos de arquivo�
Se �permiss�ao�� for omitida ent ao ser�a assumido o valor �r�� Se n ao for especi�cado� osarquivos ser ao abertos em modo bin�ario� Para abrir um arquivo texto� o caracter �t� deveser adicionado ao caracter de permiss ao� como em� �wt� e rt��� Similarmente� o caracter�b� pode ser usado para reiterar que um arquivo deve ser bin�ario�
Caso o comando fopen tenha sucesso ao abrir o arquivo� ele retornar�a o identi�cador dearquivo fid contendo um n�umero inteiro maior do que � e o conte�udo de �mensagem�� ser�avazio� O fid �e usado com outras rotinas de entrada e sa��da para identi�car o arquivo noqual as opera�c oes ser ao realizadas�
No entanto� se o comando fopen n ao tiver sucesso ent ao fid � �� e �mensagem�� conter�auma cadeia de caracteres informando o tipo de erro ocorrido� O comando help fopen deveser utilizado para obter mais informa�c oes sobre este comando�
Fechamento de arquivo
O comando fclosefid� fecha o arquivo previamente aberto pelo comando fopen� cujoidenti�cador associado a este arquivo seja fid� O valor � �e retornado em caso de sucesso nofechamento e �� no caso de insucesso� Por sua vez� o comando fclose�all�� fecha todosos arquivos abertos� Quando um arquivo �e fechado� a associa�c ao entre o identi�cador fid eo arquivo f��sico �nome do arquivo�� �e desfeita�
Grava�c�ao em arquivo
O comando fprintf grava dados formatados em um arquivo e sua sintaxe �e
tamanho� � fprintffid��formato���vari�avel��
onde tamanho� �e o n�umero de bytes escritos� fid �e o identi�cador associado ao arquivo noqual ser�a feita a grava�c ao dos valores contidos na vari�avel� com o formato especi�cadona cadeia de caracteres �formato��� a qual deve conter caracteres alfanum�ericos e�ouespeci�ca�c oes de convers ao� Estas especi�ca�c oes de convers ao s ao delimitadas pelo caracter� e uma das letras i� e� f� g ou s� de acordo com a tabela ����
Deste modo�
�� Cap��tulo � MATLAB como linguagem de programa�c�ao
formato especi�ca�c ao
�ni usado para valores inteiros� sendo n o tamanho do campo de exibi�c ao��n�df nota�c ao na forma !�"�� sendo n o tamanho do campo �n�umero
total de caracteres exibidos� e d o n�umero de d��gitos decimais��n�de nota�c ao na forma !�"� � sendo n o tamanho do campo �n�umero
total de caracteres exibidos� e d o n�umero de d��gitos decimais��n�dg equivalente a �n�de ou �n�df� dependendo de qual formato for mais curto�
al�em disso os zeros insigni�cantes n ao s ao exibidos��ns exibe caracteres em um campo de tamanho n�
Tabela ���� Formatos de exibi�c ao�
�� fprintf�a precisao deste computador � �� ��e!n��eps� �
a precisao deste computador � ����� e���
onde !n �e usado para come�car uma nova linha� Quando for necess�ario ter o caracter ���exibido basta us�a�lo duas vezes
�� fprintf�hoje e�� dia � s!n��date�
hoje e� dia ���Feb� ���
O comando fprintf do MATLAB difere de seu hom�onimo da linguagem C em um aspectomuito importante� ele �e vetorizado no caso da vari�avel a ser exibida for uma matriz� Nestecaso� o formato �e aplicado aos elementos da matriz� por coluna� at�e a �ultima linha� Ele �eent ao usado de modo similar� sem reinicializa�c ao� pelos demais elementos das outras colunasda matriz� Veja a diferen�ca entre os dois comandos fprintf usando a matriz M
�� x������� �
�� M��x�sqrtx���
M �
������ ������
������ �� ��
����� �����
�� fprintf���� f �����f !n��M�
���� �������
��� �������
�� ����� �
�� fprintf���� f �����f !n��M��
���� �������
���� �� ���
��� ����� �
Se fid for omitido do comando fprintf ou se fid � � ent ao os valores ser ao simplesmenteexibidos na tela� No exemplo abaixo� uma tabela contendo x�
px e e�x para � � x � � �e
gerada e gravada no arquivo sqrtexp�dat�
�� x � ���� � � � define x
�� tab � �x� sqrtx�� exp�x�� � gera tabela
tab �
������ �� ��� ������ ������ ������ �����
��� Comandos de entrada e sa��da ��
������ ��� �� ����� �� �� ������ �����
����� ����� �� ��� �� �� ������ ������
�� fid � fopen�sqrtexp�dat���w�� � abre o arquivo para escrita
fid �
�
�� fprintffid����� f�����f�����f!n��tab� � escreve tabela no arquivo
ans �
���
�� fclosefid� � fecha o arquivo
ans �
�
�� type sqrtexp�dat � lista o arquivo
���� ������� �����
�� � ��� ��� �����
���� ����� �� ���
���� �� �� � �� ��
���� ������� ������
��� ����� � ������
Um manual da linguagem C deve ser consultado para maiores informa�c oes sobre o comandofprintf�
Leitura em arquivo
O comando fscanf efetua a leitura de dados formatados em um arquivo� Sua sintaxe �e
�vari�avel��tamanho�� � fscanffid��formato���elementos��
onde fid �e o identi�cador associado ao arquivo no qual est�a sendo feita a leitura dos dadosescritos no formato especi�cado na cadeia de caracteres �formato��� Os dados s ao con�vertidos segundo o �formato�� e atribu��dos �a vari�avel�� As especi�ca�c oes de convers aos ao mostradas na tabela ��� e o par�ametro elementos� �e descrito na tabela ���� A vari�aveltamanho� retorna o n�umero de elementos que foram lidos com sucesso�
elementos especi�ca�c ao
n L�e at�e n valores em um vetor coluna�inf L�e at�e o �m do arquivo� resultando em um vetor coluna contendo o
mesmo n�umero de elementos do arquivo��m�n� L�e os valores su�cientes para preencher uma matriz de dimens ao m � n�
preenchendo esta matriz por coluna� n pode ser igual �a inf mas n ao podeser igual �a m�
Tabela ���� Especi�ca�c ao de elementos para leitura�
Quando o MATLAB estiver lendo um arquivo ele tentar�a combinar os dados no arquivocom a forma especi�cada em �formato��� Se a combina�c ao ocorrer ent ao os dados ser aoatribu��dos por coluna �a vari�avel�� No entanto� se somente uma combina�c ao parcial ocorrerent ao apenas os dados combinados com o �formato�� ser ao atribu��dos �a vari�avel� e aopera�c ao de leitura ser�a interrompida�
�� Cap��tulo � MATLAB como linguagem de programa�c�ao
De modo similar ao fprintf� o comando fscanf do MATLAB difere de seu hom�onimo dalinguagem C em um aspecto muito importante� ele �e vetorizado ao retornar um argumentomatriz� Isto signi�ca que o �formato�� �e reciclado atrav�es do arquivo at�e o �nal destearquivo ser encontrado ou a quantidade de dados de�nida em tamanho� tiver sido lida�
�� fid � fopen�sqrtexp�dat���r�� � abre arquivo para leitura
fid �
�
�� �A�n� � fscanffid����f���f���f���� inf�� � leitura das � colunas
A �
������ �� ��� ������ ������ ������ �����
������ ��� �� ����� �� �� ������ �����
����� ����� �� ��� �� �� ������ ������
n �
��
Se o caracter � for colocado entre o � e um caracter de convers ao �d� e� f� g ou s� ent ao ocorrespondente valor combinado n ao ser�a armazenado na vari�avel��
�� frewindfid� � posiciona leitura para o inicio do arquivo
�� �A�n� � fscanffid����f���f����f��� inf�� � leitura de colunas
A �
������ �� ��� ������ ������ ������ �����
������ ��� �� ����� �� �� ������ �����
n �
�
�� fclosefid� � fecha o arquivo
ans �
�
O comando frewindfid� �e usado para posicionar o acesso ao primeiro registro do arquivocujo identi�cador seja fid�
Durante o processo de leitura �e importante veri�car se o �ultimo registro do arquivo j�a foilido� O comando feoffid� faz esta veri�ca�c ao no arquivo de identi�cador fid� Se o �ultimoregistro j�a foi lido ent ao ser�a retornado o valor �� caso contr�ario � ser�a retornado�
Usar o comando help iofun para se conhecer outras fun�c oes do MATLAB para leitura egrava�c ao de dados�
�� Estruturas condicionais
Uma estrutura condicional permite a escolha do grupo de comandos a serem executadosquando uma dada condi�c ao for satisfeita ou n ao� possibilitando desta forma alterar o �uxonatural de comandos� Esta condi�c ao �e representada por uma express ao l�ogica�
��� Estruturas condicionais ��
����� Estrutura if�end
A estrutura condicional mais simples do MATLAB �e
if condi-c�ao�
comandos�
end
Se o resultado da express ao l�ogica condi-c�ao� for � �verdadeiro� ent ao a lista de comandos�ser�a executada� Se o resultado for � �falso� os comandos� n ao ser ao executados� Considereos comandos
a � input�Entre com o valor de a � ���
if a �� �
b � sqrta�
end
e a execu�c ao para a �
Entre com o valor de a �
b �
�����
Neste exemplo� a raiz quadrada de a ser�a atribu��da a b se� e somente se� o valor de a formaior ou igual a ��
����� Estrutura if�else�end
No caso de haver duas alternativas� uma outra estrutura condicional deve ser usada
if condi-c�ao�
comandos ��
else
comandos ��
end
Se o resultado da express ao l�ogica condi-c�ao� for � �verdadeiro� ent ao a lista contendocomandos �� ser�a executada� Se condi-c�ao� for � �falso� ent ao ser�a a lista comandos ��
a ser executada� A seq�u�encia de comandos
a � input�Entre com o valor de a � ���
if a � �
b � loga�
else
b � expa�
end
quando executada fornecendo a � � produz
Entre com o valor de a � �
b �
���� �
Se a for positivo ent ao o logaritmo natural de a ser�a atribu��do a b e se a for negativo ou nuloent ao b ser�a igual ao exponencial de a�
� Cap��tulo � MATLAB como linguagem de programa�c�ao
����� Estrutura if�elseif�end
Quando houver mais de duas alternativas� a estrutura if�else�end do MATLAB torna�se
if condi-c�ao ��
comandos ��
elseif condi-c�ao �
comandos �
elseif condi-c�ao ��
comandos ��
�
�
�
else
comandos ��
end
A lista comandos �� ser�a executada se condi-c�ao �� for igual a � �verdadeiro�� j�a a lis�ta comandos � ser�a executada se condi-c�ao � for � e assim para as outras condi�c oes�Se nenhuma das condi�c oes for � ent ao comandos �� ser�a executada� Quando a primei�ra condi-c�ao� for satisfeita e os comandos� executados� a estrutura if�elseif�end ser�aabandonada� ou seja� o controle do processamanto ser�a transferido para o comando imedia�tamente ap�os o end� Os comandos a seguir calculam o valor absoluto de um n�umero real oucomplexo
a � input�Entre com o valor de a � ���
if imaga� �� �
b � sqrtreala��" �imaga��" ��
elseif a �
b � �a�
else
b � a�
end
�a b�
Para a � � � �i�
Entre com o valor de a � ���i
ans �
������� ������i �������
Deste modo foi executado o primeiro comando para o qual a condi�c ao imaga� �� � foisatisfeita� Assim� na estrutura if�elseif�end uma �unica lista de comandos �e executada�
� Estruturas de repeti�cao
A estrutura de repeti�c ao faz com que uma seq�u�encia de comandos seja executada repetida�mente at�e que uma dada condi�c ao de interrup�c ao seja satisfeita� O MATLAB possui duasestruturas de repeti�c ao� as estruturas for�end e a while�end�
�� Estruturas de repeti�c�ao ��
����� Estrutura for�end
A estrutura for�end permite que um grupo de comandos seja repetido um n�umero espec���code vezes� Sua sintaxe �e
for vari�avel��arranjo�
comandos�
end
onde vari�avel� �e a vari�avel�de�controle que assume todos os valores contidos no vetorlinha arranjo�� Assim� o n�umero de repeti�c oes da lista comandos� �e igual ao n�umerode elementos no vetor arranjo�� A vari�avel�de�controle n ao pode ser rede�nida dentro daestrutura for�end� Os comandos
n � input�Valor de n � ��� s � �� n � n" �
for i � �� � �n��
s � s � i�
end� n � s
executados para n � �
n � input�Valor de n � ��� s � �� n � n" �
Valor de n � �
n �
�
s �
�
mostram que a soma dos n primeiros n�umeros ��mpares �e igual ao quadrado de n� pois para n� � a vari�avel�de�controle i assume os valores � � � � � Deve ser observado o uso do ���para suprimir a exibi�c ao de resultados intermedi�arios no c�alculo de s� Para mostrar que asestruturas for�end podem estar encadeadas� considere a seq�u�encia de comandos
n � input�Ordem do quadrado magico � ���
A � magicn��
Soma'Linhas � zerosn���� Soma'Colunas � zeros��n�� Soma'Diagonal � ��
for i � ��n
Soma'Diagonal � Soma'Diagonal � Ai�i��
for j � ��n
Soma'Linhasi� � Soma'Linhasi� � Ai�j��
Soma'Colunasj� � Soma'Colunasj� � Ai�j��
end
end
A� Soma'Linhas� Soma'Colunas� Soma'Diagonal
Para n � �
Ordem do quadrado magico � �
A �
�� � ��
� �� �� �
� � �
� Cap��tulo � MATLAB como linguagem de programa�c�ao
� �� �� �
Soma'Linhas �
��
��
��
��
Soma'Colunas �
�� �� �� ��
Soma'Diagonal �
��
Cumpre observar que o MATLAB possui comandos para determinar estes somat�orios de ummodo mais simples� pelo uso do comando sum que fornece a soma das colunas de uma matriz�
����� Estrutura while�end
A estrutura while�end� ao contr�ario da for�end� repete um grupo de comandos um n�umeroinde�nido de vezes� Sua sintaxe �e
while condi-c�ao�
comandos�
end
Enquanto a express ao l�ogica condi-c�ao� for verdadeiro a lista comandos� ser�a repetida�Por exemplo� para determinar a precis ao de um computador� os comandos
n � �� Epsilon � ��
while � � Epsilon � �
n � n � ��
Epsilon � Epsilon � �
end
n� Epsilon� eps
quando executados fornecem
n �
��
Epsilon �
����� e���
eps �
� ��e���
Epsilon �e a chamada precis ao da m�aquina �� ou seja� o maior n�umero que somado a � �eigual a �� Para computadores com aritm�etica IEEE � � ����� Comparada com a vari�avelespecial eps � ���� do MATLAB
�� ��eps��
ans �
� ��e���
�� ��Epsilon��
ans �
�
��� Arquivos M ��
Note que quando eps �e somado a � resulta em um n�umero maior do que �� O mesmo n aoocorre com Epsilon� porque qualquer valor igual ou menor do que ele somado a � ser�asimplesmente �� ou seja� o computador j�a n ao consegue mais representar � ��
����� Estrutura com interrup�cao no interior
A estrutura while�end permite que um grupo de comandos seja repetido um n�umero inde�terminado de vezes� no entanto� a condi�c ao de interrup�c ao �e testada no in��cio da estrutura�Em v�arias situa�c oes em programa�c ao se faz necess�ario interromper a execu�c ao da repeti�c aoveri�cando a condi�c ao no interior da estrutura e n ao no seu in��cio�
O comando break interrompe a execu�c ao de uma estrutura while�end ou for�end e transferea execu�c ao para o comando imediatamente seguinte ao end� Em repeti�c oes aninhadas� obreak interrompe a execu�c ao apenas da estrutura mais interna� Assim� uma repeti�c ao comcondi�c ao de interrup�c ao no interior pode ter a forma
while �
comandos ��
if condi-c�ao�
break
end
comandos �
end
A estrutura while�end �e executada inde�nidamente a princ��pio pois a condi�c ao do while
�e sempre verdadeiro� Contudo� quando a condi-c�ao� do if for satisfeita o comando breakser�a executado causando a interrup�c ao da repeti�c ao while�end� O conjunto de comandos
while �
a�input�Entre com a� a�� � ���
if a � �
break
end
dispratsa��
end
lista continuamente a representa�c ao racional de um n�umero fornecido enquanto este forpositivo� Deste modo� para a � � e a �
p�
Entre com a� a�� � pi
�������
Entre com a� a�� � sqrt �
�� �� ��
Entre com a� a�� � �
�� Arquivos M
Al�em de se poder entrar com cada comando de uma vez� o MATLAB permite� como qualqueroutra linguagem de programa�c ao� que seja executada uma seq�u�encia de comandos escrita em
�� Cap��tulo � MATLAB como linguagem de programa�c�ao
um arquivo� Por esta raz ao este tipo de arquivo �e chamado de roteiro �script� e deve possuira extens ao �m� Os arquivos de roteiro s ao particularmente �uteis para entrar com matrizes egrande quantidade de dados� deste modo� torna�se f�acil conferir e modi�car os seus valores�Ser ao apresentados dois tipos de roteiros� programa e fun�c ao�
����� Programa
Um programa de arquivo M tem acesso �a todas as vari�aveis no espa�co de trabalho e asvari�aveis criadas por ele far ao parte do espa�co de trabalho� Alguns comandos do MATLABs ao particularmente �uteis para facilitar a intera�c ao programa�usu�ario�
O comando vari�avel��input�texto��� exibe texto� e espera que um valor seja atri�bu��do �a vari�avel� e error�mensagem��� causa a interrup�c ao da execu�c ao de um pro�grama e exibe mensagem��
Considere o programa no arquivo decsomat�m para gerar uma matriz com elementos aleat�o�rios entre �� e � e decomp�o�la na soma de tr�es matrizes� uma triangular inferior� umadiagonal e outra triangular superior
n � input�Ordem da matriz � ���
A � fix ���randn������onesn����
D � diagdiagA���
L � trilA� � D�
U � triuA� � D�
A� L� D� U
Estes arquivos M podem ser criados usando um editor de texto qualquer e para executar umprograma basta entrar com o nome do arquivo que o contenha
�� decsomat
Ordem da matriz � �
A �
� � ��
��� �� � �
� � ��
L �
� � �
��� � �
� � �
D �
� � �
� �� �
� � ��
U �
� � ��
� � � �
� � �
O comando echo on �e usado para que os comandos do arquivo sejam mostrados durante aexecu�c ao� para suprimir a exibi�c ao basta usar echo off�
��� Arquivos M ��
Para exibir uma janela contendo um menu de escolha para o usu�ario �e utilizado o comandomenu� Sua sintaxe �e
vari�avel� � menu�t�2tulo����op-c�ao ���������op-c�ao n���
A cadeia de caracteres �t�2tulo�� ser�a apresentada na parte superior da janela do menu eas n op�c oes op-c�ao i�� ser ao colocadas �a disposi�c ao do usu�ario para que ele escolha umadelas� Se a k��esima op�c ao for escolhida ent ao este valor de k ser�a atribu��do a vari�avel��No exemplo a seguir� a escolha do m�etodo de Newton �terceira op�c ao do menu� faz com quea vari�avel m seja igual a ��
�� m � menu�Escolha o esquema ����secante���regula falsi���Newton��
m �
�
Para interromper a execu�c ao de um programa at�e que qualquer tecla seja acionada bastausar o comando pause� Para que a interrup�c ao seja por n segundos� ao inv�es de esperar peloacionamento de tecla� deve ser usado pause n�� O comando pause �e especialmente �utilquando da exibi�c ao de v�arios gr�a�cos�
x � �����������
for n � ���
plotx�sinx���x�"n�
pause
end
Os comandos pause off e pause on causam a desativa�c ao e ativa�c ao� respectivamente� deinterrup�c oes pelo pause ou pause n��
����� Comandos para execu�cao de expressoes
Antes de ser apresentado o segundo tipo de arquivo M �function� se faz necess�ario mostraros comandos para execu�c ao de express oes� O MATLAB possui dois comandos com esteprop�osito� feval e eval� os quais s ao de grande valia principalmente para o usu�ario criarnovas function#s� O comando
�v�� v�� � � � � vm� � feval�fun-c�ao��� a�� a�� � � � � an�
atribui os n argumentos a�� a�� � � � � an �a uma fun�c ao e retorna o resultado nas m vari�aveisv�� v�� � � � � vm� A fun�c ao �e especi�cada pela cadeia de caracteres �fun-c�ao�� que pode seruma express ao ou mesmo o nome de um arquivo contendo uma function onde a express aoest�a de�nida� Por isto os dois comandos a seguir para calcular resto de divis ao entre doisn�umeros s ao equivalentes
�� x � rem����
x �
�� y � feval�rem������
y �
Por outro lado� o comando eval�express�ao��� interpreta a express ao de�nida pela cadeiade caracteres �express�ao���
�� Cap��tulo � MATLAB como linguagem de programa�c�ao
�� r � eval�sinpi� ���
r �
�
�� x � �� y � eval� �x�expx�����
y �
�
Note que para avaliar uma express ao que possui a vari�avel x� esta tem que ser previamentede�nida� Um uso efetivo de eval �e mostrado na function pegaso da se�c ao ������ A fun�c aoeval �e tamb�em capaz de executar tarefas mais complexas� para tal considere o programacontido no arquivo tabeval�m
Tabela � ��sqrtx��
�expx� � � Observe o caractere branco entre � e �
���x���x���
n � input�Escolha a expressao � ���
x � input�Defina o argumento � ���
a � evalTabelan����
Para execut�a�lo
�� tabeval
Escolha a expressao � �
Defina o argumento �
a �
�������
Neste exemplo� como foi escolhido n � � ent ao a terceira express ao ser�a utilizada� Para x �
tem�se que a � �� ��� � �������� Considerando que a vari�avel Tabela �e uma matrizde caracteres� ela deve ent ao ter o mesmo n�umero de colunas �ver se�c ao ����� na p�agina ����
����� Subprograma function
Um outro tipo de arquivo de roteiro �e usado para o pr�oprio usu�ario criar novas fun�c oes parao MATLAB� Por exemplo� seja a fun�c ao para calcular as duas ra��zes de uma par�abola
function raizes � parabolaa�b�c�
�PARABOLA raizes de uma parabola�
� PARABOLAA�B�C� calcula as duas raizes da parabola
� PX� � A�X" � B�X � C � �
� retornando�as no vetor RAIZES�
delta � sqrtb" ���a�c��
raizes�� � �b � delta � � �a��
raizes � � �b � delta � � �a��
Al�em de aumentar a �exibilidade� os arquivos de fun�c ao tem o mesmo status que as outrasfun�c oes do MATLAB�
�� lookfor parabola
PARABOLA raizes de uma parabola�
��� Arquivos M ��
�� help parabola
PARABOLA raizes de uma parabola�
PARABOLAA�B�C� calcula as duas raizes da parabola
PX� � A�X" � B�X � C � �
retornando�as no vetor RAIZES�
O nome da fun�c ao tem que ser igual ao nome do arquivo M onde ela est�a de�nida� mas sema extens ao �m� ou seja� a fun�c ao parabola descrita acima deve estar no arquivo parabola�m�Um arquivo pode conter mais que uma function� sendo que a primeira delas deve ter onome desse arquivo� As outras function#s s�o podem ser chamadas pela primeira delas� n aosendo poss��vel serem chamadas por function#s escritas em um outro arquivo� Na realidadev�arias fun�c oes do MATLAB s ao arquivos M� Ao contr�ario do programa no qual as vari�aveiss ao globais� em uma function as vari�aveis s ao locais� ou seja� elas n ao tem acesso e nempodem criar vari�aveis no espa�co de trabalho� Por sua vez� os par�ametros de sa��da �raizesno caso da function parabola� s ao criados no espa�co de trabalho do MATLAB�
Os comandos nargin e nargout retornam o n�umero de argumentos de entrada e sa��da� res�pectivamente� especi�cados pelo usu�ario para uma function� A function pegaso calculao zero pertence ao intervalo �a b� da fun�c ao de�nida na cadeia de caracteres Funcao� uti�lizando o robusto e e�ciente m�etodo p�egaso� Nesta function �e utilizado o comando eval
para avalia�c ao de express ao� o qual �e descrito na se�c ao ������
function �Raiz�Erro�Iter� � pegasofuncao�a�b�Toler�IterMax�Exibe�
�PEGASO Calculo de raiz de equacao pelo metodo pegaso�
�
� PEGASOFUNCAO�A�B�TOLER�ITERMAX�EXIBE� calcula a raiz de uma
� equacao FX��� contida no intervalo �A B� com tolerancia TOLER
� e com no maximo ITERMAX iteracoes� usando o metodo pegaso�
� sendo a funcao FX� dada na cadeia de caracteres FUNCAO�
� EXIBE especifica se os resultados intermediarios serao
� mostrados� O� nao exibe e �� exibe�
� FUNCAO� A e B sao necessarios enquanto que TOLER� ITERMAX e
� EXIBE terao valores pre�definidos caso nao sejam fornecidos�
�
if nargin �� error�Numero de argumentos insuficientes��� end
if nargin �� Toler � �e���� end
if nargin �� IterMax � ���� end
if nargin �� Exibe � �� end
x � a� Fa � evalfuncao�� x � b� Fb � evalfuncao��
if Exibe �� �
disp� Calculo de raiz de equacao pelo metodo pegaso��
disp�iter a b x Fx delta'x��
end
k � �� x � b� Fx � Fb�
while �
k � k � �� DeltaX � �Fx � Fb � Fa� � b � a��
x � x � DeltaX� Fx � evalfuncao��
if Exibe �� �
�� Cap��tulo � MATLAB como linguagem de programa�c�ao
fprintf���i�����f�����f�����f�����e�����e!n��k�a�b�x�Fx�DeltaX��
end
if absDeltaX� Toler # absFx� Toler� $ k �� IterMax�� break� end
if Fx�Fb � a � b� Fa � Fb� else Fa � Fa � Fb � Fb � Fx�� end
b � x� Fb � Fx�
end
Raiz � x�
if nargout � �� Erro � absDeltaX� �� Toler $ absFx� �� Toler� end
if nargout � � Iter � k� end
Os argumentos Funcao� a e b devem ser fornecidos sen ao uma mensagem de erro ser�a exibidae a execu�c ao da function interrompida� No entanto� os argumentos Toler �toler�ancia daraiz�� IterMax �n�umero m�aximo de itera�c oes� e Exibe �exibe resultados intermedi�arios� s aoopcionais� caso n ao sejam inclu��dos na lista de argumentos de entrada ser ao atribu��dos valorespr�e�de�nidos� Se forem especi�cados mais de seis argumentos de sa��da haver�a a exibi�c ao deuma mensagem de erro e a interrup�c ao da function�
Se nenhum ou apenas um argumento de sa��da for especi�cado ent ao ser�a retornado a raiz daequa�c ao na vari�avel Raiz� Se forem dois argumentos ent ao al�em da Raiz ser�a retornado acondi�c ao de erro na vari�avel Erro� Se forem tr�es argumentos de sa��da ent ao ser ao retornadosRaiz� Erro e o n�umero de itera�c oes Iter� Mais de tr�es argumentos de sa��da causam aexibi�c ao de uma mensagem de erro e a n ao execu�c ao da function�
Para calcular a raiz de f�x� � cos�x� � ��px � � pertencente ao intervalo ! �"� comtoler�ancia � � ���� com no m�aximo � itera�c oes� listando os resultados intermedi�arios eretornado a raiz� a condi�c ao de erro e o n�umero de itera�c oes
�� �r�e�i� � pegaso�cosx" ����sqrtx������� ��e��������
Calculo de raiz de equacao pelo metodo pegaso
iter a b x Fx delta'x
� ������� ������ ���� � ��� � �e��� ���� ���e���
������ ���� � �� � ����� �e��� ��� �e���
� ������ �� � ������� ���� ��e��� ���� ��e���
� �� � ������� ��� �� �������e��� ����� ��e���
� ������� ��� �� ������� �������e�� �������e��
r �
������
e �
�
i �
�
Por sua vez� calculando a mesma raiz com os argumentos de entrada opcionais previamenteatribu��dos� ou seja� toler�ancia � � ����� m�aximo de � itera�c oes� n ao listando os resultadosintermedi�arios e al�em disto retornado somente a raiz e a condi�c ao de erro
�� �r�e� � pegaso�cosx" ����sqrtx������� �
r �
������
��� Exerc��cios ��
e �
�
Conforme j�a mencionado� a vari�aveis de uma function s ao locais� ou seja� s�o podem ser refe�renciadas internamente� n ao sendo reconhecidas pelo espa�co de trabalho e outras function#s�No entanto� al�em do uso de argumentos� um outro modo de trocar informa�c oes entre o espa�code trabalho e functions#s �e pelo uso de vari�aveis globais� A declara�c ao
global lista de vari�aveis�
faz com que as vari�aveis especi�cadas na lista de vari�aveis� tornem�se globais e por�tanto esta declara�c ao deve aparecer no programa e nas function#s de interesse� O uso devari�aveis globais torna mais dif��cil o entedimento e a modi�ca�c ao das function#s� al�em detornar os m�odulos do programa menos independentes� Por estas raz oes� a utiliza�c ao devari�aveis globais deve ser evitada�
O comando return colocado dentro de uma function causa um retorno normal para ocomando seguinte �aquele que chamou a function� Ele �e �util quando da consist�encia dosdados�
����� Depura�cao de programa
O comando keyboard interrompe a execu�c ao de um programa e transfere o controle parao teclado� Este modo especial� indicado pela letra K antes dos caracteres ��� permite listarvari�aveis ou mesmo executar qualquer comando do MATLAB� O modo criado pelo keyboardtermina com a execu�c ao do comando return�
����� Gerenciamento de arquivos
O MATLAB fornece diversos comandos para gerenciamento de arquivos� os quais s ao mos�trados na tabela ����
comando descri�c ao
what lista os arquivos �m� �mat e �mex do diret�orio corrente�dir ou ls lista os arquivos do diret�orio corrrente�type nome do arquivo� exibe o arquivo nome do arquivo��m�delete nome do arquivo� remove o arquivo nome do arquivo��cd dir� ou chdir dir� muda o diret�orio para dir��cd ou chdir ou pwd mostra o diret�orio corrente�which nome do arquivo� mostra em que diret�orio est�a nome do arquivo��m�
Tabela ���� Comandos para gerenciamento de arquivos�
� Exerc��cios
Se�c�ao � �
���� Veri�car as diferen�cas entre os formatos de exibi�c ao para as vari�aveis a�sqrt ��e�exp���� x������ y�x� e M�rand���
� Cap��tulo � MATLAB como linguagem de programa�c�ao
a� M� dispa�� dispM��format bank� x� dispx�� format short e� a� e� x�
format compact� a� e�x� format� fprintf������f �� ��e!n��a�e��
fprintf�����f!n��x�� fprintf�����f!n��y�
���� Observar os resultados dos comandos para controle do espa�co de trabalho utilizando asvari�aveis do exerc��cio ����
who� whos� save� clear� who� load� whos�
save esptrab x y� clear� who� load esptrab� whos� x� y
���� Gravar os comandos do exerc��cio ��� no arquivo diario e usar type diario para ver oseu conte�udo�
���� Gerar uma tabela de x� sen�x�� � x � ��� e grav�a�la no arquivo seno�dat�
���� Acrescentar o valor � �� sen�� �� na �ultima linha do arquivo seno�dat gravado noexerc��cio ����
Se�c�ao � �
���� Qual o valor de b da estrutura if�end mostrada na se�c ao ����� para a � ���
���� Encontrar o valor de b da estrutura if�else�end da se�c ao ����� para a � ���
��� De�nir o valor de b da estrutura if�else�end da se�c ao ����� para a � ��
���� Achar o valor de b da estrutura if�elseif�end da se�c ao ����� para a � ���
���� Qual o valor de b da estrutura if�elseif�end da se�c ao ����� para a � ���i�
Se�c�ao � �
����� Determinar o valor de s da estrutura for�end mostrada na se�c ao ����� para n � ��
����� Calcular a soma das linhas� das colunas e da diagonal de um quadrado m�agico deordem ��
����� Explicar como �e feita a determina�c ao da precis ao de um computador�
����� Escrever os comandos para calcular a norma�� de um vetor x com n elementos ecomparar com a fun�c ao norm do MATLAB�
����� De�nir os comandos para calcular a norma�� de uma matriz A de ordem n e compararcom a fun�c ao norm�
Se�c�ao � �
����� Escrever uma function para calcular o valor absoluto de um n�umero real ou complexo�
��� Exerc��cios ��
����� Dadas as matrizes triangulares U � fuijg e L � flijg e os vetores b e c� escrever umafunction para calcular x tal que Ux � b e outra para calcular y tal que Ly � c�
�BBBBBBB�
u�� u�� u�� � � � u�nu�� u�� � � � u�n
u�� � � � u�n���unn
�CCCCCCCA
�BBBBBBB�
x�x�x����xn
�CCCCCCCA�
�BBBBBBB�
b�b�b����bn
�CCCCCCCAe
�BBBBBBB�
l��l�� l��l�� l�� l�����
������
ln� ln� ln� � � � lnn
�CCCCCCCA
�BBBBBBB�
y�y�y����yn
�CCCCCCCA�
�BBBBBBB�
c�c�c����cn
�CCCCCCCA
���� Criar o arquivo almaxmin�m
n�input�Ordem da matriz � ���
A�randn��
maior�maxmaxA��
menor�minminA��
����� Executar o programa acima para n � �� � e ��
���� Gerenciar o diret�orio usando
what� dir� which almaxmin� type almaxmin� delete almaxmin�m� what
� Cap��tulo � MATLAB como linguagem de programa�c�ao
Cap��tulo �
MATLAB para Computa�c�ao Cient���ca
��� Medidas de tempo e opera�coes
O MATLAB prov�e dois modos de analisar o desempenho de um dado m�etodo� o tempo deexecu�c ao e o n�umero de opera�c oes aritm�eticas�
Usando o tic�toc �e poss��vel saber o tempo gasto para a execu�c ao de um grupo de comandos�A sua sintaxe �e
tic
comandos�
vari�avel��toc
O tic inicia a contagem do tempo e o toc fornece o tempo� em segundos� passado desdeo �ultimo tic� A atribui�c ao do tempo gasto a vari�avel� �e opcional� No entanto� se ocomputador estiver executando v�arias tarefas simultaneamente� tic�toc pode n ao ser umamedida muito con��avel� Uma medida mais con��avel �e obtida por cputime que fornece otempo de CPU �unidade central de processamento� que �e o tempo gasto para execu�c ao deopera�c oes aritm�eticas e l�ogicas� A sua sintaxe �e
vari�avel ���cputime
comandos�
vari�avel ��cputime�vari�avel ��
Por sua vez a fun�c ao flops fornece o n�umero acumulado de opera�c oes de ponto �utuante�bastando executar o comando flops�� para zerar o contador� Cumpre observar que flopsn ao conta exatamente todas as opera�c oes mas sim as que o MATLAB considera mais im�portantes� Al�em disso� a avalia�c ao de uma fun�c ao elementar �seno� exponencial� etc� paraargumento real �e contado apenas como uma opera�c ao aritm�etica� o que est�a longe de serverdade� Portanto� flops deve ser usado com cautela� Por exemplo� considere a execu�c aodo programa no arquivo medidas�m
A�magic����� B�rand�����
tic� t�cputime� flops���
A�B�
operacoes�flops�
tic'toc�toc�
��
�� Cap��tulo �� MATLAB para Computa�c�ao Cient��ca
tempo'de'cpu�cputime�t�
megaflops�operacoes����e���tempo'de'cpu�
operacoes� tic'toc� tempo'de'cpu� megaflops
Os resultados produzidos em uma esta�c ao de trabalho SUN � foram
�� medidas
operacoes �
��������
tic'toc �
������
tempo'de'cpu �
�����
megaflops �
�����
A diferen�ca de tempo produzida por tic�toc e cputime pode ser bem signi�cativa se ocomputador estiver executando outros programas ao mesmo tempo� Observe que toc deveestar ap�os flops pois ele requer � opera�c oes� �E sabido que a multiplica�c ao matricial entreduas matrizes de ordem n demanda �n��n� opera�c oes� no entanto o MATLAB s�o considerao termo de maior grau �� � ��� � �����
��� �Algebra linear
O nome MATLAB �e um acronismo de MATrix LABoratory �laborat�orio de matriz�� e certa�mente �e na �area de �algebra linear que o MATLAB apresenta suas maiores pontencialidades�Nesta se�c ao ser ao mostrados alguns comandos do programa relativos aos t�opicos usualmenteabordados em textos de C�alculo Num�erico� Para um conhecimento mais amplo dos comandosdo MATLAB com respeito �a vetores e matrizes usar o comando help matfun�
����� Decomposi�coes e inversa
A fun�c ao cholX� fatora uma matriz sim�etrica de�nida positiva pelo m�etodo de Cholesky� H�adois usos� U�cholX� produz uma matriz triangular superior U tal que U��U�X� Se X n ao forde�nida positiva ent ao ser�a emitida uma mensagem de erro� Por outro lado� �U�p��cholX�nunca produz uma mensagem de erro� Se X for de�nida positiva ent ao p�� e U ser�a igual aomencionado acima� Por�em� se X n ao for de�nida positiva ent ao p ser�a um inteiro positivoe U ser�a uma matriz triangular superior de ordem p�� tal que U��U�X��p�����p���� Porexemplo�
�� A��� � � � �� ��� �� ����
�� U�cholA�
U �
�� �
� � �
� � �
�� B��� � �� � � �� � � ��
B �
� � �
���� �Algebra linear ��
� � �
� � �
�� U�cholB�
*** Error using ��� chol
Matrix must be positive definite�
�� �U�p��cholB�
U �
� �
� �
p �
�
�� U��U
ans �
� �
� �
A fun�c ao luX� faz a decomposi�c ao LU da matrix X usando pivota�c ao parcial� O usodo comando �L�U�P��luX� gera uma matriz triangular inferior unit�aria L� uma matriztriangular superior U e uma matriz de permuta�c oes P� tal que P�X�L�U� Contudo� o uso de�E�D��luX� produz D�U e P�E�L de modo que X�E�D� Por exemplo�
�� M�� �� �� � � ��� � � ��
M �
�� �
� � ��
� � �
�� �L�U�P��luM�
L �
������ � �
�� ��� ������ �
������ ������� ������
U �
������ ������ �������
� ������ �� ���
� � ��� �
P �
� � �
� � �
� � �
�� R�P�M�L�U � P�M � L�U
R �
� � �
� � �
� � �
�� �E�D��luM�
E �
������ ������� ������
�� Cap��tulo �� MATLAB para Computa�c�ao Cient��ca
������ � �
�� ��� ������ �
D �
������ ������ �������
� ������ �� ���
� � ��� �
�� R�M�E�D � M � E�D
R �
� � �
� � �
� � �
A fun�c ao invX� calcula a inversa de X� tal que X�invX��eyesizeX��� Para a matriz Macima
�� N�invM�
N �
������ �� �� �������
���� � ��� �� ������
��� � ������� ������
�� roundM�N�
ans �
� � �
� � �
� � �
A fun�c ao qrX� faz a decomposi�c aoQR da matriz X de dimens aom�n� Esta fatoriza�c ao podeser usada tanto para matriz quadrada quanto para matriz retangular� O uso de �Q�R��qrX�produz uma matriz ortonormal Q de ordemm �Q��Q�eyesizeQ��� e uma matriz triangularsuperior R com a mesma dimens ao m � n de X� de modo que X�QR� J�a �Q�R�P��qrX�
produz uma matriz ortogonal Q� uma matriz triangular superior R com elementos da diagonaldecrescentes e uma matriz de permuta�c oes P de ordem n� tal que X�P�Q�R� Por exemplo�
�� A�� ��� � �� � ��� � ��
A �
��
� �
� ��
� �
�� �Q�R��qrA�
Q �
��� �� ���� � ������� �������
����� � ���� �� ������ �������
������ ������ ��� �� ��� �
��� ��� ����� � ������� ���� �
R �
������� ������
� � �� ��
� �
���� �Algebra linear ��
� �
�� roundQ��Q� � Q e� ortonormal
ans �
� � � �
� � � �
� � � �
� � � �
�� roundA�Q�R� � A � Q�R
ans �
� �
� �
� �
� �
�� �Q�R�P��qrA�
Q �
������� ������� ������� �������
������ ������� ������ �������
���� �� ������� ������ ��� ���
������ ����� � ������ ������
R �
��� �� �� ��
� ���� ��
� �
� �
P �
� �
� �
�� roundA�P�Q�R� � A�P � Q�R
ans �
� �
� �
� �
� �
A fun�c ao svdX� faz a decomposi�c ao do valor singular de uma matriz X de dimens ao m� n�O comando �U�S�V��svdX� produz uma matriz ortonormal U de ordem m� uma matrizdiagonal S de dimens ao m � n contendo os valores singulares de X em ordem decrescentee uma matriz ortonormal V de ordem n� de modo que X�U�S�V�� Para se obter apenas osvalores singulares de X em um vetor s basta s�svdX�� O uso de �U�S�V��svdX��� produzuma decomposi�c ao mais econ�omica pois para m � n ter�se��a apenas as n primeiras colunasde U e S ser�a de ordem n� Por exemplo�
�� A�� ��� � �� � ��� � ���
�� �U�S�V��svdA�
U �
������� ������ ������� �������
������ ������ ������ �������
������� ������� ��� �� ��� �
�� Cap��tulo �� MATLAB para Computa�c�ao Cient��ca
����� ���� �� ������� ���� �
S �
� ����� �
� �� � �
� �
� �
V �
��� �� �������
������ ��� ��
�� roundU��U� � U e� ortonormal
ans �
� � � �
� � � �
� � � �
� � � �
�� roundV��V� � V e� ortonormal
ans �
� �
� �
�� roundA�U�S�V�� � A � U�S�V
ans �
� �
� �
� �
� �
�� s�svdA�
s �
� �����
�� � �
�� �U�S�V��svdA���
U �
������� ������
������ ������
������� �������
����� ���� ��
S �
� ����� �
� �� � �
V �
��� �� �������
������ ��� ��
����� Solu�cao de sistemas
Dado um sistema Ax � b� a solu�c ao x pode ser facilmente calculada pelo MATLAB pelooperador !� por exemplo� para um sistema com matriz sim�etrica
�� A��� � � � �� ��� �� ���
���� �Algebra linear ��
A �
� �
� �� ��
�� ��
�� b��� �� �����
b �
�
��
���
�� x�A!b
x �
�
�
��
�� r�b�A�x��
r �
� � �
No caso de uma matriz n ao�sim�etrica
�� A��� �� � � � ��� � �� ��
A �
� ��
� � ��
� �� �
�� b���� ��� ��
b �
��
���
�� x�A!b
x �
�����
�������
������
�� r�b�A�x��
r �
� � �
����� Autovalores e autovetores
Os autovalores s ao as ra��zes do polin�omio caracter��stico da matriz� A fun�c ao poly constr�oio polin�omio caracter��stico de uma matriz� Por exemplo�
�� A��� �� �� �� � � � ��
A �
� �� �
�� �
� �
� Cap��tulo �� MATLAB para Computa�c�ao Cient��ca
�� p�polyA�
p �
������ �������� ������� �� �����
�� e�rootsp�
e �
� ���
�����
������
A fun�c ao eigA� permite o c�alculo do autosistema de A �autovalores e autovetores� por umm�etodo mais e�ciente do que construindo o polin�omio caracter��stico� O uso de �V�D��eigA�produz uma matriz diagonal D contendo os autovalores � e uma matriz V com os correspon�dentes autovetores� Para obter apenas os autovalores em um vetor d basta d�eigA�� Se amatriz for sim�etrica ent ao os autovetores s ao mutuamente ortogonais �V��V�eyesizeA����Para a matriz sim�etrica A de�nida acima
�� �V�D��eigA�
V �
������� ������ ��� ��
������ ����� �� ���
������� ����� �����
D �
����� � �
� ������ �
� � � ���
�� d�eigA�
d �
�����
������
� ���
�� roundV��V�
ans �
� � �
� � �
� � �
����� Normas e condi�cao
O MATLAB possui uma fun�c ao para calcular diversas normas de vetores e matrizes� bem co�mo uma fun�c ao para determinar o n�umero de condi�c ao de matrizes� A fun�c ao normX�p� for�nece a norma p de um vetor ou matriz X� No caso de um vetor x� p pode ser qualquer n�umero�inteiro ou real� positivo ou negativo�� al�em dos caracteres inf �normx�inf��maxabsx���e �inf �normx��inf��minabsx���� Se o par�ametro p for omitido ent ao �e assumido p� �ou seja� normx��normx� �� No caso de uma matriz X� p pode ser somente �� � inf ou�fro� �Frobenius� e se ele for omitido tamb�em �e assumido p� �normX��normX� ��� Porexemplo�
�� x��� � � ���
�� A��� �� � � �� � � ��
���� �Algebra linear ��
�� normx� �� normx�
ans �
�����
ans �
�����
�� normx���
ans �
��
�� normx�inf�
ans �
�
�� normA� �� normA�
ans �
�������
ans �
�������
�� normA��fro��
ans �
������
A fun�c ao dota�b� calcula o produto interno entre os vetores a e b� os quais devem ter omesmo tamanho� Se A e B forem matrizes ent ao dotA�B� produzir�a um vetor linha contendoo produto interno entre as correspondentes colunas de A e B� Assim�
�� v�����
�� y�������
�� d�dotv�y�
d �
���
A fun�c ao condX� calcula o n�umero de condi�c ao da matriz X de�nido em termos da norma���ou seja�
condX� � ��X� � kXk�kX��k�Para a matrix
�� B��� � �� �� � �� � ��
�� condB�
ans �
�����
A fun�c ao rcondX� fornece uma estimativa do rec��proco do n�umero de condi�c ao de X de�nidoem termos da norma��� Se X for uma matriz bem�condicionada ent ao rcondX� �e pr�oximode � e se X for mal�condicionada rcondX� ser�a pr�oximo de � Para a matriz B acima
�� r�rcondB�
r �
������
�� ��r
ans �
� ���
� Cap��tulo �� MATLAB para Computa�c�ao Cient��ca
A fun�c ao detX� calcula o determinante da matriz X� Para A e B de�nidas previamente�
�� detA�
ans �
�
�� detB�
ans �
�
A fun�c ao traceM� determina o tra�co da matriz M� isto �e� a soma dos elementos da suadiagonal principal� Para a matriz A de�nida anteriormente�
�� t � traceA�
t �
��
�� C�alculo de zero e m��nimo de fun�cao
O MATLAB possui fun�c oes para manipular polin�omios� calcular ra��zes de equa�c oes e deter�minar os m��nimos de fun�c oes� Para mais informa�c oes sobre estes t�opicos usar help polyfun�
����� Opera�coes com polin omios
O MATLAB fornece v�arias fun�c oes que permitem que as opera�c oes envolvendo polin�omiosseja feita de um modo bem simples� No MATLAB� os coe�cientes de um polin�omio s aode�nidos como elementos de um vetor como por exemplo� P �x� � c�x
n c�xn�� � � � cnx
cn� �e representado pelo vetor c�
Avalia�c�ao
Um polin�omio pode ser avaliado no MATLAB pela fun�c ao polyvalc�x�� onde o vetor ccont�em os coe�cientes do polin�omio e x cont�em os pontos nos quais ele deve ser avaliado�Por exemplo� para avaliar P �x� � �x� � �x �x� �x� � �x � nos pontos x � �� �� �� � e�
�� c � �� � � � �� ���
�� x � ����
�� y � polyvalc�x�
y �
�� � � ��� �� � ��
Adi�c�ao e subtra�c�ao
Apesar do MATLAB n ao dispor de uma fun�c ao para adicionar polin�omios� esta opera�c aopode ser efetuada pela adi�c ao vetorial� Assim� para somar os polin�omios a�x� � �x���x� �e b�x� � �x� �x� � x� � basta�� a � �� �� � ���
��� C�alculo de zero e m��nimo de fun�c�ao ��
�� b � � � �� ����
�� c � a � b
c �
� � �� ��
resultando c�x� � �x� x� � x� �� e para subtrair�� d � a � b
d �
� � � �
Se os polin�omios tiverem graus diferentes ent ao o vetor correspondente ao de menor graudeve ser preenchido com zeros �a esquerda de modo que ambos vetores tenham o mesmotamanho� Por exemplo� para somar e�x� � �x� �x� �x� � e f�x� � ��x ��� e � � � � ����
�� f � �� � �� ��
�� g � e � f
g �
� �
Multiplica�c�ao
Se os vetores a e b cont�em os coe�cientes dos polin�omios a�x� e b�x�� respectivamente� ent aoos coe�cientes do polin�omio resultante da multiplica�c ao de a�x� por b�x� pode ser obtido pelafun�c ao conva�b�� Por exemplo� a multiplica�c ao de a�x� � �x� � �x � por b�x� � �x� ��e feita no MATLAB por meio de
�� a � �� �� ���
�� b � � ����
�� c � conva�b�
c �
� ��� �� ��
resultando no polin�omio c�x� � �x����x� ��x��� Para multiplicar mais de dois polin�omiosa fun�c ao conv deve ser usada repetidamente�
Divis�ao
O comando �q�r��deconva�b� faz a divis ao entre os polin�omios cujos coe�cientes s ao oselementos dos vetores a e b� respectivamente� O vetor q cont�em os coe�cientes do polin�omioquociente e o vetor r cont�em os coe�cientes do polin�omio obtido pelo resto da divis ao� ouseja� a�convq�b��r� Por exemplo� a divis ao de d�x� � �x � �x� �x� � �x � pore�x� � x� � �x � �e efetuada por�� d � � �� � �� ���
�� e � �� �� ���
�� �q�r� � deconvd�e�
q �
� ��
r �
� � � � ��
�� Cap��tulo �� MATLAB para Computa�c�ao Cient��ca
resultado no quociente q�x� � �x� �x �� com resto r�x� � ��x� ��
Deriva�c�ao
O MATLAB oferece a fun�c ao polyder para a deriva�c ao polinomial� Deste modo� para obtera primeira e segunda derivada de P �x� � x �x� � ��x� ��x� ��� p � �� �� �� ����
�� p� � polyderp�
p� �
� � � � ��
�� p � polyderp��
p �
� � � �
resultando P ��x� � �x� �x� � ��x �� e P ���x� � ��x� ��x� ���
Constru�c�ao a partir das razes
Dadas as ra��zes de uma equa�c ao polinomial em um vetor r� a fun�c ao polyr� constr�oi opolin�omio associado� Por exemplo� se � � ��� � � � e � � � ent ao�� r � ��� � ���
�� p � polyr�
p �
� �� � �
produz o polin�omio P �x� � x� � �x� �x ���
����� C�alculo de ra��zes
O MATLAB possui duas poderosas fun�c oes para o c�alculo de raiz de equa�c ao� A fun�c aoroots obt�em todas as ra��zes de uma equa�c ao alg�ebrica e a fun�c ao fzero determina uma raizde uma equa�c ao alg�ebrica ou transcendente�
Fun�c�ao roots
Se o vetor linha c cont�em os coe�cientes do polin�omio P �x� � c�xn c�x
n�� � � � cnx cn�ent ao a fun�c ao rootsc� fornecer�a um vetor coluna contendo as n ra��zes de P �x� � � Porexemplo� para calcular as � ra��zes de P �x� � x �x� � ��x� � ��x� �� � �� c � �� ��� ��� ���
�� r � rootsc�
r �
�������
������
� �����
������
��� C�alculo de zero e m��nimo de fun�c�ao ��
Pode ser mostrado que as ra��zes de P �x� � s ao os autovalores da matriz companheira
C �
�BBBBBBB�
�c��c� �c��c� � � � �cn�c� �cn��c�� � � � � � � � ���
������
������
� � � �
�CCCCCCCA�
Deste modo� r � rootsc� �e equivalente �a
�� n � lengthc� � ��
�� C � diagonesn����������
�� C���� � �c �n����c��
C �
� �� �� � �
� � � �
� � � �
� � � �
�� r � eigC�
r �
�������
������
� �����
������
Fun�c�ao fzero
A fun�c ao fzero permite o c�alculo da raiz de uma equa�c ao qualquer de uma vari�avel� Suasintaxe �e
fzero�fun-c�ao���x�� ou
fzero�fun-c�ao���x��toler� ou
fzero�fun-c�ao���x��toler�exibe�
onde �fun-c�ao�� �e o nome de um arquivo M� no qual a fun�c ao �e de�nida� x� �e o valorinicial� toler �e a toler�ancia para a raiz �se n ao de�nida ent ao eps � ���������� �e usada�e se exibe �� as itera�c oes ser ao mostradas� Por exemplo� calcular uma raiz da equa�c aof�x� � �x�sen�x�e�x � de�nida no arquivo f�m abaixo e cujo esbo�co �e apresentado na�gura ����
function y � fx�
y � ��x" �sinx��exp�x��
com x���� usando toler�ancia padr ao eps e sem exibir as itera�c oes�
�� raiz � fzero�f�� �
Zero found in the interval� ���� � �� ���
raiz �
������
�� Cap��tulo �� MATLAB para Computa�c�ao Cient��ca
0 1 2 3 4 5 6 7 8 9 10−1
−0.5
0
0.5
1
1.5
2
x
f(x)
f(x)=3x2sen(x)e−x
Figura ���� Ra��zes� m�aximo e m��nimo de f�x� � �x� sen�x�e�x�
A fun�c ao fzero �e uma implementa�c ao do efetivo e e�ciente algoritmo de van Wijngaarden�Dekker�Brent baseado em aproxima�c ao quadr�atica inversa e bisse�c ao�
����� Determina�cao dos m��nimos de fun�coes
A fun�c ao fmin�fun-c�ao���a�b� determina o m��nimo de uma fun�c ao de uma vari�avel que seencontra no intervalo �a� b�� A cadeia de caracteres �fun-c�ao�� pode ser uma express ao ouo nome de um arquivo M no qual a fun�c ao est�a de�nida� Para a fun�c ao f�x� � �x�sen�x�e�x
de�nida no arquivo f�m na se�c ao ����� existe um m��nimo no intervalo ��� ��� conforme a�gura ���� Este m��nimo pode ser obtido usando o arquivo M
�� minimo � fmin�f������
minimo �
�� ��
ou especi�cando diretamente a express ao
�� minimo � fmin���x" �sinx��exp�x�������
minimo �
�� ��
Considerando que o m�aximo de f�x� �e igual ao m��nimo de �f�x�� ent ao o m�aximo def�x� � �x�sen�x�e�x � ��� �� �e calculado por�� maximo � fmin����x" �sinx��exp�x����� �
maximo �
��� ��
O help deve ser usado para obter mais informa�c oes sobre fmin e a fun�c ao fmins� usada paracalcular o m��nimo de fun�c ao de v�arias vari�aveis�
��� Interpola�cao e ajuste de curvas
O MATLAB possui fun�c oes para c�alculo das diferen�cas �nitas ascendentes� interpola�c aounidimensional e bidimensional e para regress ao polinomial�
���� Interpola�c�ao e ajuste de curvas ��
����� C�alculo das diferen�cas nitas ascendentes
A fun�c ao diffx� calcula a diferen�ca entre dois elementos adjacentes do vetor x� No casode x ser uma matriz ser ao tomadas as diferen�cas em cada uma das colunas� Por exemplo�
�� x � �� � � ��
x �
� � � �
�� d� � diffx�
d� �
� � �
Al�em disso� diffx�n� determina as diferen�cas �nitas de ordem n
�� d � diffx� �
d �
� � �
A fun�c ao diff pode tamb�em ser utilizada para estimar a derivada em um ponto de umafun�c ao tabelada�
����� Interpola�cao unidimensional
Dada uma tabela com pares �xi� yi� especi�cados nos vetores x e y� respectivamente� ent aoos valores de z contidos no vetor z podem ser interpolados usando a fun�c ao interp�� cujasintaxe �e
resultado� � interp�x�y�z��m�etodo���
onde a cadeia de caracteres �m�etodo�� especi�ca o m�etodo a ser utilizado na interpola�c ao�sendo
par�ametro m�etodo
�linear� interpola�c ao linear��cubic� interpola�c ao por polin�omios c�ubicos��spline� interpola�c ao por splines c�ubicos��nearest� interpola�c ao vizinho mais pr�oximo�
Quando o m�etodo n ao for especi�cado ser�a assumida uma interpola�c ao linear� Os valores dovetor x devem crescer ou decrescer monotonicamente� Por exemplo� sejam cinco pontos dafun�c ao y � x� para �� � x � � de�nidos por�� x � linspace�������� � abscissas dos pontos
�� y � x�"�� � ordenadas
Interpolando o valor z � � � usando os quatro m�etodos
�� interp�x�y������linear��
ans �
������
�� Cap��tulo �� MATLAB para Computa�c�ao Cient��ca
�� interp�x�y������cubic��
ans �
���� �
�� interp�x�y������spline��
ans �
�� � �
�� interp�x�y������nearest��
ans �
���� �
Considerando que o valor exato �e � � � � ���� o m�etodo de interpola�c ao com splines
c�ubicos produziu o melhor resultado para este caso�
As aproxima�c oes da fun�c ao y � x por tr�es fun�c oes interpoladoras de interp� podem servisualizadas pelos comandos
x� � linspace��������� � abscissas para a interpolacao
y� � x��"�� � ordenadas da curva real
c � interp�x�y�x���cubic��� � interpolacao cubica
s � interp�x�y�x���spline��� � interpolacao por splines
plotx�y��o��x�y������x��y������x��c������x��s������ grid on
xlabel�x��� ylabel�y��� title��M��setstr �����todos de interp����
legend�pontos���linear���y�x"����cubica���splines���� � coloca legenda
A partir dos � pontos em x� foram criados os vetores c e s que cont�em as ordenadas obtidaspor interpola�c ao usando polin�omios c�ubicos e splines� respectivamente� A �gura ��� mostragra�camente os resultados da fun�c ao interp�� Os cinco pontos iniciais est ao representadospor o� Uma interpola�c ao linear �e feita implicitamente desde que o comando plot interligaos pontos por retas� O gr�a�co da fun�c ao y � x est�a representado por uma linha s�olida�a aproxima�c ao por polin�omios c�ubicos por uma linha tracejada e os splines por uma linhapontilhada� Usualmente os splines produzem uma aproxima�c ao mais suave da fun�c ao comopode ser observado neste caso� Deve ser mencionado que a fun�c ao interp pode ser usadapara se obter uma interpola�c ao bidimensional�
����� Ajuste polinomial
O comando c � polyfitx�y�n� atribui ao vetor c os valores dos coe�cientes do polin�omiode quadrados m��nimos de grau n que melhor se ajusta aos pontos �xi� yi� de�nidos nos vetoresx e y� O polin�omio �e na forma
Pn�x� � c�xn c�x
n�� c�xn�� � � � cnx cn��
Para exempli�car o uso de polyfit� sejam os dados relacionando a temperatura em grausCelsius e Farenheit obtidos a partir de um term�ometro com pouca exatid ao
�� c � ��� �� �� � � � � � �� � ��
�� f � ��� �� � �� �� �� �� �� � ����
Para obter a reta de quadrados m��nimos �f � P��c� � b�c b� basta
���� Interpola�c�ao e ajuste de curvas ��
−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1−0.2
0
0.2
0.4
0.6
0.8
1
1.2
x
y
Métodos de interp1
pontos linear y=x4 cubica splines
Figura ���� Aproxima�c ao de y � x pela fun�c ao interp��
�� b � polyfitc�f���
b �
��� � �������
Apesar da pouca exatid ao dos dados o resultado n ao foi muito diferente da rela�c ao exataque �e F � �
�C ��� Os pontos do polin�omio de regress ao de grau � avaliados para os valores
de c� isto �e� P �ci� s ao obtidos pelo comando
�� p � polyvalb�c��
os quais podem ser mostrados juntamente com os res��duos do ajuste ri � fi � P �ci�
�� �c�f�p�f�p��
ans �
������� ������� ���� � ���� �
������� ������� ��� ��� ��� ���
������� � ����� ������� ��� �
������ ������� � � ��� ������
������ ������� ������� �� ���
������ ������� ��� ��� �����
������ ������� ������� �������
������ ������� ���� �� �� ���
������� � ����� ��� ��� ����
� ����� ������� ���� � ���� �
O diagrama de dispers ao com os pares �ci� fi� representados por o� bem como a reta dequadrados m��nimos s ao produzidos pela seq�u�encia
�� plotc�f��o��c�p�� grid on
�� xlabel�Graus Celsius��� ylabel�Graus Farenheit���
�� title�Ajuste polinomial de grau ���
gerando o gr�a�co da �gura ���� Cumpre observar que uma regress ao linear m�ultipla podeser obtida usando as fun�c oes qr ou svd descritas na se�c ao ������
� Cap��tulo �� MATLAB para Computa�c�ao Cient��ca
14 16 18 20 22 24 26 28 30 3240
42
44
46
48
50
52
Graus Celsius
Gra
us F
aren
heit
Ajuste polinomial de grau 1
Figura ���� Regress ao polinomial usando a fun�c ao polyfit�
�� Integra�cao num�erica
O MATLAB disp oe de algumas fun�c oes para calcular numericamente a integral de umafun�c ao de uma vari�avel�
Fun�c�ao trapz
A fun�c ao trapzx�y� calcula a integral de y � f�x�� com os pares �xi� yi� sendo de�nidosnos vetores x e y� respectivamente� usando a regra do trap�ezio� Se os valores xi tiverem umespa�camento unit�ario ent ao o par�ametro x poder�a ser omitido� Por exemplo� seja a fun�c aof�x� � cos��x ��x� x���� cujo esbo�co �e mostrado na �gura ���� Para calcular
1 2 3 4 5 6 7 8 9−60
−40
−20
0
20
40
60
80
100
x
f(x)
f(x)=cos(3x+1)x2+x1,5
Figura ���� Integra�c ao de f�x� � cos��x ��x� x����
Z �
�
cos��x ��x� x��� dx
usando trapz com espa�camento ��
���� Integra�c�ao num�erica ��
�� x � ������ �
�� y � cos��x�����x�" �x�"����
�� area � trapzx�y�
area �
�� ���
A fun�c ao a ser integrada pode tamb�em estar de�nida em uma function
function y � gx�
y � cos��x�����x�" �x�"����
Assim� para calcular a integral acima com espa�camento ��
�� x � ������� �
�� y � gx��
�� area � trapzx�y�
area �
�� �����
Considerando que o resultado exato da integral �e � ������� quando se diminui o es�pa�camento o resultado da integra�c ao num�erica torna�se mais exato�
Fun�c�oes quad e quad�
Um modo mais e�ciente de calcular uma integral numericamente com o MATLAB �e pelasfun�c oes quad e quad�� A suas sintaxes s ao
quad�fun-c�ao���a�b�toler"ancia��tra-ca��
quad��fun-c�ao���a�b�toler"ancia��tra-ca��
onde a cadeia de caracteres �fun-c�ao�� �e o nome de uma function na qual a fun�c ao a serintegrada est�a de�nida� a e b s ao os limites inferior e superior de integra�c ao� respectivamente�toler"ancia� especi�ca a toler�ancia para o c�alculo �se n ao especi�cada ent ao �e assumidoo valor ���� e tra-ca� �e um par�ametro que se tiver um valor n ao�nulo faz com que sejamostrado um esbo�co da integra�c ao� Tanto toler"ancia� quanto tra-ca� s ao par�ametrosopcionais� A fun�c ao quad� produz resultados mais exatos do que quad� Para calcular aintegral mostrada na se�c ao anterior
�� area � quad�g���� �
area �
�� �����
�� area � quad��g���� �
area �
�� �����
Uma integra�c ao mais exata pode ser obtida por
�� area � quad��g���� ��e����
area �
�� �����
Deve ser lembrado que as f�ormulas de Simpson produzem resultados mais exatos do que aregra do trap�ezio quando o mesmo n�umero de pontos s ao usados�