Tag Archives: tài liệu

Chương 2: Biến, biểu thức và câu lệnh

Trở về Mục lục cuốn sách

Giá trị và kiểu

Giá trị là một trong những cái cơ bản mà chương trình cần dùng đến, chẳng hạn như một chữ cái hoặc một con số. Các giá trị mà ta đã thấy đến giờ bao gồm 1, 2, và 'Hello, World!'.

Các giá trị này thuộc về hai kiểu khác nhau: 2 là một số nguyên, còn 'Hello, World!' là một chuỗi, được gọi như vậy vì nó là một chuỗi các kí tự ghép lại với nhau. Bạn (và trình thông dịch) có thể nhận ra các chuỗi vì chúng được đặt trong cặp dấu nháy. Tiếp tục đọc

Advertisements

4 phản hồi

Filed under Sách, Think Python

Chương 1: Cơ chế của chương trình máy tính

Trở về Mục lục cuốn sách

Mục đích của cuốn sách này là hướng dẫn bạn suy nghĩ như là một nhà khoa học máy tính. Cách tư duy này kết hợp những ưu điểm của khoa học tự nhiên, trong đó có toán học, với kĩ thuật. Cũng như những nhà toán học, những nhà khoa học máy tính dùng những ngôn ngữ có cấu trúc để diễn đạt ý tưởng (đặc biệt là tính toán). Giống như những kĩ sư, họ cũng làm công việc thiết kế, gắn kết các thành phần tạo nên một hệ thống và đánh giá những ưu khuyết giữa các phương án khác nhau. Giống như những nhà khoa học, họ khảo sát các động thái của hệ thống phức tạp, đề ra các giả thiết, và kiểm định những tính toán. Tiếp tục đọc

2 phản hồi

Filed under Think Python

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

Trở về Mục lục cuốn sách

Véc-tơ là gì?

Từ “véc-tơ” có thể mang những nghĩa khác nhau đối với từng người. Trong MATLAB, véc-tơ là một ma trận chỉ có một hàng, hoặc một cột. Cho đến giờ, ta đã dùng các véc-tơ của MATLAB để biểu diễn:

dãy:
Dãy là một tập hợp các giá trị được nhận diện bởi các chỉ số nguyên; theo cách làm tự nhiên ta có thể lưu các phần tử của dãy như những phần tử của một véc-tơ trong MATLAB.

véc-tơ trạng thái:
Véc-tơ trạng thái là một tập hợp các giá trị để mô tả trạng thái của một hệ vật lý. Khi gọi ode45, bạn cho nó các điều kiện ban đầu dưới dạng một véc-tơ trạng thái. Sau đó, khi ode45 gọi hàm tốc độ mà bạn lập nên, nó sẽ trả kết quả là một véc-tơ trạng thái khác.

ánh xạ rời rạc:
Nếu có trong tay hai véc-tơ cùng độ dài, bạn có thể hình dung chúng như một phép ánh xạ từ những phần tử của một véc-tơ này sang các phần tử thuộc véc-tơ kia. Chẳng hạn, ở Mục {Chuột}, kết quả thu được từ ode45 là các véc-tơ, TY; chúng biểu diễn một phép ánh xạ từ các giá trị thời gian của T sang các giá trị số lượng chuột có trong Y.

Trong chương này ta sẽ xét đến một công dụng khác của véc-tơ trong MATLAB: để biểu diễn các véc-tơ không gian. Một véc-tơ không gian là một giá trị nhằm biểu diễn một đại lượng vật lý nhiều chiều, như vị trí, vận tốc, gia tốc, hoặc lực1. Tiếp tục đọc

8 phản hồi

Filed under Mô hình hóa, Sách

Chương 11: Tối ưu hóa và nội suy

Trở về Mục lục cuốn sách

Các sự kiện dùng trong hàm ODE

Thường thì khi gọi ode45, bạn đều phải chỉ ra các thời điểm bắt đầu và kết thúc. Nhưng trong nhiều trường hợp, bạn không biết trước lúc nào việc mô phỏng cần kết thúc. Thật may là MATLAB cung cấp một cơ chế xử lý vấn đề này. Điều không hay là cơ chế này hơi lủng củng một chút. Sau đây là cách hoạt động:

  1. Trước khi gọi ode45 bạn dùng odeset để tạo ra một đối tượng có tên options để chứa các giá trị quy định cách hoạt động của ode45:
    options = odeset('Events', @events);
    

    Trong trường hợp này, tên của tùy chọn (option) là Events còn giá trị là một chuôi hàm. Khi ode45 hoạt động, nó sẽ gọi events sau mỗi bước thời gian. Bạn có thể gọi hàm này bằng bất cứ tên gọi nào, nhưng cái tên events thường được chọn theo thông lệ. Tiếp tục đọc

5 phản hồi

Filed under Mô hình hóa, Sách

Chương 10: Các hệ bậc hai

Trở về Mục lục cuốn sách

Hàm lồng ghép

Trong Mục ví dụ bài toán con vịt, ta đã thấy một ví dụ của tập tin M với hơn một hàm:

function res = duck()
    error = error_func(10)
end

function res = error_func(h)
    rho = 0.3;      % density in g / cm^3
    r = 10;         % radius in cm
    res = ...
end

Tiếp tục đọc

4 phản hồi

Filed under Mô hình hóa, Sách

Chương 9: Hệ các PVT

Trở về Mục lục cuốn sách

Ma trận

