Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Matlab para mecatronica, Traduções de Matlab

MATLAB (MATrix LABoratory) trata-se de um software interativo de alta performance voltado para o cálculo numérico. O MATLAB integra análise numérica, cálculo com matrizes, processamento de sinais e construção de gráficos em ambiente fácil de usar onde problemas e soluções são expressos somente como eles são escritos matematicamente, ao contrário da programação tradicional.

Tipologia: Traduções

2021

Compartilhado em 25/01/2021

jhony-norton-2
jhony-norton-2 🇧🇷

4 documentos

1 / 60

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Programação Aplicada à
Engenharia
Curso Superior de Engenharia Mecatrônica
Ano 2018 - Versão 3.0
Versão do Aluno
Professor : Luís Oscar de Araujo Porto Henriques
- 1 -
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c

Pré-visualização parcial do texto

Baixe Matlab para mecatronica e outras Traduções em PDF para Matlab, somente na Docsity!

Programação Aplicada à

Engenharia

Curso Superior de Engenharia Mecatrônica

Ano 2018 - Versão 3.

Versão do Aluno

Professor : Luís Oscar de Araujo Porto Henriques

1 Introdução

1.1 O que é o OCTAVE?

O Octave é um software livre, escrito por Eaton (1997) e por vários outros colaboradores. Originalmente concebido como livro texto para estudantes de graduação de química para a resolução de equações químicas complexas; inicialmente foi escrita por James B. Rawlings da University of Wisconsin-Madison e John G. Ekerdt of the University of Texas. O Octave é um programa de linguagem aberta, logo muitas pessoas contribuem com sentenças de comando que são adicionados às versões em fase de teste, essas contribuições estão disponíveis no site da GNU Octave.

O software está disponível sob os termos da Licença Pública Geral do GNU (GPL) (Free Software Foundation, 1991).

O programa possui uma interface por linha de comandos para a solução numérica de problemas lineares e/ou não lineares e para implementar outros experimentos numéricos usando uma linguagem que é compatível com o programa comercial Matlab.

O Matlab foi desenvolvido no início da década de 80 por Cleve Moler, no Departamento de Ciência da Computação da Universidade do Novo México, EUA É um "software" interativo de alta performance voltado para o cálculo numérico. Faz análise numérica, cálculo com matrizes, processamento de sinais e construção de gráficos em ambiente fácil de usar, onde problemas e soluções são expressos somente como eles são escritos matematicamente, ao contrário da programação tradicional, os elementos básicos de informação é uma matriz que não requer dimensionamento. Além disso, as soluções dos problemas são expressas no MATLAB quase exatamente como elas são escritas matematicamente.

O Octave possui muitas ferramentas para a solução numérica de problemas comuns de álgebra linear, para a determinação de raízes de equações, polinômios e integração de equações diferenciais e equações diferencias algébricas.

Programas como o Octave são usados freqüentemente no lugar de linguagens de programação científica como o C ou Fortran, por já trazerem embutidas muitas ferramentas numéricas e permitirem a visualização gráfica dos resultados de forma mais fácil.

Instalação do OCTAVE

Para instalar o software, deve-se acessar o endereço https://www.gnu.org/software/octave/

Baixar o arquivo referente ao sistema operacional desejado, e instalar no computador.

Algumas constantes usadas em OCTAVE

Comando Função desempenhada pi π ( 3.141592...) i ( ou j) Unidade imaginária ( se forem atribuídos valores, eles serão encarados como variáveis comuns), Se não houver atribuição, eles valem: √- inf Infinito ans Resultado da ultima operação sem atribuição

Temos abaixo algumas de demonstrações de sistemas modelados neste tipo de software

1.4 Fazendo um exemplo simples

Suponha que temos dois pontos P1 e P2 cujas coordenadas são:

P1=(1,5) e P2=(4,7)

Queremos calcular a distancia entre dois pontos, que é a hipotenusa de um triângulo retângulo, conforme mostra a figura abaixo. Usando o teorema de Pitágoras, podemos calcular a distancia d com a seguinte equação:

Observaçôes: 1) o sinal de percentagem serve como comentário no Octave

2)Salve o arquivo com um nome sem acentos, espaços, e sinais alternativos.

Esta saída coincide com o valor que calculamos no exemplo manual. Se a solução OCTAVE não coincidir com o exemplo manual, devemos rever ambas soluções a fim de encontrar o erro.

