Octave Sistemas de Equações e Gráficos Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007 Sistemas de Equações e Gráficos 2.1 Sistemas de equações (1) A=[1, 2, 3; 2, 3, 4; 4, 2, 5] A= 123 234 425 B=[4;5;1] B= 4 5 1 Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007 Sistemas de Equações e Gráficos 2.2 Sistemas de equações (2) octave:84> D1=A; D1(:,1) = B D1 = Regra de Cramer (onde se substitui B nas colunas de A correspondentes a cada xi dividindo-se o determinante de A pelo da matriz obtida), pode ser calculado da seguinte forma. 423 534 125 octave:85> D2=A; D2(:,2) = B D2 = 143 254 415 octave:86> D3=A; D3(:,3) = B D3 = 124 235 421 octave:87> X=[det(D1); det(D2); det(D3)] / det(A) X= -1.40000 1.80000 0.60000 Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007 Sistemas de Equações e Gráficos 2.3 Sistemas de equações (3) Utilizando o operador \ (eliminação Gaussiana). octave:89> X =A \ B X= -1.40000 1.80000 0.60000 Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007 Sistemas de Equações e Gráficos 2.4 Inversa de uma matriz É feita utilizando o comando inv(M). octave:90> inv( A ) ans = -1.40000 0.80000 0.20000 -1.20000 1.40000 -0.40000 1.60000 -1.20000 0.20000 octave:90> A * inv( A ) ans = 1.00000 0.00000 0.00000 0.00000 1.00000 0.00000 0.00000 -0.00000 1.00000 Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007 Sistemas de Equações e Gráficos 2.5 Exercicios Propostos Resolver os seguintes sistemas de equações: 5x -3y = -1 5z + x= 2 x -4y -2z = 7 -2z +2y = 5 x + -5y +3z= -3 3x+ 2y = 4 Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007 Sistemas de Equações e Gráficos 2.6 Gráficos Os gráficos são feitos utilizando uma ferramenta OpenSource chamada GnuPlot. A comunicação entre o Octave e o GnuPlot é feita usando as funções gplot e gsplot, mas iremos apenas utilizar funções de mais alto nível. Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007 Sistemas de Equações e Gráficos 2.7 Gráficos simples (1) octave:19> x = [1,2,3] octave:20> y = [1,3,2] octave:21> plot(x,y) Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007 Sistemas de Equações e Gráficos 2.8 Gráficos simples (2) octave:19> x = 0:0.1:4 octave:20> y = sin(x) octave:21> plot(x,y) octave:19> x = 0:pi/90:4*pi; octave:20> y = sin(x); octave:21> plot(x,y); Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007 Sistemas de Equações e Gráficos 2.9 Gráficos simples (3) octave:29> xlabel('x,radianos'); octave:30> ylabel('sin(x)'); octave:31> grid; octave:32> replot Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007 Sistemas de Equações e Gráficos 2.10 Gráficos de barras octave:34> clearplot; octave:35> bar([20,10,30,15,30,30,40]) Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007 Sistemas de Equações e Gráficos 2.11 Histogramas octave:36> clearplot octave:37> a = [10,10,10,20,20,30]; octave:38> hist(a,[1,10,20,30]) O primeiro argumento da função contem a amostra de valores. O segundo o centro de distribuição. Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007 Sistemas de Equações e Gráficos 2.12 Gráficos sobrepostos Antes de cada comando, o Octave por omissão, limpa a janela de gráfico. Para tal não acontecer pode ser utilizado o comando hold on. octave:71> clearplot octave:72> hold on octave:73> x = -5*pi:pi/90:5*pi; octave:74> y1 = sin(x); octave:75> y2 = cos(x); octave:76> y3 = sin(x)+2*cos(x); octave:77> plot(x,y1) octave:78> plot(x,y2) octave:79> plot(x,y3) Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007 Sistemas de Equações e Gráficos 2.13 Multiplot (1) Permite apresentar vários gráficos em áreas da janela diferentes, usando para tal as funções multiplot e subwindow. Exemplos: multiplot(2,2) – cria ambiente para 4 janelas de gráficos. subwindow(2,1) – todos os gráficos apartir de agora serão apresentados na janela da 1ª linha, 2ª coluna. Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007 Sistemas de Equações e Gráficos 2.14 Multiplot (2) octave:93> multiplot(2,2) octave:94> subwindow(1,1) octave:95> xlabel("x, radianos") octave:96> ylabel("sin(x)") octave:97> title("G1") octave:98> plot(x,y1) octave:99> subwindow(2,2) octave:100> ylabel("cos(x)") octave:101> title("G2") octave:102> plot(x,y2) octave:103> subwindow(1,2) octave:104> >plot(x,x.*x) octave:105> subwindow(2,1) octave:106> plot(x,sqrt(x)) Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007 Sistemas de Equações e Gráficos 2.15 Gráficos 3D octave:30> clearplot octave:31> x = -10:0.5:10; octave:32> [X,Y]=meshdom(x,x); octave:33> hold on octave:34> grid octave:35> mesh(X,Y,-sqrt(X.^2+Y.^2)*5+40) octave:36> mesh(X,Y,X.^2+Y.^2) Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007 Sistemas de Equações e Gráficos 2.16 Exercicios Propostos (1) Apresente o gráfico da função: cos(x) +1 x-2 entre -2π e 2π, com um passo de uma décima. (2) Apresente o gráfico anterior lado a lado com o gráfico da função (x2)/3. (3) Apresente o gráfico da função: sin(x) (ex) entre -2π e 2π, com um passo de uma décima. (4) Apresente o gráfico anterior acima do gráfico da função: x loge(x) Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007 Sistemas de Equações e Gráficos 2.17