Вы находитесь на странице: 1из 8

Primeiros passos com Maxima e o Gnuplot

Cristiano Torezzan
Doutorando em Matemática Aplicada, IMECC-Unicamp
cristiano@ime.unicamp.br

1.1 - Entrando com os primeiros comandos:


Ao iniciar, o Maxima mostrará uma tela, geralmente divida em duas partes. Na parte superior existe um cursor
com indicando para a primeira linha de comando.
(%i1)
Digite uma linha de comando e finalize com um ponto e vírgula.
Exemplo 1:
(%i1) 1+1;
(%o1) 2
O resultado do comando (%i1) está armazenado em (o%1) e poderá ser utilizado em qualquer momento dentro
da sessão corrente.
Exemplo 2:
(%i3) 15^(%o2);
(%o15) 225

1.2 – Definições e atribuições


Use o comando : para atribui um valor fixo à uma variável.
Exemplo 3:
a:3;
Verifique:
2^a;

Use o comando := para definir uma função.


Exemplo 4:
f(x,y):= x^2+y^2;
Verifique:
f(2,3);
Para maiores informações consulte o Capitulo 6 (Expressões) do manual do maxima;

1.3 – Resolvendo sistemas lineares e equações


linsolve[equação_1,equação_2,...,equação_n,variável_1,...,variável_m]
solve[expressão = expressão,variável]

Exemplo 10:
linsolve([x+y+z=5,3*x-5*y=10,y+2*z=3],[x,y,z]);

Exemplo 11:
solve(x^2-5*x+6 =0,x);

O comando solve resolve também sistema linear


Exemplo 12:
solve([x+y=1,x+2*y=2],[x,y]);

Se o sistema for incompatível, o Maxima retorna: Inconsistent equations: ( )


Exemplo 13:
solve([x+y=1,x+y=2],[x,y]);

Para maiores informações consulte o Capitulo 22 (Equações) do manual do maxima;


1.4 – Manipulando matrizes

Definindo matrizes
A:matrix([1,2],[0,1]);
B:matrix([1,1],[1,1]);

Soma ou subtração de matrizes


A+B; ou A-B;

Produto de matrizes
A . B;

Inversa
invert(A); ou A^^-1;

Determinante
determinant(A);

Posto da matriz A
rank(A)

Transposta da matriz A
transpose(A);

Polinômio característico
charpoly(A,x)

Auto-valores da matriz A
eigenvalues (A)

Auto-vetores da matriz A
eigenvectors (A)

Forma triangular da matriz A


triangularize (A)

Forma escalonada da matriz A


echelon (A)

Outros comandos podem ser obtidos no Capitulo 27 (Matrizes e Álgebra Linear) do manual do maxima.
1.5 – Desenhando gráficos
Gráficos em 2D
plot2d (função, [domínio],opções)
plot2d ([parametric,x(t),y(t),[t,t_min,t_max],opções])

Exemplo 5: Gráfico de função


plot2d(sin(x),[x,0,2*%pi]);
1
sin(x)

0.5

-0.5

-1
0 1 2 3 4 5 6 7

Exemplo 6: Gráfico paramétrico


plot2d([parametric,t,t^2,[t,-2,2]]);
plot2d([parametric,t,t^2,[t,-2,2],[nticks,80]]);
4
t, t^2 4
t, t^2

3.5

Use a opção nticks


3.5

para melhorar a
3

2.5
2.5

2 aparência do gráfico, 2

1.5 ela define o número de 1.5

1 segmentos de reta que 1

0.5
irão compor a figura. 0.5

0
0
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2

Exemplo 7: Gráfico paramétrico sem distorção das escalas dos eixos.

É comum, ao desenharmos um círculo, obtermos na tela um gráfico com aparência de elipse. Isso
ocorre porque o programa que gera o gráfico atribui escalas diferentes para os eixos coordenados,
geralmente proporcionais às dimensões da tela do monitor.
Para resolver esse problema no Máxima você deve incluir a linha de comando abaixo, antes de
desenhar o gráfico:
set_plot_option ([gnuplot_preamble,"set size square"]);

Veja a diferença:

plot2d([parametric, cos(t),sin(t),[t,0,2*%pi],[nticks,80]]);

1
1 cos(t), sin(t)
cos(t), sin(t)
0.8
0.8

0.6
0.6

0.4
0.4
0.2
0.2
0
0
-0.2
-0.2
-0.4
-0.4
-0.6
-0.6
-0.8
-0.8
-1
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
-1
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
Gráficos em 3D

Gráfico de função
plot3d (função, [intervalo_x], [intervalo_y], opções);

Gráfico paramétrico
plot3d([x(u,v),y(u,v),z(u,v)],[u,u_min,u_max],[v,v_min,v_max],opções]);

