Apostila de Matlab

Apostila de Matlab

(Parte 3 de 9)

As principais limitações do programa MATLAB são: 1) a execução de algoritmos em MATLAB é mais lenta que em linguagens de programação (C, Fortran, LISP, etc); 2) alguns procedimentos gráficos e de interação com o usuário são restritos aos comandos do MATLAB; 3) não é possível gerar arquivos executáveis com o MATLAB, ou seja, um arquivo MATLAB só poderá ser executado no ambiente MATALAB; e 4) o MATLAB é limitado para processamento de expressões matemáticas analíticas.

Os principais concorrentes do MATLAB no mercado são o MATHEMATICA, o

MATCAD e o MAPLE. Alguns destes programas apresentam melhor capacidade de processamento matemático analítico que o MATLAB, notadamente o MATCAD e o MATHEMATICA.

um arquivo MATLAB só poderá ser executado no ambiente MATLAB

3 OPERADORES, CONSTANTES E CARACTERES ESPECIAIS

3.1 Operadores aritméticos

Operador +

Propósito: executar soma de matrizes ou escalares. Sintaxe: v1+v2 ou plus(v1,v2). Descrição: Invoca a função PLUS. Caso seja soma de matrizes, as dimensões das matrizes devem ser iguais. Escalares podem ser somados com qualquer tipo de variável. Exemplos: a+b; plus(a,b); a+2.

Operador -

Propósito: executar subtração de matrizes ou escalares. Sintaxe: v1-v2 ou minus(v1,v2). Descrição: Invoca a função minus. Caso seja subtração de matrizes, as dimensões das matrizes devem ser iguais. Escalares podem ser subtraídos de qualquer tipo de variável. Exemplos: a-b; minus(a,b); a-2.

Operador *

Propósito: executar soma de matrizes ou escalares. Sintaxe: v1*v2 ou mtimes(v1,v2). Descrição: Invoca a função mtimes. Caso seja multiplicação de matrizes, o número de colunas da matriz v1 deve ser igual ao número de linhas da matriz v2. Escalares podem multiplicar qualquer tipo de variável. Exemplos: a*b (neste caso, o número de colunas de a é igual ao número de linhas de b); mtimes(a,b); a*2.

Operador (circunflexo)

Propósito: executar potenciação de matrizes quadradas com expoente escalar ou de de escalares com matriz quadrada no expoente. Sintaxe: v1v2 ou mpower(v1,v2).

Descrição: Invoca a função mpower. Caso v1 seja matriz quadrada e v2 seja um inteiro, é realizada a multiplicação sucessiva das matrizes. Caso v1 seja matriz e v2 seja um real, ou ainda se v1 é um escalar e v2 uma matriz, é realizado o cálculo através dos autovalores e dos autovetores da matriz. Se v1 e v2 forem ambos matrizes, ou ainda se v1 ou v2 forem matrizes não quadradas, então haverá erro. Exemplos: ab ou mpower(a,b) (neste caso, a é escalar e b é matriz quadrada; ou a é matriz quadrada e b é escalar; ou a e b são escalares).

Operador /

Propósito: executar divisão de escalares ou a multiplicação de uma matriz inversa por outra matriz (importante: na matemática não existe divisão de matrizes). É a chamada divisão direita. Sintaxe: v1/v2 ou mrdivide(v1,v2). Descrição: Invoca a função mrdivide. Esta operação é equivalente a v1*v2-1 (sendo v2-1 a matriz inversa da matriz v2). Para que esta operação seja possível é necessário que v2 seja inversível, ou seja, matriz não-singular (matriz quadrada com determinante não-nulo). Exemplos: a/b ou mrdivide(a,b).

Operador \

Propósito: executar divisão de escalares ou a multiplicação de uma matriz inversa por outra matriz. É a chamada divisão esquerda. Sintaxe: v1\v2 ou mldivide(v1,v2)

Descrição: Invoca a função mldivide. Esta operação é equivalente a v1-1 * (sendo v1-1 a matriz inversa da matriz v1). Para que esta operação seja possível é necessário que v1 seja inversível, ou seja, matriz não-singular (matriz quadrada com determinante não-nulo). Observe que na álgebra matricial a multiplicação não é comutativa, ou seja a*b é diferente de b*a, portanto a/b equivale a a*b-1 , que por sua vez é diferente de b\a, equivalente a b-1*a.

O operador \ executa a fatoração QR da matriz A ao resolver o sistema bAx=, para A de ordem nm×, para mnão necessariamente igual a n.

16 Exemplos: a\b ou mldivide(a,b).

Na matemática não existe operação de divisão com matrizes. Os operadores / e \ são apenas símbolos.

A multiplicação na álgebra matricial não é comutativa, ou seja, a*b é diferente de b*a.

Operador ‘

