Tải bản đầy đủ (.pdf) (11 trang)

Bài tập thực hành scilab

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (825.83 KB, 11 trang )

Viện Công nghệ thông tin và truyền thông - ĐHBK Hà Nội
SoICT

Kim Đình Sơn, CNTT&TT 4 K55
BÀI 3, 4. BÀI TẬP THỰC HÀNH VÀ
TỰ LÀM
 Tính toán với các biểu thức đơn giản
 Thực hiện các phép toán “+, -, *,
/”, tính sinh, cos đối với số thực,
sử dụng các hằng số như Pi.
Bài 1: Sử dụng SciLab để tính giá trị
của biểu thức log(s2 -2s cos( π/5) + 1
) ở đó s = .5

-->s=.5
s =
0.5
-->log(s^2-2*s*cos(%pi/5)+1)
ans =

Bài 2: Sử dụng SciLab để tính giá trị
của biểu thức log(s2 -2scos(π/5) + 1)
ở đó s = .95

- 0.8187489
-->s=.95
s =
0.95
-->log(s^2-2*s*cos(%pi/5)+1)
ans =
- 1.006851



Bài 3: Tính giá trị của biểu thức
log(s2 -2sin(π/5) + 1) ở đó s = 1

-->s=1
s =
1.
-->log(s^2-2*s*sin(%pi/5)+1)
ans =
- 0.1930637

1


Viện Công nghệ thông tin và truyền thông - ĐHBK Hà Nội
SoICT
 Thực hiện phép toán với số phức

Bài 1: Tạo các biến x = 1 + i và y =
1-i. Sau đó minh chứng (1 + i)(1 - i) = 2

-->x=1+%i;y=1-%i;
-->disp(x*y)
2.
-->(1+%i)*(1-%i)
ans =

Bài 2: Tạo biểu thức trong SciLab để
chứng tỏ eπi + 1 = 0 và i = eπi/2


2.
-->exp(%pi*%i)+1
ans =
1.225D-16i
(Tức là phần ảo bằng 1.225*10-16i, kết quả này được tính
tròn bằng 0)
-->%i-exp(%pi*%i/2)
ans =
- 6.123D-17
(Tức là phần thực bằng -6.123*10-17, kết quả này được tính
tròn bằng 0)

 Sử dụng help
Bài 1:
(a) Tính giá trị của biểu thức sin-1(.5)
trong SciLab
(b) Nếu x = .5 , kiểm tra xem sin(sin-1(x))
– x có chính xác bằng 0 trong SciLab ?
(c) Nếu x = π/3 thì sin-1(sin(x)) – x có
chính xác bằng 0 trong SciLab? Tương tự
cho x = 5 π /11