Exemplo 8:
plot3d(sin(x)+cos(y),[x,-2*%pi,2*%pi],[y,-2*%pi,2*%pi]);
cos(y)+sin(x)

2
1.5
2 1
1.5 0.5
1 0
0.5 -0.5
0
-1
-0.5
-1 -1.5
-1.5 -2
-2
8
6
4
2
-8 0
-6 -4
-2 -2
0 -4
2
Exemplo 9: 4
6 8 -8
-6

plot3d(
[cos(v)*(10.0+6*cos(u)),
sin(v)*(10.0+6*cos(u)),
-6*sin(u)],
[u,0,2*%pi],[v,0,2*%pi],
);
Function

6
4
6 2
4
2 0
0
-2
-4 -2
-6
-4
-20 -6
-15
-10 20
-5 15
10
0 5
5 0
10 -5
-10
15 -15

Para maiores informações consulte o Capitulo 8 (Montando gráficos) do manual do maxima;


1.6 – Desenhando gráficos diretamente no gnuplot

O gnuplot é um software livre que desenha funções matemáticas, em 2D e 3D. O maxima utiliza o gnplot como
padrão para desenhar os gráficos. Isso pode ser percebido ao desenhar qualquer um dos gráficos acima.
A seguir, apresentamos alguns comandos que permitirão desenhar gráficos diretamente no gnuplot.
1.6.2 – Acessando o gnuplot.
Se você está trabalhando no software maxima, uma forma de acessar o gnuplot é traçar um gráfico qualquer a
apertar a “barra de espaço do teclado” assim que o gráfico for exibido. Isso automaticamente abrirá a janela de
comandos do gnuplot.

Outra forma de acessar o gnuplot é executando diretamente o arquivo (wgnuplot.exe) que se encontra na
mesma pasta onde foi instalado o maxima, na sub-pasta “bin”.
Ex: c:\Maxima-5.9.2\bin

1.6.2 – Gráficos em 2D.

O comando utilizado é: plot [x_min, x_max] f(x), g(x), ... , h(x)

Exemplo 15: Gráficos de funções de uma variável


plot [-10:10] sin(x),atan(x),cos(atan(x))

Exemplo 16: Desenho da área entre o gráfico de f(x) e o eixo x.


plot [-2*pi:2*pi] cos(x) with impulses

Exemplo 17: Gráficos paramétricos em 2D.


Para desenhar gráficos paramétricos inicialmente precisamos entrar no modo paramétrico, digitando:

set parametric

Em seguida definir os intervalos onde serão traçados os gráficos.

set trange [t_min, t_max]


Exemplo 18: Gráfico de funções paramétricas em 2D.
set xrange [-3:3] # define intervalo do eixo x que será exibido
set yrange [-3:3] # define intervalo do eixo x que será exibido
set size square # define a mesma escala para os eixos (não distorce)
plot -t,t,cos(t),cos(2*t),2*cos(t),sin(t),-cosh(t),sinh(t)
1.5 1 3
sin(x) cos(x) -t, t
atan(x) cos(t), cos(2*t)
0.8
cos(atan(x)) 2*cos(t), sin(t)
1 2 -cosh(t), sinh(t)
0.6

0.4
0.5 1
0.2

0 0 0

-0.2
-0.5 -1
-0.4

-0.6
-1 -2
-0.8

-1.5 -1 -3
-10 -5 0 5 10 -6 -4 -2 0 2 4 6 -3 -2 -1 0 1 2 3

Exemplo 16 Exemplo 17 Exemplo 18

Para desativar o modo paramétrico devemos digitar:


unset parametric
Dica: unset “função” desativa qualquer função carregada com set “função”
O gnuplot possui ainda uma função denominada reset que reinicia o gnuplot, desativando todas as opções
anteriores.

1.6.3 – Gráficos em 3D.

Em geral, o desenho de gráficos em 3D no gnuplot é feito de maneira análoga ao 2D, utilizando o comando
splot no lugar de plot.

Exemplo 19: Gráfico de uma função f(x,y) em 3D.


reset # reinicia o gnuplot
set xrange [-10:10] # define o intervalo para a variável x
set yrange [-10:10] # define o intervalo para a variável y
set isosample 50, 20 # define as opções de malha do gráfico
set hidden3d # esconde a parte de trás da figura-efeito3D

splot x*y # desenha a função

Exemplo 20: Gráfico de várias funções f(x,y) em 3D.


splot x**2+y**2, x**2-y**2, x**2 # para desenhar mais de uma função,
basta separá-las por vírgula;

Exemplo 21: Gráfico de uma função paramétrica 3D


