1. Trang chủ >
  2. Khoa học tự nhiên >
  3. Hóa học >

1 Đồ thị đơn giản

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 (3.47 MB, 125 trang )


Kỹ thuật tính toán trong công nghệ hóa học



>> t=(0:.1:2*pi);

>> subplot(2,2,1)

>> plot(t,sin(t))

>> subplot(2,2,2)

>> plot(t,cos(t))

>> subplot(2,2,3)

>> plot(t,exp(t))

>> subplot(2,2,4)

>> plot(t,1./(1+t.^2))



4.2 Vẽ đường

Hàm plot được sử dụng để vẽ dữ liệu trên mặt phẳng. Cho vec tơ x gồm các

hoành độ x1,…,xn và vec tơ y gồm các tung độ y1,…yn, lệnh plot(x,y) sẽ vẽ các điểm

từ (x1,y1) đến (xn,yn). Theo mặc định, các điểm này sẽ được nối theo thứ tự bởi các

đoạn thẳng.

Câu lệnh tổng quát:

Mầu của đường vẽ



Ký tự hiển thị



Nét vẽ



y



. dấu chấm(point)



-



solid



m magenta



O vòng tròn



:



dotted



c



cyan



X dấu x



-.



dashdot



r



red



+ dấu cộng



--



dashed



yellow



22



Kỹ thuật tính toán trong công nghệ hóa học



g



green



* dấu sao



b



blue



s hình vuông



w white



d kim cương



k



∧ tam giác chỉ lên

∨ tam giác chỉ xuống



black



<



tam giác chỉ sang



>



tam giác chỉ sang



trái

phải

p ông sao 5 cánh

h ông sao 6 cánh

Ví dụ:

Lệnh plot(x,y,’ro:’) vẽ đường nối bởi các chấm màu đỏ với điểm dữ liệu là vòng

tròn nhỏ.

Lệnh plot(x,y,’y-’,x,y,’go’) vẽ dữ liệu 2 lần với đường nối liền nét màu vàng và

các điểm dữ liệu là các vòng tròn xanh lá cây.

Để vẽ tứ giác với các đỉnh (0,0), (1,1), (4,2), và (5,-1) ta có thể dùng lệnh:

>> x=[0 1 4 5 0];

>> y=[0 1 2 -1 0];

>> plot(x,y)

Ta cũng có thể gần đúng đồ thị hàm số bằng cách lấy nhiều điểm. Ví dụ vẽ đồ thị

hàm số y = x 3 / [-2;2]. Trước hết, ta lấy vec tơ dòng với các thành phần biến thiên từ -2

đến 2 với độ dài bước chia là 0.05

>> x=-2:.05:2;

Tiếp đó là xác định các giá trị của y bằng cách lấy lũy thừa từng phần tử của x.

>> y=x.^3;

Cuối cùng:

>> Plot(x,y)

Ta đặt tên cho hình vẽ nhờ đánh lệnh

>>title(‘Do thi cua ham f(x)=x^3’)



23



Kỹ thuật tính toán trong công nghệ hóa học



Hình 1: Đồ thị hàm số f ( x) = x 3

Vẽ các đường cong tham số cũng tương tự:

r (t ) = ( 2t cos t /(t +1),2t sin t /(t +1))



với



t ∈[0,4π] .



>> t=0:.1:4*pi;

>> x=2*t.*cos(t)./(t+1);

>> y=2*t.*sin(t)./(t+1);

>> plot(x,y);

>> title( '(2t cos t/ (t+1)),2t sin t/(t+1)' )

Chú ý: các phép toán nhân chia phải được thực hiện trên từng phần tử(nghĩa là .*,

./ hoặc .^).

Để có tỷ lệ chính xác ta dùng:

>> axis equal



Hình 2: Đồ thị hàm số cho bởi phương trình tham số

Để vẽ nhiều đường trên cùng 1 hình ta dùng lệnh “hold on”.

Ví dụ: vẽ 2 đường tròn

trình tham số:



x2 + y2 = 4



và ( x −1) 2 + ( y −1) 2 = 1 . Chuyển sang phương



24



Kỹ thuật tính toán trong công nghệ hóa học

r1 (t ) = ( 2 cos t ,2 sin t ) và r2 (t ) = (1 + cos t ,1 + sin t ) với t ∈[0,2π] .



>> t=0:pi/20:2*pi;

>> plot(2*cos(t),2*sin(t))

>> hold on

>> plot(1+cos(t),1+sin(t))

>> axis equal

>> title('Cac duong tron x^2+y^2=4 va (x-1)^2+(y-1)^2=1')



Hình 3: vẽ đồ thị nhiều hàm trên cùng một hình

Trong không gian 3 chiều thì thay lệnh plot bằng plot3. Ví dụ:

Để vẽ đường tham số r (t ) = (cos(t ), sin(t ), t ) với



t ∈[0,8π]



ta có thể làm như



sau:

t=0:.1:8*pi;

>> plot3(cos(t),sin(t),t)

>> title('(cos t,sin t,t)')



Hình 4a: vẽ đồ thị đường cho bởi phương trình tham số trong không gian 3 chiều

Để vẽ đường trong tọa độ cực ρ = θ 2 , với 0 ≤ θ ≤ π :

