3 Scilab
3.2.2 Tính toán với ma trận và vector
Khởi tạo ma trận:
• Khi tạo ma trận, dùng [ ] để bắt đầu và kết thúc một ma trận, các hàng ngăn cách nhau bởi dấu “;”, các phần tử ngăn cách nhau bởi dấu “,”.
• Các hàm khởi tạo ma trận đặc biệt:
- ones, zeros: ma trận trong đó tất cả các phần tử mang giá trị 1 hoặc 0. - eye: đường chéo của ma trận là 1.
- rand: tạo một ma trận ngẫu nhiên.
Truy cập ma trận
Với ma trận A cho trước :
• Để truy cập một phần tử : A(i,j) Trong đó i,j là chỉ số hàng và chỉ số cột.
• Để lấy một phần ma trận cú pháp: A(i:j,k:l)
Trong đó i,j là chỉ số hàng đầu, hàng cuối; k,l là chỉ số cột đầu cột cuối
Các phép toán trong ma trận
Bao gồm các phép toán + , – , * , / , tính định thức det(), tính ma trận nghịch đảo với ma trận vuông inv(), A’ ma trận chuyển vị . . .
Xây dựng và tính toán đa thức:
• Xây dựng đa thức: Ví dụ với đa thức x2 – 5x + 6 - Với v là vector chứa các hệ số từ thấp cao.
v=[6,-5,1], p=poly(v,’x’,’coeff’)
- Cách khác: khởi tạo một đa thức là “x” và áp dụng các phép toán để xây dựng đa thức phức tạp hơn.
• Xây dựng đa thức với nghiệm cho trước: Sử dụng hàm poly nhưng tham số cuối là "roots".
Ví dụ xây dựng đa thức có hai nghiệm 1 và 2: z=[1 2];
p=poly(z,’x’,’roots’);
Khi đó có: p= 2 - 3*x + xˆ2
• Tính toán với đa thức. Một số hàm như: - roots(p) để tìm nghiệm của đa thức p.
- horner(p,x) để tính giá trị của đa thức với giá trị x nào đó. - derivat(p,’x’) để tính đạo hàm của đa thức.
Xây dựng và giải hệ phương trình:
Ta có thể giải hệ bằng nhiều cách:
• Giải hệ phương trình tuyến tính dạng: A*x+b=0 (nên ta phải biến đổi hệ về dạng này). Dùng lệnh x= linsolve(A,b) để giải phương trình.
• Hoặc có thể giải hệ ở dạng A*x=b bằng cách dùng ma trận nghịch đảo với cú pháp x = inv(A)*b. - Với A, b là 2 ma trận chứa các hệ số. Ví dụ: Giải hệ phương trình x+y +z = 6 x+y = −1 x+y + 2z = 9