Testem o programa de vocês agora com outros pontos:

P3=(4,-2) e P2=(10,2). A resposta deve ser de: 7.

Percebe-se que todas as vezes que precisamos mudar os valores dos pontos temos que abrir o arquivo salvo. Podemos fazer melhorias no programa com o objetivo de evitar a modificação do arquivo.

Façamos então:

%este programa calcula e imprime a distancia em linha reta, entre dois pontos

p1x=input('Entre com o valor de x do ponto 1:') p1y=input('Entre com o valor de y do ponto 1:') p2x=input('Entre com o valor de x do ponto 2:') p2y=input('Entre com o valor de y do ponto 2:') d=sqrt((p2x-p1x)^2+(p2y-p1y)^2) % calcula a distância

Obs: Podemos incluir no fim deste programa os seguintes comandos também.

Distancia=['A distancia entre os pontos é:' num2str(d)]; disp(Distancia)

1.5 Outro exemplo

Para entrar com uma matriz pequena, por exemplo usa-se

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

colocando colchetes em volta dos dados e separando as linhas por ponto e vírgula.. Quando se pressiona a tecla o OCTAVE responde com

Para inverter esta matriz usa-se

B = inv(A)

e o OCTAVE responde com o resultado.

(colocar aqui o resultado obtido) O que achou do resultado?

1.6- Funções especiais de matrizes no Octave

zeros(n) – Matriz quadrada de zeros de ordem n

ones(n) – Matriz quadrada de uns de ordem n

eye(n) – Matriz quadrada identidade de ordem n

size(A) – Retorna 2 valores: número de linhas e número de colunas da matriz A

length(A) – Retorna a maior dimensão da matriz A.

rank(A) – Posto de uma matriz A

eig(A) – Autovetores de A

max(A) – Maior valor da matriz por colunas

rand(m,n) – matriz de dimensão m x n em que os elementos são aleatoriamente distribuídos entre 0 e 1.

clc a = a+ b = b- pause(1) end disp('fim do loop')

a condição a<b é testada. Se ela for verdadeira o corpo do laço, será executado.

Então a condição é retestada, e se verdadeira o corpo será executado novamente. Quando o teste se tornar falso o laço terminará, e a execução continuará no comando que segue o laço após o end.

2.3 Declarações if e break

A seguir, é apresentado um exemplo do uso da declaração if no OCTAVE.

for i = 1:5, for j = 1:5, if i == j A(i,j) = 2; else if abs(i-j) == 1 A(i,j) = -1; else A(i,j) = 0; end end end end

Os valores de i e j variam de 1 a 5, varrendo toda a matriz A. Se (if) i for igual a j , A(i,j)=2 , ou se (elseif) o valor absoluto de i-j for igual a 1, A(i,j)=-1 , ou (else) A(i,j)=0 , se nenhuma das condições anteriores forem satisfeitas.

Vejam que estas declarações também podem conter o comando ELSE que executa outro conjunto de comandos se o resultado do IF for falso.

É conveniente, às vezes, controlarmos a saída deu m laço de outro modo além do teste, no início ou no fim do mesmo. O comando break permite uma saída antecipada de um for ou while. Um comando break faz com que o laço mais interno seja terminado imediatamente.

Exemplo a ser feito em casa.

caras=

coroas= quantidade_de_lancamento= x=rand(1,quantidade_de_lancamento)

for i=1:length(x) if x(i) <0. x(i)=0 %cara else x(i)=1 %coroa end end

figure hist(x); title('caras e coroas')

for i=1:length(x) if x(i)== caras=caras+1; else coroas=coroas+1; end end

P=caras/length(x)

Um elemento individual da matriz pode ser indicado incluindo os seus subscritos entre parênteses. Por exemplo, dada a matriz A:

a declaração

A(3,3) = A(1,3) + A(3,l)

resulta em

3.2 - OPERAÇÕES COM MATRIZES

As operações com matrizes no OCTAVE são as seguintes:

· Adição; · Subtração · Multiplicação; · Transposta;

A seguir cada uma dessas operações é mostrada com mais detalhe.

3.2.1 Transposta

O caracter apóstrofo, " ' " , indica a transposta de uma matriz. A declaração

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

>> B = A'

que resulta em