>> theta = 0:.2:5*pi;

25



Kỹ thuật tính toán trong công nghệ hóa học



>> rho=theta.^2;

>> polar(theta,rho,'hb')



Hình 4b: vẽ đồ thị trong hệ tọa độ cực

4.3 Vẽ mặt

Để đồ thị hàm số f ( x, y ) trên miền hình chữ nhật

R =[ a, b] × c, d ] ={( x, y ) a ≤ x ≤b & c ≤ y ≤d },

[



Trước hết ta tạo lưới điểm trong miền khảo sát nhờ hàm meshgrid

Ví dụ: vẽ đồ thị hàm số f ( x, y ) = x 2 y − 2 y trên miền chữ nhật

Ta sử dụng lưới vuông với độ dài bước chia 0.1



[ − ,2] × − ,1] .

2

[ 1



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

Sử dụng phép toán vec tơ hóa để xác định Z.

>> z=(x.^2).*y-2*y;

Cuối cùng ta vẽ

>> surf(x,y,z)

>> title('Do thi cua ham so f(x,y)=x^2y-2y')



26



Kỹ thuật tính toán trong công nghệ hóa học



Hình 5: Vẽ mặt f ( x, y ) = x 2 y − 2 y trong 3 chiều

Một trong những khó khăn khi vẽ mặt là phải đối mặt với phép chia cho 0. Chẳng

hạn, ta muốn vẽ đồ thị của hàm số

f ( x, y ) =



xy

x + y2

2



trên lưới vuông



[ − ,1] × − ,1] .

1

[ 1



Thực hiện lệnh



>> [x,y]=meshgrid(-1:.1:1);

>> z=x.*y./sqrt(x.^2+y.^2);

Warning: Divide by zero.

Nếu ta cứ vẽ mặt như vậy điểm lưới tại (0,0) sẽ khuyết



Hình 6a: Vẽ mặt



f ( x, y ) =



xy

x + y2

2



Để tránh khỏi tình huống này, một cách đơn giản là hãy xác định lưới sao cho

điểm (0,0) không thuộc điểm chia. Chẳng hạn:

>> surf(x,y,z)

>> [x,y]=meshgrid(-.99:.1:1);

>> z=x.*y./sqrt(x.^2+y.^2);

>> surf(x,y,z)

>> title('Do thi ham so f(x,y)=xy/\surd(x^2+y^2)')

>> axis equal



27



Kỹ thuật tính toán trong công nghệ hóa học



Hình 6b: Vẽ mặt trong 3 chiều tránh khuyết

Ví dụ. Vẽ z=sin(r)/r với



r =



x2 + y2



, −8 ≤ x ≤ 8, −8 ≤ y ≤ 8 .



>> x=-8:.5:8;y=-8:.5:8;

>> [x,y]=meshgrid(x,y);

>> r=sqrt(x.^2+y.^2)+eps;

>> z=sin(r)./r;

>> mesh(x,y,z)



Hình 7: vẽ mặt trong 3 chiều bởi mesh

Điểm khác nhau giữa hai lệnh surf và mesh là: surf tô màu bề mặt,còn mesh thì

không.



28



Kỹ thuật tính toán trong công nghệ hóa học



Chương 5: Các luồng điều khiển



5.1 Các toán tử logic

Lệnh



Kết quả



A=(b>c)



A=1 nếu b>c, tương tự < ,>=, <=



A=(b=c)



A=1 nếu b=c



A=(b~=c)



A=1 nếu b khác c



A= ~b



A=1 nếu b=0



A=(b&c)



A=1 nếu b =true và c=true



A=(b|c)



A=1 nếu b=true hoặc c=true

Bảng 1: mối quan hệ giữa các phép toán logic



Chú ý : toán tử & và toán tử | có mức ưu tiên như nhau trong Matlab,điều đó có

nghĩa là nó sẽ thực hiện từ trái qua phải.

5.2 Lệnh find

Chúng ta có thể trích các phần tử trong vec tơ và ma trận thỏa mãn những điều

kiện nào đó, bằng toán tử xác định vị trí. Chẳng hạn như dùng lệnh xác định vị trí find

29



Kỹ thuật tính toán trong công nghệ hóa học



>> x = [1 1 3 4 1];

>> i = (x == 1)

i=

1



1



0



0



1



>> y = x(i)

y=

1



1



1



>> j = find(x = = 1)



% j là chỉ số của phần tử thỏa mãn x = = 1



j=

1



2



5



>> z = x(j)

z=

1



1



1



Một ví dụ khác :

>> x = -1:0.05:1;

>> y = sin(x) .* sin(3*pi*x);

>> plot (x,y, ’-’); hold on

>> k = find (y <= -0.1)

k=

9



10



11



12



13



29



30



31



32



33



>> plot (x(k), y(k), ’ro’);

>> r = find (x > 0.5 & y > 0)

r=

35



36



37



38



39



40



41



>> plot (x(r), y(r), ’r*’);

Dùng toán tử find trong ma trận một cách tương tự:

>> A = [1



3



-3



-5;



-1



2



-1



0;



3



-7



2



7];



>> k = find (A >= 2.5)

k=

3

4

12

>> A(k)

ans =

30



Xem Thêm
Tải bản đầy đủ (.pdf) (125 trang)

×