/*
-->sin(.5)^(-1)
ans =
2.0858296
/*
a>
-->asin(x)
ans =

0.5235988
b>
-->x=.5;sin(asin(x))-x
ans =
0.
2


Viện Công nghệ thông tin và truyền thông - ĐHBK Hà Nội
SoICT
c>
-->x=%pi/3
x =
1.0471976
-->asin(sin(x))-x
ans =
0.
-->x=5*%pi/11
x =
1.4279967
-->asin(sin(x))-x
ans =

Bài 2: Hãy tìm hàm trong SciLab để
biến đổi một số từ hệ 10 sang hệ 16
(Hexa). Chuyển số 61453 sang hệ 16

0.
-->help decimal
-->dec2hex([61453])

ans =
F00D

Bài 3: Hãy tìm tất cả các thông tin về
các đối tượng có chứa “logarithms”
trong SciLab. Có 8 kết quả được tìm
thấy, trong đó có cả lệnh logm

Ở bảng “help”, chọn hàm dec2hex
-->help logarithms
Số kết quả tìm kiếm. hàm liên quan
5.log
3.logm
3.log2
3.log10
1.log10 (Mathlab function)
2.log2 (Mathlab function)
2.log1p
1.exp

 Tính toán với Ma trận và Véc tơ
 Cách biểu diễn ma trận và véctơ;
tạo ma trận ngẫu nhiên, ma trận
không.
 Các phép toán trên ma trận và
véc tơ; lấy một phần của ma trận
Bài 1: Cho một ma trận A ban đầu,
làm thế nào hiển thị được góc dưới

Giả sử A(m n) --> A(m-1:m,1:3)

<Hàng:hàng, cột:cột>
Ví dụ:
3


Viện Công nghệ thông tin và truyền thông - ĐHBK Hà Nội
SoICT
bên trái kích thước 2 * 3

-->A= [1 2 3 4 ; 1 4 9 16 ; 1 8 27 64 ; 1 16 81 256 ]
A =
1.
1.
1.
1.

2.
4.
8.
16.

3.
9.
27.
81.

4.
16.
64.
256.


-->B=A';C=B(1:3,3:4);C'
Hoặc:
--> A(3:4,1:3)
ans =
1. 8. 27.
1. 16. 81.
Bài 2: Thiết lập ma trận sau:
A=[1100
0210
0031
0 0 0 4]
Đưa ra các thuộc tính của ma trận
như định thức, ma trận nghịch đảo,
A’, spec, …

-->A=[1 1 0 0;0 2 1 0;0 0 3 1;0 0 0 4]
A =
1.
0.
0.
0.

1.
2.
0.
0.

0.
1.

3.
0.

0.
0.
1.
4.

0.
0.
3.
1.

0.
0.
0.
4.

-->det(A)
ans =
24.
-->A'
ans =
1.
1.
0.
0.

0.
2.

1.
0.

-->spec(A)
ans =
1.
2.
3.
4.
-->inv(A)
ans =
1.
0.
0.
0.

- 0.5
0.5
0.
0.

0.1666667 - 0.0416667
- 0.1666667 0.0416667
0.3333333 - 0.0833333
0.
0.25

-->bdiag(A) (Chéo hóa)
ans =
1. 0. 0. 0.

0. 2. 0. 0.

4


Viện Công nghệ thông tin và truyền thông - ĐHBK Hà Nội
SoICT
0. 0. 3. 0.
0. 0. 0. 4.
-->[D,X]=bdiag(A) (Ma trận chuyển)
X =
1.
0.
0.
0.
D =
1.
0.
0.
0.

Bài 3: Đưa ra hàng thứ 2, cột thứ 3
của ma trận.
Đưa ra ma trận trái dưới
2x3 của A; tính định thức ma trận trái
trên 3x3 của A

1.
1.
0.

0.

0.5
1.
1.
0.

0.1666667
0.5
1.
1.

0.
2.
0.
0.

0.
0.
3.
0.

0.
0.
0.
4.

-->A=[1 1 0 0;0 2 1 0;0 0 3 1;0 0 0 4]
A =
1.

0.
0.
0.

1.
2.
0.
0.

0.
1.
3.
0.

0.
0.
1.
4.

-->A(:,3)
ans =
0.
1.
3.
0.
-->A(2,:)
ans =
0. 2. 1. 0.
(-->B=A';C=B(1:3,3:4);C' )
Hoặc:

-->A(3:4,1:3)
ans =
0. 0. 3.
0. 0. 0.
-->B=A(1:3,2:4);det(B)
ans =
1.

Bài 4:
(a) Xét ma trận A ở bài 2. Tính toán
các giá trị inv(A)*A và A*inv(A).
Chúng có bằng nhau?
(b) Tạo hai ma trận ngẫu nhiên A, B.
Kiểm tra lại rằng (AB)-1 = B-1A-1
(c) Kiểm tra lại rằng lệnh A^(-1) có
thể được sử dụng để tạo nên ma trận
nghịch đảo của A

-->inv(A)*A
ans =
1.
0.
0.
0.

0.
1.
0.
0.


0.
0.
1.
0.

0.
0.
0.
1.

-->A*inv(A)
ans =
1. 0. 0. 0.
0. 1. 0. 0.

5


Viện Công nghệ thông tin và truyền thông - ĐHBK Hà Nội
SoICT
0. 0. 1. 0.
0. 0. 0. 1.
b)
-->A=rand(3,3)
A =
0.5667211 0.0568928 0.7279222
0.5711639 0.5595937 0.2677766
0.8160110 0.1249340 0.5465335
-->B=rand(3,3)
B =

0.9885408 0.5900573 0.6251879
0.7395657 0.3096467 0.1157417
0.0037173 0.2552206 0.6117004
-->inv(A*B)
ans =
- 97.457421 - 61.520517 133.41652
276.12001 182.0629 - 383.29218
- 109.82086 - 75.285228 155.56986
-->inv(B)*inv(A)
ans =
- 97.457421 - 61.520517 133.41652
276.12001 182.0629 - 383.29218
- 109.82086 - 75.285228 155.56986

-->A^{-1)
!--error 2
Invalid factor.

 Giải hệ phương trình
Bài 1: Thiết lập các ma trận và véc tơ
để giải hệ phương trình:
-x1 +2x2 + x3 = 2
2x1 –x2 +3x3 = 4
x2 – x3 = 0
Sau đó kiểm tra nghiệm tìm được có thỏa
mãn hay không qua phần dư b – Ax

-->A=[-1 2 1
-->2 -1 3
-->0 1 -1]

A =
- 1. 2. 1.
2. - 1. 3.
0. 1. - 1.
-->b=[2;4;0]
b =
2.
4.
0.
-->x=A\b
x =
1.
1.
1.
-->b-A*x
ans =
0.

6


Viện Công nghệ thông tin và truyền thông - ĐHBK Hà Nội
SoICT
0.
0.

Bài 2: Sử dụng lệnh tính ma trận
nghịch đảo để giải phương trình trong bài
1


-->inv(A)*b
ans =

Bài 3: Tạo một ma trận ngẫu nhiên A
kích thước 5x5 và một véc tơ ngẫu nhiên
b kích thước 5x1. Sau đó giải hệ phương
trình Ax = b bằng cách nhanh nhất,
không sử dụng ma trận nghịch đảo

-->A=rand(5,5)
A =

1.
1.
1.

0.6783956
0.3320095
0.0258710
0.5174468
0.3916873

0.2413538
0.5064435
0.4236102
0.2893728
0.0887932

0.6212882
0.3454984

0.7064868
0.5211472
0.2870401

0.6502795
0.0881335
0.4498763
0.7227253
0.8976796

0.2427822
0.4337721
0.9677053
0.5068534
0.5232976

-->b=rand(5,1)
b =
0.5596948
0.5617307
0.468176
0.7794547
0.7901072
-->x=A\b
x =
- 1.8499678
3.9926324
- 0.6297803
2.6526671
- 1.9879234


Bài 4: Sinh ma trận A ngẫu nhiên kích
thước 700x700 và véc tơ cột b độ dài
700. Hãy giải hệ phương trình Ax = b sử
dụng các lệnh x = A|b và x = inv(A) * b ;
sử dụng lệnh timer() để so sánh thời gian
thực hiện theo 2 cách.

-->help timer
-->A=rand(700,700);b=rand(700.1);timer();x=A\b;timer()
ans =
0.234375
-->timer();y=inv(A)*b;timer()
ans =
0.1875

 Xây dựng đa thức và tính toán
với đa thức
Bài 1: Đa thức x2 -3x - 4 có các
nghiệm thực, nhưng x2 - 3x + 4 có các
nghiệm phức . Hãy tìm các nghiệm phức.

-->x=poly(0,'x')
x =
x
-->y=x^2-3*x-4
y =
2
- 4 - 3x + x


7


Viện Công nghệ thông tin và truyền thông - ĐHBK Hà Nội
SoICT
-->roots(y)
ans =
4.
- 1.
-->y=x^2-3*x+4
y =
2
4 - 3x + x
-->roots(y)
ans =

Bài 2: Sử dụng SciLab để tính toán giá
trị các đa thức sau mà không sắp xếp lại
các hệ số:
f(x) = x8-8x7+28x6-56x5+70x456x3+28x2-8x+1
g(x) =(((((((x-8)x+28)x-56)x+70)x56)x+28)x-8)x+1
h(x) = (x-1)8
tại các điểm 0.975:0.0001:1.025

1.5 + 1.3228757i
1.5 - 1.3228757i
-->v=[1 -8 28 -56 70 -56 28 -8 1]
v =
1. - 8. 28. - 56. 70. - 56. 28. - 8. 1.
-->y=poly(v,'x','coeff')

y =
2
3
4
5
6 7 8
1 - 8x + 28x - 56x + 70x - 56x + 28x - 8x + x
-->horner(y,[.975 0.0001 1.025])
ans =
1.508D-13 0.9992003 1.458D-13
-->x=poly(0,'x')
x =
x
-->g=(((((((x-8)*x+28)*x-56)*x+70)*x-56)*x+28)*x-8)*x+1
g =
2
3
4
5
6 7 8
1 - 8x + 28x - 56x + 70x - 56x + 28x - 8x + x
-->horner(g,[.975 0.0001 1.025])
ans =
1.508D-13 0.9992003 1.458D-13
-->h=(x-1)^8
h =
2
3
4
5

6 7 8
1 - 8x + 28x - 56x + 70x - 56x + 28x - 8x + x
-->horner(g,[.975 0.0001 1.025])
ans =
1.508D-13 0.9992003 1.458D-13

8


Viện Công nghệ thông tin và truyền thông - ĐHBK Hà Nội
SoICT
 Đồ thị
 Vẽ đồ thị 2 chiều, dưới dạng
điểm, vẽ đồ thị 2 chiều cho hàm
Bài 1: Sử dụng SciLab để vẽ đồ thị các -->deff('[y]=f(x)',['y= cos(x)']);x = (-5:0.1:5);fplot2d(x,f)
hàm số cos(x), 1/ (1+cos2(x)) và
1/(3+cos(1/(1+x2)) trên các đồ thị rời
nhau

-->funcprot (0)
-->deff('[y]=f(x)',['y= 1/(1+cos(x)^2)']);x = (-5:0.1:5);fplot2d(x,f)

-->deff('[y]=f(x)',['y= 1/(3+cos(1/(1+x^2)))']);
-->x =(-5:0.1:5);fplot2d(x,f)

9


Viện Công nghệ thông tin và truyền thông - ĐHBK Hà Nội
SoICT

Bài 2: Vẽ đồ thị 1/(1+eαx), trong đó 4<=x<=4 và α = .5, 1, 2 trên một đồ thị

Bài 3. Vẽ đồ thị 3D của các đường sau
với x, y thuộc một khoảng giá trị nào đó.
a.
z = x*x – y*y
b.
z = xy(x*2-y*2)/(x*x+y*y)

-->x=[-4:0.1:4]';
-->a1=0.5;a2=1;a3=2;
-->y1=(1+exp(a1*x))^(-1);
-->y2=(1+exp(a2*x))^(-1);
-->y3=(1+exp(a3*x))^(-1);
-->plot2d(x,[y1 y2 y3])

-->help meshgrid
-->[x,y]=meshgrid(-2:1:5,-2:1:5);surf(x,y,x.^2-y.^2)

--> [x,y]=meshgrid(1:1:10,1:1:10);surf(x,y,x.*y.*(x*2-y*2)./(x.^2.+y.^2))

10


Viện Công nghệ thông tin và truyền thông - ĐHBK Hà Nội
SoICT
Tài liệu tham khảo
INTRODUCTION TO SCILAB, Michael Baudin from the Scilab Consortium, 2010
Các tài liệu về Scilab và bài tập thực hành bộ môn nhập môn CNTT&TT, viện CNTT&TT, ĐHBK
Hà Nội

... ...

11



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×