Propósito: executar a transposição de matrizes ou a declaração de uma cadeia de caracteres (string). Sintaxe: v1’ ou v2=’bom dia’ Descrição: v1’ produz a matriz v1*T (matriz transposta conjugada da matriz v1, troca de linhas por colunas dos conjugados dos números complexos da matriz v1). v2=’bom dia’ cria uma variável do tipo string, onde cada caractere ocupa 2 bytes na memória. Exemplos: a’*b ou salutation=’Hello!’.

Cada caractere ocupa 2 bytes de memória RAM nas variáveis tipo string. Cada variável real (float) ou inteira ocupa 8 bytes de memória. Em uma matriz de strings, a área de memória ocupada em bytes, 2 vezes, o número de caracteres. Em uma matriz de reais ou inteiros, a área de memória ocupada, em bytes, é 8 vezes o número de elementos da matriz.

3.2 Caracteres Especiais caracter .

Propósito: executar operações elemento-a-elemento (operações algébricas escalares (/,\,,*,’), não-matriciais); indexar campos em estruturas; ou ponto decimal. Sintaxe: a.*a; a./b; c.\f; x.2; x.y para operações algébricas; ou est.campo Descrição: a.*b multiplica o elemento a(i,j) pelo elemento b(i,j). a.’.

v1.opv2 executa a operação op de cada elemento de v1 com seu elemento correspondente em v2. No caso de operação entre matrizes, as matrizes devem possuir exatamente as mesmas dimensões. A operação com escalar pode ser realizada com matriz de qualquer dimensão. a.’ é a matriz transposta não conjugada da matriz a. est.camp seleciona o campo ‘camp’ da estrutura ‘est’. Exemplos: 2.x é diferente de 2x; x.*x é diferente de x*x. auto.peujeot seleciona o campo peujeot da estrutura auto.

O caractere . produz a operação elemento-a-elemento entre matrizes com exatamente a mesma dimensão ou entre escalares e matrizes.

caracter :

Descrição: j:k é o mesmo que [j j+1 j+2k], j:k é vazio se k<j. j:d:k é o mesmo
que [j j+d j+2*dk], j:d:k é vazio se k<j. d pode ser negativo, mas neste caso k

Propósito: Criar varredura limitada pelos números à direita e à esquerda de :. Sintaxe: j:k; j:d:k. deve ser menor que j. Exemplos: 1:10; 0:5:100; 100:-5:0.

caracter =

Propósito: executa atribuições Exemplos: x=[1 2 3; 4.5 6 7.5]; caracter ,

Propósito: separar elementos em uma matriz; indexar matrizes; separar argumento de uma função; separar comando em uma linha com vários comandos. Exemplos: 2*a(2,3); plot(x,y); x(i,j); mat=[a, b, c]; clear, disp(‘memória limpa’).

caracter ;

Propósito: usado em declaração de matrizes para separar linhas; ou usado para omitir a apresentação do resultado de uma operação na tela. Exemplos: x=[1 2 3; 9 8 7]; a=2+3; caracter !

Propósito: invoca comando do sistema operacional. Exemplos: ! mkdir novo.

caracter %

Propósito: torna o texto à direta de % um comentário. Exemplos: x=[1 2 3; 4.5 6 7.5]; %cria matriz x.

caracteres
Exemplos: cdsobe um diretório na hierarquia.
caracteres(três ou mais pontos)

Propósito: representa o primeiro diretório na hierarquia de diretórios.

Exemplos: a=2+

Propósito: representa continuação de linha. 3 é o mesmo que a=2+3.

caracteres ( )

Propósito: indicam precedência em operações matemáticas ou indexam matrizes. Exemplos: (a+b)c, a soma é realizada antes da potenciação; x(3) é o terceiro elemento do vetor x; x([1 2 3]) são os três primeiros elementos do vetor x.

caracter { }

Propósito: são utilizadas para formar estruturas (conjunto de células), onde cada célula pode ser outra estrutura, uma matriz ou uma string. Funciona como os [ ], porém seus elementos podem ser outras matrizes. Podem também ser utilizadas para indexar estruturas e dar acesso aos seus campos. Exemplo: l={‘isto’ ‘é’ ‘uma’ ‘matriz linha:’ [1 2 24]}, l é uma estrutura com 5 campos.

3.3 Operadores Lógicos caracteres & | ~

Propósito: realizam as operações lógicas e, ou e negação com os operadores &, | e ~, respectivamente. Sintaxe: a&b; A|c; ~d; os operandos a,b,c,d,A podem ser números reais (float), complexos (utiliza o módulo) ou strings (utiliza o valor da tabela ASCII). No MATLAB, 0 é considerado falso, e qualquer outro valor não-nulo é verdadeiro. O resultado destas operações será verdadeiro (1) ou falso (0). Exemplos: 5&-3 resulta em 1; ~10 resulta em 0; ‘alfa’|0 resulta em [1 1 1 1].

3.4 Operadores relacionais

(Parte 3 de 9)

Comentários