Home Page
|
CoCoA System
Computations in
Commutative
Algebra
Çfarë është CoCoA?
|
|
This pages counts
visits
by
visitors
CoCoA është një program për të llogaritur numrat dhe polinomet.
Mund të gjëndet falas në Internet
Punon në shumë sisteme operativë
Pëdoret nga shumë studiues, por mund të jetë i dobishëm edhe për "llogaritjet" e thjeshta.
Çfarë mund të llogaritim ne me anë të CoCoA?
Numra të Plotë shumë të Mëdhenj
Makina më e "fuqishme kompjuterike" qe ju mund të
pëdorni për llogaritjen e numrave të plotë në një kompjuter
prej 32-bit është 2^32-1.
Por, CoCoA fal bibliotekës së fuqishme GMP që zotëron, mund të llogariti numra të mëdhenj të rendit 2^300000. Provoje tani!
2^32-1;
4294967295
2^64-1;
18446744073709551615
Numra Racional
CoCoA është shumë i saktë me fraksionet; asnjëherë nuk i merr me përafrim ato! Kështu 1/3 është ndryshe nga 0.3333333333333.
(1/3) * 3;
1
0.3333333333333 * 3;
9999999999999/10000000000000
Polinomet
CoCoA është i specializuar në llogaritjet me polinomet: mund të shumëzoj, pjestoj, faktorizoj ....polinome.
(x-y)^2 * (x^4-4*z^4) / (x^2+2*z^2);
x^4 -2*x^3*y +x^2*y^2 -2*x^2*z^2 +4*x*y*z^2 -2*y^2*z^2
Factor(x^4 -2*x^3*y +x^2*y^2 -2*x^2*z^2 +4*x*y*z^2 -2*y^2*z^2);
record[
RemainingFactor := 1,
factors := [x^2 -2*z^2, x -y],
multiplicities := [1, 2]]
]
Sistemet Lineare
CoCoA mund të zgjidh ekuacione të sistemeve lineare. Ju vetëm duhet të shkruani çdo ekuacion
f = c
si polinom
f - c
.
Gjithashtu, CoCoA mund të zgjidhë sistemet polinomiale, por kjo është pak më e vështirë dhe ne do të shohim më vonë. Tani le të zgjidhim
System := ideal(x-y+z-2, 3*x-z+6, x+y-1);
ReducedGBasis(System);
[x +3/5, y -8/5, z -21/5]
Kështu që zgjidhja është (z=21/5, x=-3/5, y=8/5)
Zgjidhjet e plota jo-negative
A mund të gjeni treshen e numrave të plotë jo-negativ që janë zgjidhje e sistemit të mëposhtme ?
3x - 4y + 7z | =2 |
2x - 2y + 5z | =10 |
M := mat([[3, -4, 7, -2], [2, -2, 5, -10]]);
H := HilbertBasisKer(M);
L := [h In H | h[4] <= 1];
L;
[[0, 10, 6, 1], [6, 11, 4, 1], [12, 12, 2, 1], [18, 13, 0, 1]]
Interpretimi është se ka vetëm katër zgjidhje
(0, 10, 6), (6, 11, 4), (12, 12, 2), (18, 13, 0).
Shembull Logjik
A thotë: "B gënjen."
B thotë: "C gënjen."
C thotë: "A dhe B gënjejnë."
Tani, cili po gënjen këtu?
Për t'iu përgjigjur kësaj pyetjeje, me kodin 1 shënojmë "E VERTETE" dhe me kodin 0 "FALSE" në Z / (2):
use ZZ/(2)[a,b,c];
I1 := ideal(a, b-1);
I2 := ideal(a-1, b);
A := intersect(I1, I2);
I3 := ideal(b, c-1);
I4 := ideal(b-1, c);
B := intersect(I3, I4);
I5 := ideal(a, b, c-1);
I6 := ideal(b-1, a, c);
I7 := ideal(b, a-1, c);
I8 := ideal(b-1, a-1, c);
C := IntersectList([I5, I6, I7, I8]);
ReducedGBasis(A + B + C);
[b +1, a, c]
Zgjidhje unike është se A dhe C janë duke gënjyer dhe B është duke thënë të vërtetën.
Ngjyrosja e Hartave Gjeografike
A mundet që vendet në një hartë gjeografike të ngjyrosen me tre ngjyra të ndryshme në mënyrë që dy vende të njëpasnjëshëm
në hartë, të kenë të njëjtë ngjyrë?
use P ::= ZZ/(3)[x[1..6]];
define F(X) return X*(X-1)*(X+1); enddefine;
VerticesEq := [ F(x[i]) | i in 1..6 ];
edges := [[1,2],[1,3], [2,3],[2,4],[2,5], [3,4],[3,6],
[4,5],[4,6], [5,6]];
EdgesEq := [ (F(x[edge[1]])-F(x[edge[2]]))/(x[edge[1]]-x[edge[2]])
| edge in edges ];
I := ideal(VerticesEq) + ideal(EdgesEq) + ideal(x[1]-1, x[2]);
ReducedGBasis(I);
[x[2], x[1] -1, x[3] +1, x[4] -1, x[6], x[5] +1]
Interpretimi është se nuk është me të vërtetë një ngjyrosje në këtë rast.
Për shembull, në qoftë 0 do të thotë blu, 1 do të thotë e kuqe, dhe -1 do të thotë të gjelbër, kemi që [vendi 1 = e kuqe, vendi 2 = blu, vendi 3 = e gjelbër;
vendi 4 = kuqe; vendi 5 = e gjelbër; vendi 6 = blu ]
Formula e Heronit
A është e mundur të shprehet suprina e një trekëndëshi
si një funksion i gjatësisë së brinjëve të tij?
use QQ[x[1..2],y,a,b,c,s];
A := [x[1], 0];
B := [x[2], 0];
C := [ 0, y];
Hp := ideal(a^2 - (x[2]^2+y^2), b^2 - (x[1]^2+y^2),
c - (x[2]-x[1]), 2*s - c*y);
E := elim(x[1]..y, Hp);
f := monic(gens(E)[1]);
f;
a^4 -2*a^2*b^2 +b^4 -2*a^2*c^2 -2*b^2*c^2 +c^4 +16*s^2
factor(f - 16*s^2);
record[
RemainingFactor := 1,
factors := [a +b -c, a -b +c, a +b +c, a -b -c],
multiplicities := [1, 1, 1, 1]
]
Interpretimi është
s^2 = -(1/16)(a+b+c)(a+b-c)(a-b+c)(a-b-c).
Kjo do të thotë se katrori i suprinës së një trekëndëshi me brinjë, a,b,c është p(p-a)(p-b)(p-c) ku p = 1/2(a+b+c) është gjysëperimetri.
Pra, përgjigjia është PO.
Written by Evisa Alizoti
Please send comments or suggestions to cocoa(at)dima.unige.it
Last Update: 20 November 2018