*
.
Τα διανύσματα είναι εξ ορισμού πίνακες με μία γραμμή,
αλλά το γινόμενο από δεξιά με ένα διάνυσμα εφαρμόζεται σαν να ήταν μία στήλη.
Ειδικότερα, εάν v
και w
είναι δύο διανύσματα ίδιου μεγέθους, το v*w
επιστρέφει το εσωτερικό γινόμενο.
A:=[[1,2,3],[4,5,6],[7,8,9]] v:=[1,1,1] v*v A*v v*A B:=[[1,1,1],[2,2,2]] A*B B*A A*tran(B)Ξεκινώντας από μία συνάρτηση που αντιστοιχεί στους δύο δείκτες (j, k) τον πραγματικό a(j, k), μπορούμε να δημιουργήσουμε έναν πίνακα με την συνάρτηση
makemat
ή
matrix
.
makemat((j,k)->j+2*k,3,2) matrix(3,2,(j,k)->j+2*k)Μπορούμε επίσης να δημιουργήσουμε πίνακες με μπλόκ χρησιμοποιώντας την εντολή
blockmatrix
.
A:=makemat((j,k)->j+2*k,3,2) B:=idn(3) blockmatrix(1,2,[A,B]) blockmatrix(2,2,[A,B,B,A])Αποκτούμε πρόσβαση σε ένα στοιχείο κάποιου πίνακα με δυο δείκτες διαχωρισμένους με κόμμα και τοποθετούμενους ανάμεσα σε άγκιστρα. Ο πρώτος δείκτης αναφέρεται στην γραμμή και ο δεύτερος στην στήλη. Προσοχή: Οι δείκτες ξεκινούν από το 0. Παραδείγματος χάρη, εάν
A:=[[0,2],[1,3],[2,4]]
τότε το
A[2,1]
επιστρέφει το στοιχείο 4
.
Για να πάρουμε ένα μπλοκ (υποπίνακα) από κάποιον πίνακα, χρησιμοποιούμε
διαστήματα αντί για δείκτες : έτσι, το A[1..2,0..1]
επιστρέφει το μπλοκ που αποτελείται από τις γραμμές 1 μέχρι 2 και
τις στήλες 0 μέχρι 1.
Σημειώστε ότι οι πίνακες στο Xcas
αντιγράφονται ολόκληροι όταν τροποποιούμε κάποιο στοιχείο τους με
την εντολή :=
, γράφοντας δηλαδή Α[i,j]:=5
.
Αυτό κοστίζει σε χρόνο εάν τροποποιούμε πολλές φορές
διαδοχικά σε ένα πρόγραμμα πολλά στοιχεία του ίδιου (μεγάλου) πίνακα.
Για να αποφύγουμε τις αντιγραφές πινάκων μπορούμε να τροποποιούμε
τα στοιχεία τους χρησιμοποιώντας την εντολή =<
, γράφοντας δηλαδή
Α[i,j]=<5
.
Διανύσματα και πίνακες | |
v*w |
εσωτερικό γινόμενο |
cross(v,w) |
εξωτερικό γινόμενο |
A*B |
γινόμενο πινάκων |
A.*B |
γινόμενο πινάκων στοιχείο προς στοιχείο |
1/A |
αντίστροφος |
tran |
αντιμεταθετικός |
rank |
τάξη |
det |
ορίζουσα |
ker |
πυρήνας |
image |
πεδίο τιμών |
idn |
ταυτοτικός πίνακας |
ranm |
πίνακας με τυχαίους συντελεστές |