e

x = [-1 0 2]'

Produz

Se Z é uma matriz complexa, Z ' será o conjugado complexo composto. Para obter simplesmente a transposta de Z deve-se usar Z. ', como mostra o exemplo

Z = [1 2; 3 4] + [5 6; 7 8]*i Z1 = Z'

que resulta em:

3.2.2 Determinante

O determinante de uma matriz é obtido através do comando det(A).

Portanto, se

é aceitável, e resulta em

Ans = 4 É evidente que o resultado da multiplicação y'x* será o mesmo. Existem dois outros produtos que são transpostos um do outro.

x*y'

y*x'

3.2.5 Divisão

Existem dois símbolos para divisão de matrizes no OCTAVE "" e "/". Se A é uma matriz quadrada não singular, então A\B e B/A correspondem respectivamente à multiplicação à esquerda e à direita da matriz B pela inversa da matriz A , ou inv(A)B* e Binv(A),* mas o resultado é obtido diretamente. Em geral,

X = A\B é a solução de A*X = B

X = B/A é a solução de X*A = B

Por exemplo, como o vetor B foi definido como Ax,* a declaração

z = A\B

resulta em

3.2.6 Exponenciação

A expressão A^p eleva A à p -ésima potência e é definida se A é matriz quadrada e p um escalar. Se p é um inteiro maior do que um, a exponenciação é computada como múltiplas multiplicações. Por exemplo,

A^

Agora vamos aplicar este conhecimento na resolução de um sistema de equações baseado no circuito abaixo.

3.3 - OPERAÇÕES COM CONJUNTOS

O termo operações com conjuntos é usado quando as operações aritméticas são realizadas entre os elementos que ocupam as mesmas posições em cada matriz (elemento por elemento). As operações com conjuntos são feitas como as operações usuais, utilizando-se dos mesmos caracteres (" ***** ", " / ", " * ", "^" e " ") precedidos por um ponto ".* " (" .* ", " ./ ", " *.* ", ". ^ " e " .‘ ").

3.3.1 Adição e Subtração

Para a adição e a subtração, a operação com conjuntos e as operações com matrizes são as mesmas. Deste modo os caracteres "+" e "-" podem ser utilizados tanto para operações com matrizes como para operações com conjuntos.

Ou, a base pode ser um escalar.

z = 2.^[x y]

Z=

3.3.4 Operações Comparativas

Estes são os seis operadores usados para comparação de duas matrizes com as mesmas dimensões:

< menor

<= menor ou igual

maior

= maior ou igual

== igual

~= diferente

A comparação é feita entre os pares de elementos correspondentes e o resultado é uma matriz composta dos números um e zero, com um representando VERDADEIRO e zero, FALSO. Por exemplo ,

2 + 2 ~= 4

ans = 0 Pode-se usar, também os operadores lógicos & (e) e I (ou). Por exemplo,

1= = 1 & 4 = = 3

ans = 0

ans = 1

3.13 Funções Matemáticas e Lógicas

A funções trigonométricas incluídas no OCTAVE são

sin - seno cos - cosseno tan - tangente asin - arco-seno acos - arco-cosseno atan - arco-tangente

atan2 - arco-tangente para os quatro quadrantes sinh - seno hiperbólico cosh - cosseno hiperbólico tanh - tangente hiperbólica asinh - arco-seno hiperbólico acosh - arco-cosseno hiperbólico atanh - arco-tangente hiperbólico

OCTAVE inclui como funções elementares

abs(x) - valor absoluto ou módulo de um número complexo angle(x) - ângulo de fase sqrt(x) - raiz quadrada real(x) - parte real imag(x) - parte imaginária conj(x) - complexo conjugado round(x) - arredondamento para o inteiro mais próximo fix(x) - arredondamento para o inteiro mais próximo de zero floor(x) - arredondamento para o inteiro mais próximo de - ceil(x) - arredondamento para o inteiro mais próximo de + sign(x) - função sinal rem(x,y) - remanescente ou módulo gcd - máximo divisor comum lcm - mínimo múltiplo comum exp(x) - exponencial de base e log(x) - logaritmo natural log10(x) - logaritmo de base 10 root(x) – encontra a raiz do polinômio cujos coeficientes estão no vetor x poly(x) – encontra os coeficientes do polinômico cujas raízes estão no vetor x