reset # reinicia o gnuplot
set parametric # ativa o modo paramétrico
set title "Toro Paramétrico" # atribui um título ao gráfico
set urange [0:2*pi] # define o intervalo para a variável u
set vrange [0:2*pi] # define o intervalo para a variável v
set isosample 50, 20 # define as opções de malha do gráfico
set hidden3d # esconde a parte de trás da figura-efeito3D

splot (1-0.2*cos(v))*cos(u),(1-0.2*cos(v))*sin(u),0.2*sin(v)

Toro Parametrico
x*y x**2+y**2
100 x**2-y**2 (1-0.2*cos(v))*cos(u), (1-0.2*cos(v))*sin(u), 0.2*sin(v)
200 x**2
50
150 0.2
0.15
100 0.1
0 0.05
0
50 -0.05
-0.1
-50 -0.15
0 -0.2
-100 -50
-1.5
-100
-1

-10 -0.5
-5 0
-10
0 -5
0 -10 0.5
5 5 0 -5 -1.5
-10 10 10 5 -1
10 10 5 0 -5 1 -0.5
0
0.5
1.5 1
1.5
Exemplo 22: Outro exemplo de gráfico paramétrico em 3D

reset # reinicia o gnuplot


set parametric # modo paramétrico
set title “Garrafa de Klein” # título
set isosamples 40 # malha
set hidden3d # efeito 3D
set urange [0:2*pi] # intervalo de u
set vrange [0:2*pi] # intervalo de v
set zrange [-3:1.5] # intervalo de v
set autoscale z # permite que z seja reescalado automaticamente

splot cos(u)*u*(1cos(v)/2),sin(v)*u/2,sin(u)*u*(1+cos(v)/2)

Garrafa de Klein

cos(u)*u*(1+cos(v)/2), sin(v)*u/2, sin(u)*u*(1+cos(v)/2)

3
2
1
0
-1
-2
-3
-4
-5
-6
-7
-8

-6
-4 4
3
-2 2
0 1
2 0
4 -1
6 -2
8 -3

Exemplo 22

Exemplo 23: Vários gráficos paramétricos em 3D

reset # reinicia o gnuplot


set parametric # modo paramétrico
set title "Intersecção entre planos"
set isosamples 15 # malha
set hidden3d # efeito 3D
set urange [-4:4] # intervalo de u
set vrange [-4:4] # intervalo de v
set autoscale z # permite que z seja reescalado automaticamente

splot u,v,2*u-v , v+2*u, u, -v , -u, v, 3*u


Interseccao entre planos

u, v, 2*u-v
v+2*u, u, -v
-u, v, 3*u
15

10

-5

-10

-15

234
-1 0 1
-15 -10 -5 0 5 10 15 -4-3-2

Exemplo 23
O comando replot também pode ser usado para desenhar vários gráficos.

Exemplo 24: Vários gráficos com o comando replot

reset # reinicia o gnuplot


set parametric # modo paramétrico
set title "Dois toros" # título
set isosamples 30 # malha
set hidden3d # efeito 3D
set urange [0:2*pi] # intervalo de u
set vrange [0:2*pi] # intervalo de v
set zrange [-3:1.5] # intervalo de v
set autoscale z # permite que z seja reescalado automaticamente
set grid # ativa uma grade no plano inferior

splot cos(u)+.5*cos(u)*cos(v),sin(u)+.5*sin(u)*cos(v),.5*sin(v)
replot 1+cos(u)+.5*cos(u)*cos(v),.5*sin(v),sin(u)+.5*sin(u)*cos(v)

Dois toros

cos(u)+.5*cos(u)*cos(v), sin(u)+.5*sin(u)*cos(v), .5*sin(v)


1+cos(u)+.5*cos(u)*cos(v), .5*sin(v), sin(u)+.5*sin(u)*cos(v)

1.5
1
0.5
0
-0.5
-1
-1.5

1.5
-1.5 1
-1 0.5
-0.5
0 0
0.5 -0.5
1
1.5 -1
2
-1.5
2.5

Exemplo 24

Vários dos exemplos que aparecem neste texto foram retirados do site oficial do gnuplot. Onde podem ser
encontrados outros materiais, além de mais exemplos.

http://gnuplot.sourceforge.net/demo/

O mouse no gráfico 3D tem muito mais recursos. Com o botão da esquerda é possível rotacionar o
gráfico gerado livremente, com o botão do meio pressionado, se efetua um zoom para maior, se o
mouse for para a direita, indo para esquerda o gráfico se afasta (zoom para menor), para cima e para
baixo temos uma variação do eixo Z, ou uma variação na amplitude do gráfico. O mesmo efeito pode
ser obtido clicando os dois botões (no mouse de dois botões) que é equivalente ao terceiro botão.

Вам также может понравиться