Bảo toàn năng lượng

Một phần của tài liệu Mô hình hóa các hiện tượng vật lý bằng Octave (Trang 166 - 167)

12 Bây giờ véc-tơ mới thật là véc-tơ

12.5 Bảo toàn năng lượng

Một cách làm tiện dụng để kiểm tra độ chính xác của một chương trình giải PVT là xem nó có bảo toàn được năng lượng của hệ hay không. Với chuyển động của hành tinh, hóa ra làode45không thể bảo toàn được.

Động năng của một vật chuyển động bằngmv2/2; động năng của hệ Mặt Trời thì bằng tổng các động năng của từng hành tinh và của Mặt Trời. Thế năng của Mặt Trời với khối lượngm1 và một hành tinh có khối lượng m2 cách nhau một khoảngrthì bằng:

U =−Gm1m2 r

Exercise 12.6 Hãy viết một hàm có tênenergy_funcđể nhận vào các kết quả

T Mtừ chương trình mô phỏng Sao Mộc, rồi tính tổng năng lượng (động năng

và thế năng) của hệ với mỗi vị trí và vận tốc ước tính được. Vẽ đồ thị của kết quả này như một hàm theo thời gian và đảm bảo rằng nó giảm dần trong quá trình mô phỏng. Hàm cần viết phải tính được sự thay đổi tương đối về năng lượng, độ chênh lệch giữa năng lượng ban đầu và lúc kết thúc, và biểu thị độ chênh này theo phần trăm so với năng lượng ban đầu.

Bạn có thể giảm tốc độ thất thoát năng lượng bằng cách giảm tùy chọn dung sai củaode45qua việc dùngodeset(xem Mục 11.1):

options = odeset('RelTol', 1e-5);

[T, M] = ode45(@rate_func, [0:step:end_time], W, options); Tên của tùy chọn cần chỉnh làRelTol, viết tắt của “relative tolerance” (dung sai tương đối). Giá trị mặc định là1e-3hay 0,001. Các giá trị nhỏ hơn sẽ khiến cho ode45thêm “khắt khe”, vì vậy cần hàm sẽ cần tính nhiều hơn để giảm nhỏ sai số.

12.6 Mô hình dùng để làm gì? 157Exercise 12.7 Hãy chạyode45với một loạt các giá trị củaRelTolvà đảm bảo

Một phần của tài liệu Mô hình hóa các hiện tượng vật lý bằng Octave (Trang 166 - 167)