> restart;
A partir d'una llista de la forma L:=[y1,y2,...] es genera la llista [[1,y1],[2,y2],...] amb la funcio seguent:
> LL:= l->[seq([i,l[i]],i=1..nops(l))];
Aplicada a la llista L:=[1,sqrt(2),...,sqrt(25)] es veu
>
L:=[seq(sqrt(i),i=1..25)]:
LL(L);
Si es vol fer el dibuix d'aquests punts units per linies i amb un ombrejat de color vermell, una possibilitat seria
>
with(plots):
p1:=plot(LL(L), color=black,thickness=3):
p2:=plot(LL(L),filled=true,color=red):
p3:=plot(LL(L),style=point,symbol=circle,color=blue):
display(p1,p2,p3);
Si es vol convertir una llista L:=[[x1,x2,...],[y1,y2,...]] en la llista Lp:= [[x1,y1],[x2,y2],...] basta fer
> Lxy:= l->[seq([l[1,i],l[2,i]],i=1..nops(l[1]))];
> L:=[[seq(i,i=1..25)],[seq(sqrt(i),i=1..25)]];
> Lxy(L);
Les coordenades dels vertexs dels dos triangles equilaters determinats per un costat
es poden obtenir amb
>
restart;
with(geometry):
tr:= proc(A,B)
local a,b,c1,c2,p1,p2,d,x;
point(a,A);
point(b,B);
d:=distance(a,b);
circle(c1,[a,d]);
circle(c2,[b,d]);
intersection(x,c1,c2);
coordinates(x[1]),coordinates(x[2]);
end proc;
> tr([2,3],[5,1]);
> tr([-1,4],[2,1]);
Un dibuix de les dues situacions ajuda a veure que els calculs que es fan son correctes.
>
point(A,2,3);point(B,5,1);point(X1,tr(coordinates(A),coordinates(B))[1]);
point(X2,tr(coordinates(A),coordinates(B))[2]);line(AB,[A,B]);line(AX1,[A,X1]);
line(AX2,[A,X2]);line(BX1,[B,X1]);line(BX2,[B,X2]);
> draw([A,B,X1,X2,AB,AX1,AX2,BX1,BX2]);
>
point(A,-1,4);point(B,2,1);point(X1,tr(coordinates(A),coordinates(B))[1]);
point(X2,tr(coordinates(A),coordinates(B))[2]);line(AB,[A,B]);line(AX1,[A,X1]);
line(AX2,[A,X2]);line(BX1,[B,X1]);line(BX2,[B,X2]);
> draw([A,B,X1,X2,AB,AX1,AX2,BX1,BX2]);
Per a determinar el rang de les matrius que depenen d'un parametre no es Pot aplicar directament la funcio Rank ja que e resultat que donara sera el rang pel cas general (3) i no el dels cassos particulars.
>
restart;
with(LinearAlgebra):
En un cas sera
> m:= <<2 | 1+2*lambda | 1+lambda> , <lambda^2-1 | -1+lambda | -1+lambda> , <-2 | -lambda-2 | -2>>;
> Determinant(m);
> solve(%);
Per a
diferent de qualsevol dels valors anteriors (
0, -1, 1
) el rang ha de ser 3. Cal estudiar per separat aquests tres cassos.
> m1:= subs(lambda=0,m);
> Rank(m1);
> m2:=subs(lambda=-1,m);
> Rank(m2);
> m3:= subs(lambda=1,m);
> Rank(m3);
En l'altre cas es calcula
> m:=<<1+lambda | 2 | lambda+2> , <-1+lambda | lambda^2-1 | lambda^2-1> , <-3-lambda | -4 | -2*lambda-4>>;
> Determinant(m);
> solve(%);
Els cassos amb rang menor que 3 son els que corresponen als valors de
0, -1, 1
.
>
m1:=subs(lambda=0,m);
Rank(m1);
> m2:= subs(lambda=-1,m);Rank(m2);
> m3:= subs(lambda=1,m);Rank(m3);
>