Ứng dụng của Scilab trong việc giải toán

Một phần của tài liệu Báo cáo nhập môn CNTT Đại học Bách Khoa Hà Nội (Trang 52)

3 Scilab

3.2Ứng dụng của Scilab trong việc giải toán

• Khi tạo một biến, phải khai báo trước khi sử dụng. Không cần khai báo kiểu. • Tên biến : Độ dài tùy ý nhưng chỉ xét 24 kí tự đầu tiên, phân biệt chữ hoa, thường. Sử dụng bảng mã ASCII: a-z, A-Z, 0-9, % # _ $ ! ?

• Các loại biến trong Scilab: Biến thực, biến boolean, biến xâu, biến phức, ma trận, vector

• Các hàm toán học cơ bản: sin(x), asin(x),cos(x),acos(x),tan(x),atan(x)... • Biến toán học đặc biệt, bắt đầu bằng kí tự % như: %pi, %i . . .

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

3.2.3 Đồ thị (adsbygoogle = window.adsbygoogle || []).push({});

Đồ thị cho dưới dạng điểm:

• Với x,y lần lượt là 2 vector chứa hoành độ, tung độ các điểm trên đồ thị, vẽ đồ thị bằng hàm: plot2d(x,y, style = -1)

• Tham số style là kiểu đồ thị được vẽ. Ví dụ trong Scilab soạn thảo: x = [.5 .7 .9 1.3 1.7 1.8 ];

y = [.1 .2 .75 1.5 2.1 2.4 ]; plot2d(x,y, style = -1)

3.2.4 Đồ thị cho dưới dạng hàm

• Với x là vector chứa các giá trị của biến. Sử dụng deff() và fplot2d() Ví dụ: Vẽ hàm y = x2 + 1

deff(’[y]=ham(x)’,[’y = xˆ2 + 1’]); x=(-10 : 0.1 : 10);

fplot2d(x,ham)

Đồ thị trong không gian 3 chiều:

• Có thể vẽ đồ thị của hàm 2 biến trong không gian 3 chiều, tương tự trường hợp trên, dùng hàm plot3d. • Ví dụ : Vẽ hàm z = cos(x)*y với x[0; 2], y[0; 5] x=[0 : %pi/16 : 2*%pi]; y=[0 : 0.5 : 5]; z=cos(x)*y; plot3d(x, y, z)

Lời kết

Trên đây là bản báo cáo của nhóm em về nội dung môn học Nhập môn CNTT về 3 phần: LATEX , Scilab và Web.

Trong quá trình làm báo cáo không tránh khỏi những thiếu sót, nhóm em xin đón nhận sự góp ý của thầy cô để các bản báo cáo sau dần tốt hơn.

Tài liệu tham khảo

[1] Hàn Thế Thanh, Hỗ trợ Tiếng Việt cho TEX .

[2] Guido Gonzato, LATEX for word processor users, 2003 .

[3] Tobias Oetiker, Hubert Partl, Irene Hyna, and Elizabeth Schlegl, The not so short introduction to LATEX 2ε , 2010.

[4] Micheal Baudin, Introduction to Scilab, 2010.

[5] Graeme Chandler and Stephen Roberts, Introduction to Scilab, 2002.

[6] W3C HTML 4.01 Specification, 1999.

[7] W3C Cascading Style Sheets Level 2 Revision 1 (CSS2.1) Specification, 2009.

Một phần của tài liệu Báo cáo nhập môn CNTT Đại học Bách Khoa Hà Nội (Trang 52)