Princípios de construção de programas no Octave

watch_later 21 de agosto de 2013
comment Comentar
Tecnologia
 



Os princípios de construção de programas no Octave são simples e muito úteis para aplicações em Engenharia. Para um melhor funcionamento deste software livre, a combinação de uso desejável é com algum sistema livre como o Ubuntu ou o Linux, por algumas incompatibilidades com o Windows. Mas, este problema é relativamente simples de resolver, já que estes softwares livres são de fácil instalação e não são ‘pesados’ (ocupam pequeno espaço de memória, podendo ser armazenados em pen drives, por exemplo).
Como a memória de armazenamento de um computador é finita e este trabalha usando um número finito de casas decimais (vide post Bases e Sistemas de Numeração), após o arredondamento, são incluídos erros nos resultados finais obtidos. Deve partir do programador o conhecimento necessário para avaliá-los e ver se são aceitáveis, bem como conseguir um método, dentro dos princípios de construção, que leve ao resultado esperado. Todos os valores calculados são em ponto flutuante, ou seja, trabalha-se nesta precisão finita, com espaço de memória aberto e reservado diretamente pelo Octave.
Para cada comando digitado, o Octave inclui uma sequência numerada, indicando ‘Octave 1’, Octave 2’, etc. Este comando pode ser uma simples atribuição de valores para variáveis, como a = 4 ou b = 5; - no caso de ausência de ponto-e-vírgula, os resultados são apresentados a cada nova linha do programa, caso contrário, ficam ‘guardados’ até o final da execução. Não é necessário escrever apenas um comando por linha, como por exemplo:

a=5; b=6; c=a+b

Para navegar entre diferentes comandos anteriores e alterá-los, caso a edição de código esteja sendo feita no próprio programa Octave, utiliza-se as setas direcionais ß e Ý para modificar comandos, e estes são alterados para todo o programa, na edição simples. Como dito anteriormente, o próprio programa aloca espaço de memória, tanto que, ao contrário de outras linguagens de programação como o C#, não é preciso declarar as dimensões de matrizes e vetores, cuja notação segue o exemplo abaixo:

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

Quando se deseja declarar matrizes ou vetores em que há alguma regra de formação dos elementos (intervalo entre um valor e outro), é possível realizar a seguinte estrutura: Nome do vetor = [valor inicial : razão da progressão aritmética : valor final], como no exemplo:

v = [0.1: 0.01: 0.2]
O que equivalerá ao vetor v = (0,1 0,11 0,12 0,13 0,14 0,15 0,16 0,17 0,18 0,19 0,2)
 
Desejando uma matriz com sequências deste modo, basta criar um vetor para cada coluna ou linha, e depois declará-la da forma M = [u v w]
Para realizar operações com matrizes, é importante observar que há diferenciação entre vetor linha e vetor coluna, sendo necessário observar as regras matemáticas que envolvem operações com matrizes. Os sinais das operações são: + (soma), - (subtração), * (multiplicação), (transposição), ^ (potenciação) e inv (inversão).
Para trabalhar com funções, como não é possível trabalhar com domínios infinitos, é preciso restringi-los a conjuntos de valores, de forma análoga ao ensino de funções durante o Fundamental, em que se fazem tabelinhas de valores para o domínio, a fim de aproximar-se a curva da função. Cria-se vetores domínio (vetorização) com intervalos predefinidos equidistantes, conforme visto acima. Depois, cria-se outro vetor que conterá o mesmo número de elementos do vetor domínio, que será o vetor imagem. Para isso, será necessário abrir mão de um recurso específico do Octave, que é a operação por componente vetorial, usando um ponto precedendo a operação. Por exemplo:

x = [0.1: 0.1: 0.3]
x = [0.1 0.2 0.3]
y = x.*x
y = [0.01 0.04 0.09]

Neste caso, estávamos tendo a função y = x². Se pode fazer qualquer estrutura polinomial com os valores do vetor domínio e jogá-los no vetor imagem, componente a componente. Mas é importantíssimo usar o ponto, senão y nada mais será do que uma operação matricial. Para obter a famosa tabelinha com os valores de x e y = f(x), cria-se uma matriz tabela T:

T = [x’ y’]

Para obter o gráfico da função, basta usar o comando plot, para diferentes tipos de gráfico:

plot (x, y) – gráfico com a curva aproximada, de acordo com a quantidade de pontos (componentes do domínio);
plot (x, y, ‘0’) – gráfico apenas com os pontos da função);
plot (x, y, ‘+’) – gráfico apenas com os pontos representados em cruzetas.

Com poucos valores de domínio, pode ser que a curva plotada seja estranha, muito reta. Para compensar o problema basta criar um vetor domínio com mais components.
Para fazer curvas paramétricas 2D e 3D, basta criar um domínio para t e criar funções usando os valores de t, como:

t=0:0.001:2*pi; x=cos(6*t); y=sin(2*t); plot(x,y)

ou

t=0.01:0.01:20*pi; x=2cos(2t); y=2sin(2t); z=t.^3;
plot3(x,y,z)

Os tradicionais comandos para/faça (que sem indicação alterna de 1 em 1), enquanto e se/senão são escritos na forma:

for i=1:m
comandos
end 

while condição
comandos
end 

if condição
comandos
else
comandos
end
 

Os algoritmos que compõem os programas a serem feitos no Octave podem ser feitos usando um editor de texto característico do Ubuntu, que é o gedit. Os programas podem ser editados e salvos com a extensão .m, usando os menus File / New. Depois, para facilitar os trabalhos, se pode informar ao gedit qual a linguagem de programação que está sendo usada, no caso, o Octave, usando a barra inferior. Assim, havendo erros no algoritmo, mesmo de digitação, o programa editor de texto avisa não dando destaque colorido em alguns comandos.
Após a construção do programa no editor de texto, é preciso referenciar em que pasta do PC está o programa desejado, sendo a pasta / equivalente à C:\\ no Windows, e as demais /pasta 1/ pasta 2/ pasta 3/ local do programa . Digita-se o comando pwd, agora no Octave mesmo, onde se vê as pastas já referenciadas. Caso a pasta onde estiver o programa ainda não for conhecida por este, é preciso usar o comando cd  e indicar a pasta onde está o programa. O nome do arquivo de extensão .m passa a valer como nome de comando, bastando apenas digitá-lo para rodar as instruções do programa criado no editor de texto. E para dúvidas sobre algum outro comando, basta usar help <comando>.
 


 
 

Þ Gostou desta postagem? Usando estes botões, compartilhe com seus amigos!
  • chevron_left
  • chevron_right

Seu comentário será publicado em breve e sua dúvida ou sugestão vista pelo Mestre Blogueiro. Caso queira comentar usando o Facebook, basta usar a caixa logo abaixo desta. Muito obrigado!

NÃO ESQUEÇA DE SEGUIR O BLOG DO MESTRE NAS REDES SOCIAIS (PELO MENU ≡ OU PELOS ÍCONES CIRCULARES) E ACOMPANHE AS NOVIDADES!

sentiment_satisfied Emojis do Google (texto para inserir)