MATLAB LECTURE - Trang 42

16/09/2015

5

Nguyen Quang Hoang

Department of Applied Mechanics

17

>> [t, y] = ode45(@(t,y)vibr1dof(t,y, 1, 0.0,16,1, 4.3), [0:0.01:70], [0,0]);
>> plot(t,y(:,1)), ylabel('y_1 [mm]'), xlabel('t[s]')

-1

-0.5

0

0.5

1

-4

-3

-2

-1

0

1

2

3

4

0

10

20

30

40

50

60

70

-4

-2

0

2

4

y

2

[

m

m

/s

]

t[s]

0

10

20

30

40

50

60

70

-1

-0.5

0

0.5

1

y

1

[

m

m

]

t[s]

Nguyen Quang Hoang

Department of Applied Mechanics

18

-1

-0.5

0

0.5

1

-4

-3

-2

-1

0

1

2

3

4

0

10

20

30

40

50

60

70

-4

-2

0

2

4

y

2

[

m

m

/s

]

t[s]

0

10

20

30

40

50

60

70

-1

-0.

5

0

0.5

1

y

1 [

mm

]

t[s

]

Nguyen Quang Hoang

Department of Applied Mechanics

Giải hệ phương trình vi phân cấp 1

19

2

,

dx

dy

x

y

x

xy

dt

dt

  

  

(0)

0, (0) 1

x

y

2

1

2

1

2

1

2

1

1 2

,

,

dx

dx

x

x x

y

x

x

x

x x

dt

dt

  

  

Trước hết xét việc giải hệ hai phương trình vi phân cấp một sau

điều kiện đầu

Để giải hệ trên bằng ode45, ta viết một m-file thể hiện vế phải của hệ trên

function

xdot = eqx(t,x);

xdot = zeros(2,1);

xdot(1) = -x(1)^2 + x(2);

xdot(2) = -x(1) - x(1)* x(2);

end

% save with file name eqx.m

Viết lại hệ dạng véc tơ như sau:

Nguyen Quang Hoang

Department of Applied Mechanics

Giải hệ phương trình vi phân cấp 1

20

>> [t,x] = ode45('eqx',[0 10],[0,1]);

Nghiệm cần tìm x được ghi lại bằng hai véctơ cột, cột thứ nhất x1 = x(:,1)
và cột thứ hai x2 = x(:,2). Với lệnh vẽ

>> plot(t,x(:,1),t,x(:,2),'--'),xlabel('t'),
>> axis([0 10

–1.12 1.12])

0

2

4

6

8

10

- 1

- 0.5

0

0.5

1

t

- 0.6

- 0.4

- 0.2

0

0.2

0.4

0.6

- 0.4

- 0.2

0

0.2

0.4

0.6

0.8

1

>> plot(x(:,1),x(:,2), 'k-'),

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.