Ma trận là dạng hai chiều của một véc-tơ. Cũng như véc-tơ, ma trận gồm có các phần tử được phân biệt bởi chỉ số. Sự khác biệt với véc-tơ là ở chỗ các phần tử ma trận được xếp theo hàng và cột, vì vậy cần có hai chỉ số để xác định được một phần tử.

Một trong những cách tạo ra ma trận là dùng hàm magic, vốn trả lại một ma trận kì ảo với kích cỡ cho trước:

>> M = magic(3)

M =  8     1     6
     3     5     7
     4     9     2

Tiếp tục đọc

4 phản hồi

Filed under Mô hình hóa, Sách

Chương 8: Phương trình vi phân thường

Trở về Mục lục cuốn sách

Phương trình vi phân

Phương trình vi phân là phương trình mô tả các đạo hàm của một hàm số chưa biết. “Giải phương trình vi phân” nghĩa là tìm một hàm số có các đạo hàm thỏa mãn phương trình đã cho.

Chẳng hạn, khi vi phuẩn sống trong môi trường đặc biệt thuận lợi thì tốc độ sinh trưởng tại bất kì thời điểm nào cũng tỉ lệ thuận với số vi khuẩn lúc đó. Có lẽ điều ta quan tâm là số vi khuẩn được biểu diễn dưới dạng hàm theo thời gian. Ta hãy định nghĩa f là hàm chiếu từ thời gian, t, đến số vi khuẩn, y. Dù không biết y bằng bao nhiêu, nhưng ta vẫn có thể viết một phương trình để mô tả nó:

df / dt = af

trong đó a là hằng số đặc trưng cho mức độ vi khuẩn tăng nhanh bao nhiêu. Tiếp tục đọc

11 phản hồi

Filed under Mô hình hóa, Sách

Tóm tắt nội dung cuốn Fast Lane to Python

Cuốn Fast Lane Python là bản chỉnh lại của Quick Painless Tutorial to Python (tác giả Norman Matloff). Vì phiên bản mới này được áp dụng bản quyền Creative Commons License – No Derivatives (“xem thoải mái, không sửa đổi”) nên tôi chỉ dẫn bạn tới bản gốc tiếng Anh của tác giả. Các đường link này sẽ mở đến đúng trang PDF cần xem ngay trên trình duyệt web của bạn. Tuy nhiên trong từng trường hợp, có thể bạn sẽ không đến được trang mong muốn. Tôi mới chỉ thử dùng:

Bạn nghĩ gì về bài viết này?

Filed under Python, Sách

Chương 7: Hàm số của véc-tơ

Trở về Mục lục cuốn sách

Hàm số và tập tin

Đến giờ ta mới chỉ đưa một hàm vào trong mỗi tập tin. Cũng có thể đặt nhiều hàm vào trong một tập tin, nhưng chỉ có hàm đầu tiên, hàm cấp cao nhất mới gọi được từ Command Window. Các hàm phụ trợ khác có thể được gọi từ bất kì đâu trong tập tin, nhưng không thể gọi từ tập tin khác.

Những chương trình lớn thường cần đến nhiều hàm; việc giữ tất cả các hàm trong cùng một tập tin tuy tiện lợi, nhưng làm cho việc gỡ lỗi trở nên khó khăn vì bạn không thể gọi các hàm phụ trợ từ Command Window.

Để giúp giải quyết vấn đề này, tôi thường dùng hàm cấp cao nhất để phat triển và thử nghiệm các hàm phụ trợ. Chẳng hạn, tôi có thể tạo ra một tập tin tên là duck.m và khởi đầu với một hàm cấp cao nhất có tên là duck mà không nhận vào bất kì biến đầu vào cũng như trả lại bất kì biến đầu ra nào. Tiếp tục đọc

4 phản hồi

Filed under MatLab, Mô hình hóa, Sách

Chương 6: Tìm nghiệm

Trở về Mục lục cuốn sách

Trong chương này ta sẽ thảo luận một chút về cách dùng hàm, qua đó lập mối quan hệ giữa toán và MATLAB. Tiếp theo là ứng dụng tìm nghiệm của một phương trình, một bài toán hay gặp trong thực tế.

Tại sao lại cần dùng hàm?

Chương vừa rồi đã giải thích một số ưu điểm của hàm, bao gồm

  • Mỗi hàm có không gian làm việc riêng của nó, vì vậy dùng hàm sẽ tránh được xung đột về tên.
  • Các hàm rất hợp với cách phát triển tăng dần: bạn có thể gỡ lỗi phần thân của hàm trước (dưới dạng tập tin lệnh), rồi gói nó vào trong một hàm, sau đó khái quát hóa bằng cách thêm các biến đầu vào.
  • Hàm cho phép ta chia một vấn đề lớn thành những phần nhỏ để xử lý từng phần một, rồi lắp ghép trở lại thành lời giải hoàn chỉnh.
  • Một khi đã có hàm chạy được, bạn có thể quên đi những chi tiết về cách hoạt động của nó, mà chỉ cần biết nó làm gì. Quá trình trừu tượng hóa này là một cách thức quan trọng để ta quản lý được sự phức tạp của những chương trình lớn.

Một lý do khác khiến bạn phải cân nhắc việc dùng hàm là nhiều công cụ quan trọng của MATLAB yêu cầu bạn phải viết hàm. Chẳng hạn, ở chương này ta sẽ dùng fzero để tìm nghiệm của phương trình phi tuyến. Sau đó ta sẽ dùng ode45 để tìm nghiệm xấp xỉ của các phương trình vi phân. Tiếp tục đọc

3 phản hồi

Filed under Mô hình hóa, Sách