Apostila Octave - Prof. Gerson Ulbricht - 16-10-2023
Apostila Octave - Prof. Gerson Ulbricht - 16-10-2023
Apostila Octave - Prof. Gerson Ulbricht - 16-10-2023
Software Numérico
Jaraguá do Sul – SC
2023
SUMÁRIO
2
O OCTAVE
3
CAPÍTULO 1: INTERFACE GRÁFICA DO OCTAVE
i ou j: Unidade imaginária
pi: valor de π
e: número de Euler
4
eps: (precisão de máquina. O maior número para o qual
1+ %eps = 1)
• a = 1;
• Var_1 = 2;
• 2var = 3;
• esta variável = 3;
• itens = 2;
• b = 2; B = 3; verifique se b e B têm o mesmo valor.
5
1.3 Limpar tela, limpar variáveis e comentários
Exemplo:
6
1.5 Comando Diary
Sintaxe:
diary('arquivo1')
(na sequência desenvolve-se qualquer tipo de comando ou
código)
diary('off')
Exemplo:
7
CAPÍTULO 2: PRINCIPAIS COMANDOS
Exemplos:
-->A = 3 * m ^ 2 + ...
--> 4 * 5 + ...
--> 5 * 3
A =
41.75
8
2.1 Operações Matemáticas
abs(x):Módulo de x
acos(x): Arco cosseno de x
cos(x): Cosseno de x
cosh(x): Cosseno hiperbólico
round(x): Arredonda o valor de x
sinh (x): Seno hiperbólico
tan(x): Tangente de x exp(n): Função exponencial
log10(x): Logaritmo de x na base 10
sum(x): Somatória de x
prod(x): Produtória de x
sumsq(x): Somatória dos quadrados dos elementos de x
< menor
<= menor ou igual
> maior
>= maior ou igual
== igual
~= diferente
& e
| ou
~ não
9
2.3 Operações com números complexos
>> A = 5 + 2 * i
A = 5 + 2i
>> B = 3 + 2 * i
B = 3 + 2i
>> A*B
ans = 11 + 16i
Exemplos:
-->A * B // Multiplicação
-->A / B // Divisão
-->A + B // Adição
-->A - B // Subtração
Por exemplo:
Função raiz quadrada com argumento negativo
>> sqrt(-2)
ans = 0.00000 + 1.41421i
Exercício
10
2.4 Mais algumas funções importantes
det - determinante
integrate - integração por
quadratura inv - matriz inversa
11
Exercícios
1) Dados:
x = [0.5 3.4 4 2.8 1.5];
y = [0.9 2.2 5 1.1 1.7];
Calcule:
a) x'
b) log(x), log10(x*y’), log2(x’*y)
c) ceil(x)
d) floor(y)
e) round(x.*y)
f) sqrt(x) + floor(y.*y)
g) Verifique se abs(2+2*%i) = sqrt(8)
Exercícios
1) Calcule:
a = sin(pi/2);
b = tan(pi);
c = cotg(pi/3);
d = cos(pi/4) + sin(pi/4);
2) Dados:
x = [0.5 3.4 4 2.8 1.5];
y = [0.9 2.2 5 1.1 1.7];
Calcule:
a) seno(x)
b) cosseno(x*.y)
c) tangente(y)
12
CAPÍTULO 3: VETORES, MATRIZES E SISTEMAS LINEARES
3.1 Vetores
Declaração de vetores:
X = [ x1 x2 x3 ...] vetor linha
X = [x1;x2;x3;...] vetor coluna
Transposição de vetores: X’
Exercícios:
2) Dados os vetores:
x = [1 2 3 4 5] e y = [2 4 6 8 10]
Calcule:
a) z = x + y;
b) O produto interno x•y;
c) Formas transpostas de x e y;
d) Dados z1 = x*y’; e z2 = x’*y; verifique se z1 = z2.
e) Multiplique x por y, elemento a elemento.
>> x=1:5
x =
1 2 3 4 5
>> x=[1:5]
x =
1 2 3 4 5
13
Outros incrementos podem ser usados, como por exemplo,
y=0:pi/4:pi
y =
Sintaxe:
variável = Valor_inicial:incremento:Valor_final
Exemplos (verificar):
A = 1:10
B = 1:2:10
C = 1:0.2:10
D = 10:-1:1
E = 1:pi:20
F = 0:log(e):20
G = 20:-2*pi:-10
>> k=linspace(-pi,pi,4)
k =
14
3.2 Matrizes
--> A=[1 2; 3 4]
A =
1 2
3 4
5 6
7 8
Somar:
--> A+B
ans =
6 8
10 12
Subtrair:
--> A-B
ans =
-4 -4
-4 -4
Multiplicar:
--> A*B
ans =
19 22
43 50
15
3.2.2. Funções Matriciais
Dada a matriz A:
A =
1 2
3 4
Inversa de A:
--> inv(A)
Determinante de A:
--> det(A)
Diagonal de A:
--> diag(A)
1 0
3 4
1 2
0 4
16
X=eye(A) retorna matriz identidade com mesma dimensão que
A.
Dada a matriz A:
A =
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
5 6 7 8
3
7
11
15
17
3.2.4 Mais comandos para matrizes e vetores
1)Dimensão: length(x)
Exemplo:
-->rand(2,3)
ans =
-->x
x =
1. 2. 3. 4. 5. 3.
-->x=[x 3]
x =
1. 2. 3. 4. 5. 3. 3.
18
Exercícios - Operações com Vetores
X = [ pi e sin(pi) log(10)]
Y = [cos(10pi) 3.5 -2.2 pi²]
Exercícios - Matrizes
1) Lembre-se:
Matrizes com elementos unitários: A = ones(M,N)
Matrizes com elementos nulos: B = zeros(M,N)
Matriz identidade: A = eye(N,N)
Dadas as matrizes
A = [1 2 3;4 5 6]; e B = [7;8;9]
Determine:
a)A*B
b)B*A
c)A*identidade(A)
d)A*ones(A)
e)A*ones(A)’ + identidade(A)
f)Crie uma matriz 5X5 de números aleatórios.
19
IMPORTANTE
Exemplos:
Exemplo 1:
A = [1 2 3; 3 4 6; 7 8 9];
Exemplo 2:
x = -3:3;
a) faça y = x^2+2*x
b) faça y = x.^2+2.*x
Ax=b
onde:
A é a matriz dos coeficientes
x é o vetor das variáveis
b é o vetor dos termos independente
20
Esta solução pode ser também ser obtida com o operador
“divisão à esquerda”
cujo símbolo é “\”.
Sintaxe: x=A\b
Exemplo:
Dado o seguinte sistema linear:
3x + y + z = 20
2x - y - z = -15
-4x + y -5z = -41
3 1 1
2 -1 -1
-4 1 -5
-->b=[20;-15;-41]
b =
20
-15
-41
-->x=A\b
x =
1
8
9
21
Exercícios Diversos
1. Dados os vetores:
u = [-3 3 -1 0 5];
v = [2 1 -5 1 4];
w = [2 –1 –3 0 2];
calcular:
a) u*v
b) w*v
c) u*(v + w)
d) u*(v - w)
4 2 3
A 1 5 1
3 4 7
45 52 55 44 54 46
47 51 53 48 53 57
43 45 46 44 44 51
49 46 49 45 48 57
51 55 44 57 49 56
SOLUÇÃO:
» mean(X)
ans =
22
49.7500 49.0833 48.8333 47.8333 49.4167 50.8333
» S=cov(X)
S =
21.8409 7.1136 4.5000 -4.6818 -5.8864 -9.8636
7.1136 12.4470 3.7424 2.7424 2.9621 -2.1667
4.5000 3.7424 23.2424 -14.3939 5.0758 -6.3030
-4.6818 2.7424 -14.3939 22.8788 5.8939 12.9697
-5.8864 2.9621 5.0758 5.8939 18.2652 6.9848
-9.8636 -2.1667 -6.3030 12.9697 6.9848 22.5152
matrizdesvpad =
4.6734 0 0 0 0 0
0 3.5280 0 0 0 0
0 0 4.8210 0 0 0
0 0 0 4.7832 0 0
0 0 0 0 4.2738 0
0 0 0 0 0 4.7450
23
SOLUÇÃO:
x=[168;180;178;167;190;175;178;183;169;177;184;170];
%Obs: pode usar x=(X(:,1))
y=[89;82;67;72;95;70;75;80;70;73;85;68];
%Obs: pode usar x=(X(:,2))
plot(x,y,'*');
xlabel('Estaturas');
ylabel('Pesos');
title('Grafico das Observacoes e Media');
hold on;
plot(176.5833,77.1667,'ro');
hold off
24
CAPÍTULO 4: POLINÔMIOS
No Octave:
p=[1, 2, -3]
No Octave:
px=polyout(p,"x")
No Octave:
polyval(p,5)
Exemplo 1:
Calcular as raízes do polinômio: 2x³ + 5x² + 9x +3
p=[2, 5,9,3]
qx=polyout(p,"x")
25
roots(p)
Será gerado:
Multiplicação (Convolução):
26
Divisão (com resto inclusive):
27
CAPÍTULO 5: GRÁFICOS BIDIMENSIONAIS E TRIDIMENSIONAIS
a) Comando plot
plot(x,y): para plotar os dados no vetor x versus
vetor y.
plot(x1,y1,’tipo 1’,x2,y2,’tipo2’, ...): para plotar
diversas linhas ao mesmo tempo.
28
5.2 Gráficos 2D
x = (0:0.01:2) * pi;
y = sin(x);
plot(x,y);
29
Exemplo 1:
t = 0:0.1:10;
S = 5 + 10*t + 0.5*2*t.*t;
V = 10 + 2*t;
hold on %Abre o ambiente para plotar gráficos
plot(t,S,"-*r");%(-*r o tipo da linha)
plot(t,V,"-+b");%(-+b o tipo da linha)
title('Cinematica');
legend('Posicao', 'Velocidade');
hold off %Fecha o ambiente para plotar gráficos
Exemplo 2:
x=1:0.1:10;
y= sin(x);
plot(x,y,"r-")
title("Funcao y = sen(x) no intervalo [0, 10]")
xlabel("Eixo x")
ylabel("Eixo y")
30
Exemplo 3:
%CODIGO 1 %CODIGO 2
x = (0:0.1:2)*pi ;
y=sin(x); x = (0:0.1:2)*pi ;
z=cos(x); y=sin(x);
plot (x , y , ' r−' , x , z z=cos(x);
, ' b−∗ ' ) hold on %Abre o ambiente
legend (' seno ' , ' de plotagem
cosseno ')
title ( ' seno e cosseno ' plot (x , y , ' r−' )
) plot(x , z , ' b−∗ ' )
xlabel ( ' eixo x' ) legend (' seno ' , '
ylabel ( ' eixo y' ) cosseno ')
grid on title ( ' seno e cosseno '
)
xlabel ( ' eixo x' )
ylabel ( ' eixo y' )
grid on
hold off %Fecha o ambiente
de plotagem
Os dois códigos geram o mesmo gráfico
31
5.2.2 Apresentação de vários gráficos em uma mesma janela
Exemplo:
x = (0:1/100:2) * pi;
subplot(221)
plot(x,sin(x))
title("Seno no intervalo [0; 2pi]")
subplot(222)
plot(x,cos(x))
title("Cosseno no intervalo [0; 2pi]")
subplot(223)
plot(x,tan(x))
title("Tangente no intervalo [0; 2pi]")
subplot(224)
plot(x,sec(x))
title("Secante no intervalo [0; 2pi]")
32
5.2.3 Especificação do tipo e cor da linha e do marcador
Exemplo 1:
x=1:0.1:10;
y=sin(x);
plot(x,y,'r-d')
O símbolo – antes da
letra d é o tipo da linha.
Faça um experimento em
substituir o “-” por “--” ou
por “.” ou ainda por “..”.
33
Exemplo 2:
x=1:0.1:10;
y=sin(x);
plot(x,y,'b--+')
No Octave:
t=0:pi/20:2*pi;
plot(t,sin(t),'ro-',t,cos(t),'b*-')
34
5.2.5 Linhas de Grade
Exemplo:
Seja construir o gráfico da função y = sen(x) no
intervalo [0, 10] com a linha em vermelho, colocando os
títulos e as linhas de grade.
No Octave:
x=1:0.1:10;
plot(x,sin(x),"r-")
title("Funcao y = sen(x) no intervalo [0, 10]")
grid on
35
5.3 Gráficos 3D
Sintaxe: plot3(x,y,z)
t = 0:pi /50:10*pi;
y=sin(t);
z=cos(t);
plot3(y,z,t)
grid on
[x y] = meshgrid(-1:0.5:4,-1:0.5:5)
36
Exemplo 1:
No Octave:
[X,Y]=meshgrid(-5:0.1:5,-4:0.1:4);
Z=X.^2-Y.^2;
title('z=x2-y ^2');
mesh(X,Y,Z);
37
Exemplo 2: Representar graficamente uma distribuição normal
bivariada com vetor de médias x = [10 15] e matriz
4 0
covariância definida por:
0 9
(foram aplicados os dados de x e de ∑ acima, na expressão
referente à função densidade de probabilidade da função
normal bivariada resultando):
1 1 X 10 2 X 15 2
f (X1, X 2 ) exp 1 2
12 2 2 3
No Octave:
x1=2:0.1:8;
x2=1:0.1:12;
[x1,x2]=meshgrid(x1,x2);
z=(1/(12*pi))*exp(-0.5*(x1-5).^2-0.5*((x2-8)/2).^2);
mesh(z)
38
Exemplo 3: Comando plot3
t = 0:0.1:10*pi;
r = linspace (0, 1, length(t));
z = linspace (0, 1, length(t));
plot3 (r.*sin(t), r.*cos(t), z, 'linewidth',2);
Sintaxe: polar(ângulo,r,'parâmetros')
39
Exemplo 1: Função polar
t = 0:0.1:2*pi ;
polar(t , sin(2*t).*cos(2*t), '−−r ')
title('Coordenadas Polares ' )
% Discretizamos ro y theta
theta = linspace(0, 10*pi, 300);
ro = 3 - 5 .* (theta);
% Transformamos em cartesianas
x = ro .* cos(theta);
y = ro .* sin(theta);
% Plotamos
plot(x,y)
axis equal
40
5.4 Gráficos Estatísticos.
Exemplo 1:
x = [1 4 5 10 8 7 4 3 1];
bar(x)
Exemplo:
x = [1 4 5 10 8 7 4 3 1];
plot(x)
41
5.4.3 Gráfico de Barras
Exemplo 1:
x = [10 30 5 22];
barh(x)
42
5.4.5 Diagrama de Dispersão
Peso Estatura
68 160
69 165
76 168
70 163
89 182
83 188
56 161
54 160
76 175
70 167
plot(P,E,'*')
xtitle("Pesos X Estaturas")
xlabel('Pesos') //para rotular o eixo x.
ylabel('estaturas') //para rotular o eixo y.
43
CAPÍTULO 6: INTEGRAÇÃO
Definimos no Octave:
x=[2 3 4 5 6]
y=[10 13 15 12 4]
area(x,y)
44
Calculando a integral pela soma de trapézios:
>> trapz(x,y)
ans = 47
Alguns Exemplos:
Exemplo 1:
## Graficos de área
clf;
x = [-2:0.1:2]';
y = x.^2 - 1;
z = x.^3;
subplot (1, 2, 1)
area (x, y);
title ({"Parabola y = x^2 -1"});
subplot (1, 2, 2)
h = area (x, z);
title ({"Curva y = x^3"});
45
Integrais:
Área do gráfico 1:
Deve ser dividida em 3 partes:
x_area2=[-1:0.1:1]';
Parte y_area2 = x_area2.^2 - 1;
area3 = -1.3300
II area2= trapz(x_area2,y_area2)
x_area3=[1:0.1:2]';
Parte y_area3 = x_area3.^2 - 1;
area3 = 1.3350
III area3=trapz(x_area3,y_area3)
46
CAPÍTULO 7: PROGRAMAÇÃO
47
As figuras abaixo foram obtidas de:
http://www.uft.edu.br/engambiental/prof/catalunha/arquivos/octave/octave_Nuno.pdf
48
7.2 Estrutura de Repetição
7.2.1 While
7.2.1 For
49
7.3 Comando Break
REFERÊNCIAS
Site: https://octave.sourceforge.io
Site:
https://octaveintro.readthedocs.io/en/latest/graph.html
https://octave.sourceforge.io/list_functions.php?sort=packa
ge
http://www.uft.edu.br/engambiental/prof/catalunha/arquivos/
octave/octave_Nuno.pdf
50