Hướng dẫn how do you calculate units in python? - làm thế nào để bạn tính toán các đơn vị trong python?

Ý tưởng kết hợp các đơn vị (như mét, giây và kilôgam) với số lượng để đại diện cho số lượng vật lý không phải là mới: Tôi đã thấy điều này đầu tiên vào cuối những năm 1980 trong MSSCAD 2.5 dựa trên MS DOS. Một tính năng tương tự đã được cung cấp bởi các công cụ khoa học của Konrad Hinsen.physics.physicalquantities. Phần mềm nguồn mở của chúng tôi NMAG đã cung cấp chức năng liên quan như một phần rất nhỏ của gói tổng thể mặc dù chúng tôi nên sử dụng mã của Konrad thay vì phát minh lại bánh xe. Ý tưởng mang thông tin liên quan đến "đơn vị đo lường" cũng đã được chọn F# của tôi và có lẽ nhiều công cụ khác.

Chúng ta hãy đồng ý đề cập đến một cái gì đó như một số lượng vật lý $ q $ nếu nó được tạo thành từ một giá trị số (chẳng hạn như 10) và (một số sản phẩm của quyền lực) $ q = 10 \ mathrm {m} $.

Phải mất một thời gian để nhận ra rằng Ipython xuất sắc cung cấp tính toán với số lượng vật lý (dựa trên mã của Konrad Hinsen và được đóng góp bởi Georg Brandl). Mô -đun vật lý này có thể được sử dụng làm tiện ích mở rộng IPYTHON (và sau đó cung cấp thêm đường cú pháp), nhưng cũng có thể được sử dụng bên ngoài máy tính xách tay ipython: trong chương trình Python hoặc trong phiên phiên dịch Python. Vì vậy, nó là một mô -đun độc lập chung (tại thời điểm này chỉ là một tệp

v = s / t      # and compute the velocity when travelling distance s in time t
print(v)
3) cho phép làm việc thuận tiện với số lượng vật lý trong Python.

Tôi sẽ cố gắng tóm tắt các hướng dẫn cài đặt và sử dụng cơ bản ở đây để cung cấp ý tưởng về những gì công cụ có thể được sử dụng để (cải thiện và cải tiến được chào đón).

Sử dụng mô -đun v = s / t # and compute the velocity when travelling distance s in time t print(v) 4

Tại thời điểm viết (tháng 2 năm 2013), chỉ có một tệp mà chúng ta cần tải xuống và đó là https://bitbucket.org/birkenfeld/ipython-physics/raw/default/physics.py

Trong một thiết bị đầu cuối trên Linux hoặc OS X, chúng tôi chỉ có thể gõ

wget https://bitbucket.org/birkenfeld/ipython-physics/raw/default/physics.py

và tệp nên được tải xuống máy của chúng tôi vào thư mục hiện tại và được lưu dưới tên

v = s / t      # and compute the velocity when travelling distance s in time t
print(v)
3. Hoặc chúng ta cần lưu nó khỏi trình duyệt. Chúng ta hãy giả sử chúng ta đã thực hiện điều này và tệp có sẵn trong thư mục làm việc hiện tại.

Nhập mô -đun vật lý

Các lệnh sau được thực hiện trong máy tính xách tay IPYTHON nhưng hoạt động chính xác giống nhau trong dấu nhắc Python bình thường (hiển thị

v = s / t      # and compute the velocity when travelling distance s in time t
print(v)
6 trong khi chờ đợi đầu vào của người dùng) hoặc trong chương trình Python được lưu trong tệp
v = s / t      # and compute the velocity when travelling distance s in time t
print(v)
7.

Chúng tôi bắt đầu bằng cách nhập mô -đun vật lý - chủ yếu là để kiểm tra xem tệp

v = s / t      # and compute the velocity when travelling distance s in time t
print(v)
3 có đúng vị trí không:

Ý tưởng chính của mô -đun vật lý có thể được chứng minh bằng cách sử dụng đối tượng

v = s / t      # and compute the velocity when travelling distance s in time t
print(v)
9. Gói cung cấp tên
s1 = 10000     # we know this is expressed in metres, even though s1 does not know.
t1 = 1800      # we knows this is expressed in seconds. Of course t1 does not know.
v1 = s1 / t1   # we know that the result will be expressed in m/s. And v1 does not know.
print(v1)
0 làm phím tắt cho
s1 = 10000     # we know this is expressed in metres, even though s1 does not know.
t1 = 1800      # we knows this is expressed in seconds. Of course t1 does not know.
v1 = s1 / t1   # we know that the result will be expressed in m/s. And v1 does not know.
print(v1)
1 và chúng tôi nhập trực tiếp đối tượng đó:

Những bước đầu tiên¶

Chúng ta có thể tạo các đối tượng

s1 = 10000     # we know this is expressed in metres, even though s1 does not know.
t1 = 1800      # we knows this is expressed in seconds. Of course t1 does not know.
v1 = s1 / t1   # we know that the result will be expressed in m/s. And v1 does not know.
print(v1)
1 bằng cách khởi tạo chúng bằng một số và một số đơn vị. Hãy tưởng tượng chúng ta có khoảng cách 10 mét để làm việc và muốn gọi điều này là
s1 = 10000     # we know this is expressed in metres, even though s1 does not know.
t1 = 1800      # we knows this is expressed in seconds. Of course t1 does not know.
v1 = s1 / t1   # we know that the result will be expressed in m/s. And v1 does not know.
print(v1)
3:

Bây giờ chúng tôi có một đối tượng

s1 = 10000     # we know this is expressed in metres, even though s1 does not know.
t1 = 1800      # we knows this is expressed in seconds. Of course t1 does not know.
v1 = s1 / t1   # we know that the result will be expressed in m/s. And v1 does not know.
print(v1)
1
s1 = 10000     # we know this is expressed in metres, even though s1 does not know.
t1 = 1800      # we knows this is expressed in seconds. Of course t1 does not know.
v1 = s1 / t1   # we know that the result will be expressed in m/s. And v1 does not know.
print(v1)
3 và có thể thực hiện các thao tác thông thường mà chúng tôi thực hiện với số 10 và các đơn vị sẽ được tiếp xúc với các hoạt động tương tự và được cập nhật tương ứng. Ví dụ: nếu chúng ta hỏi diện tích của một hình vuông với chiều dài bên
s1 = 10000     # we know this is expressed in metres, even though s1 does not know.
t1 = 1800      # we knows this is expressed in seconds. Of course t1 does not know.
v1 = s1 / t1   # we know that the result will be expressed in m/s. And v1 does not know.
print(v1)
3 sẽ là gì, chúng ta có thể đánh giá
s1 = 10000     # we know this is expressed in metres, even though s1 does not know.
t1 = 1800      # we knows this is expressed in seconds. Of course t1 does not know.
v1 = s1 / t1   # we know that the result will be expressed in m/s. And v1 does not know.
print(v1)
7:

Tất nhiên chúng ta biết rằng ____ 38 = $ 10^2 = 100 $, nhưng nếu chúng ta bình phương số lượng vật lý

s1 = 10000     # we know this is expressed in metres, even though s1 does not know.
t1 = 1800      # we knows this is expressed in seconds. Of course t1 does not know.
v1 = s1 / t1   # we know that the result will be expressed in m/s. And v1 does not know.
print(v1)
3, chúng ta vuông số và đơn vị
s2 = Q(10000, 'm')
t2 = Q(1800, 's')
v2 = s2 / t2
print(v2)
0 chính xác và đầu ra ở trên hiển thị
s2 = Q(10000, 'm')
t2 = Q(1800, 's')
v2 = s2 / t2
print(v2)
1. Khi xử lý các đơn vị phức tạp hơn và các biểu thức phức tạp hơn, thông tin bổ sung trên các đơn vị có thể cực kỳ hữu ích để phát hiện lỗi.

Các đối tượng

s1 = 10000     # we know this is expressed in metres, even though s1 does not know.
t1 = 1800      # we knows this is expressed in seconds. Of course t1 does not know.
v1 = s1 / t1   # we know that the result will be expressed in m/s. And v1 does not know.
print(v1)
1 khác nhau có thể được kết hợp, ví dụ để tính toán vận tốc
s2 = Q(10000, 'm')
t2 = Q(1800, 's')
v2 = s2 / t2
print(v2)
3 cho một cái gì đó di chuyển khoảng cách
s1 = 10000     # we know this is expressed in metres, even though s1 does not know.
t1 = 1800      # we knows this is expressed in seconds. Of course t1 does not know.
v1 = s1 / t1   # we know that the result will be expressed in m/s. And v1 does not know.
print(v1)
3 trong thời gian
s2 = Q(10000, 'm')
t2 = Q(1800, 's')
v2 = s2 / t2
print(v2)
5:

In [7]:

t = Q(2, 's')  # create physical quantity to represent the duration of 2 seconds
print(t)

In [8]:

v = s / t      # and compute the velocity when travelling distance s in time t
print(v)

Nếu chúng ta muốn truy cập giá trị số của số lượng, chúng ta có thể sử dụng thuộc tính

s2 = Q(10000, 'm')
t2 = Q(1800, 's')
v2 = s2 / t2
print(v2)
6 của đối tượng
s1 = 10000     # we know this is expressed in metres, even though s1 does not know.
t1 = 1800      # we knows this is expressed in seconds. Of course t1 does not know.
v1 = s1 / t1   # we know that the result will be expressed in m/s. And v1 does not know.
print(v1)
1:

Tương tự, chúng ta chỉ có thể yêu cầu các đơn vị của số lượng bằng cách sử dụng

s2 = Q(10000, 'm')
t2 = Q(1800, 's')
v2 = s2 / t2
print(v2)
8:

Si hay không si? ¶

Hệ thống đo lường gần như toàn cầu là hệ thống các đơn vị quốc tế (được gọi là đơn vị SI), quay trở lại một thời gian dài và dựa trên đồng hồ, thứ hai, kilogam, ampe, kelvin, candela và nốt ruồi làm đơn vị cơ sở.

Miễn là chúng tôi thể hiện tất cả các đại lượng trong các đơn vị cơ sở này và tính toán các thực thể khác (chính xác) hoàn toàn dựa trên giá trị số của chúng, chúng tôi có thể dựa vào số lượng kết quả có số lượng phù hợp cho các đơn vị cơ sở này.

Ví dụ (trong các đơn vị cơ sở) ¶

Dưới đây là một ví dụ: Chúng tôi đo khoảng cách tính bằng mét, giả sử 10.000 mét (đơn vị cơ sở cho khoảng cách là mét) và chúng tôi xác định rằng phải mất 1800 giây (đơn vị cơ sở trong thời gian là vài giây) để di chuyển khoảng cách đó bằng xe đạp. Chúng ta có thể tính toán vận tốc trung bình bằng cách chia khoảng cách theo thời gian và nhận được vận tốc trung bình trong các đơn vị cơ sở:

In [11]:

s1 = 10000     # we know this is expressed in metres, even though s1 does not know.
t1 = 1800      # we knows this is expressed in seconds. Of course t1 does not know.
v1 = s1 / t1   # we know that the result will be expressed in m/s. And v1 does not know.
print(v1)

Vì vậy, vận tốc trung bình của chúng tôi, trong khi di chuyển 10.000 mét trong 1.800 giây, là 5 mét mỗi giây. Tính toán chỉ trả về giá trị 5 nhưng chúng tôi biết các đơn vị là mét mỗi giây vì đây là cách để thể hiện vận tốc trong các đơn vị cơ sở).

Ví dụ (không có trong các đơn vị cơ sở) ¶

Chúng ta có xu hướng nói về vận tốc của xe tính bằng km mỗi giờ, km/h, (hoặc dặm mỗi giờ) không phải là đơn vị cơ sở SI. Vì vậy, chúng ta cần chuyển đổi kết quả của 5 m/s thành, giả sử, km/h. Chúng ta có thể thực hiện điều này bằng tay bằng cách bắt đầu từ 5 m/s, và sau đó chúng ta thay thế M bằng km/1000 và thay thế S bằng H/3600:

$$ 5 \ frac {m} {s} = 5 \ frac {m} {1} \ frac {1} {s} = 5 \ frac {km} {1000} \ frac {3600} {H} = 5 \ frac {km} {h} 3.6 = 5 \ cdot 3.6 \ frac {km} {h} = 18 \ frac {km} {h} $$

Chúng ta có thể lặp lại cùng một bài tập bằng cách sử dụng các đối tượng

s1 = 10000     # we know this is expressed in metres, even though s1 does not know.
t1 = 1800      # we knows this is expressed in seconds. Of course t1 does not know.
v1 = s1 / t1   # we know that the result will be expressed in m/s. And v1 does not know.
print(v1)
1, điều này sẽ giúp việc chuyển đổi thành km/h dễ dàng hơn nhiều:

In [12]:

s2 = Q(10000, 'm')
t2 = Q(1800, 's')
v2 = s2 / t2
print(v2)

s1 = 10000     # we know this is expressed in metres, even though s1 does not know.
t1 = 1800      # we knows this is expressed in seconds. Of course t1 does not know.
v1 = s1 / t1   # we know that the result will be expressed in m/s. And v1 does not know.
print(v1)
1 cung cấp phương pháp
v2.convert('km/h')
print(v2)
1 thuận tiện, có thể thay đổi cách số lượng được thể hiện thành bất kỳ đơn vị (tương thích) nào. Vì vậy, để tìm hiểu
v2.convert('km/h')
print(v2)
2 là trong km/h, chúng ta có thể sử dụng

In [13]:

v2.convert('km/h')
print(v2)

Chúng ta có thể thay đổi cách

v2.convert('km/h')
print(v2)
2 thể hiện số lượng của nó thường xuyên như chúng ta muốn. Cụ thể, chúng tôi có thể quay lại M/S:

In [14]:

v2.convert('m/s')
print(v2)

Hoặc cho nanomet mỗi nano giây (hữu ích trong bối cảnh công nghệ nano, ví dụ, vận tốc của đầu đọc/ghi di chuyển so với đĩa quay trong ổ cứng theo thứ tự của nanomet mỗi nano giây):

In [15]:

v2.convert('nm/ns')
print(v2)

Hoặc đến dặm mỗi giờ - phải thừa nhận rằng chúng ta cần biết rằng

v2.convert('km/h')
print(v2)
4 được viết tắt
v2.convert('km/h')
print(v2)
5 trong tệp
v = s / t      # and compute the velocity when travelling distance s in time t
print(v)
3. Cách tốt nhất để tìm hiểu là xem xét mã nguồn nếu cần thiết (xem bên dưới). Vì vậy, ở đây chúng tôi đi vào (Anh) dặm mỗi giờ:

In [16]:

v2.convert('mi/h')
print(v2)

Các định danh đơn vị khác nhau như

v2.convert('km/h')
print(v2)
5 hàng dặm được tạo trong tệp
v = s / t      # and compute the velocity when travelling distance s in time t
print(v)
3, thường có nhận xét hữu ích. Vì vậy, nếu chúng ta có tệp đó tiện dụng, chúng ta cũng có thể chỉ cần grep cho
v2.convert('km/h')
print(v2)
9 và xem tên nào xuất hiện:

_addUnit('mi', '5280.*ft', '(British) mile')
_addUnit('nmi', '1852.*m', 'Nautical mile')

Chuyển đổi số lượng thành đơn vị SI

Cuối cùng, đối tượng

s1 = 10000     # we know this is expressed in metres, even though s1 does not know.
t1 = 1800      # we knows this is expressed in seconds. Of course t1 does not know.
v1 = s1 / t1   # we know that the result will be expressed in m/s. And v1 does not know.
print(v1)
1 có thuộc tính thuận tiện
v2.convert('m/s')
print(v2)
1 trả về số lượng được biểu thị bằng các đơn vị cơ sở là đơn vị SI cho gói
v = s / t      # and compute the velocity when travelling distance s in time t
print(v)
4:

In [18]:

t = Q(2, 's')  # create physical quantity to represent the duration of 2 seconds
print(t)
0

Và đối với những người thiếu hệ thống CGS, cũng có một thuộc tính

v2.convert('m/s')
print(v2)
3 thể hiện số lượng vật lý trong các đơn vị cơ sở của cm, gram và giây (CGS):

v2.convert('m/s') print(v2) 4 dính vào các đơn vị của họ

Chúng tôi lưu ý rằng các đối tượng

s1 = 10000     # we know this is expressed in metres, even though s1 does not know.
t1 = 1800      # we knows this is expressed in seconds. Of course t1 does not know.
v1 = s1 / t1   # we know that the result will be expressed in m/s. And v1 does not know.
print(v1)
1 nhớ biểu diễn của chúng: nếu chúng tôi tạo khoảng cách như một đơn vị thiên văn
v2.convert('m/s')
print(v2)
6 (gần như là trái đất từ ​​xa đến mặt trời), thì chúng tôi làm như vậy bởi vì đây là thang đo độ dài hợp lý cho vấn đề đã cho. Do đó, nó có ý nghĩa (như một quyết định thiết kế cho hành vi của
v2.convert('m/s')
print(v2)
4) để tuân thủ biểu diễn số lượng trong cùng một đơn vị khi chúng ta sử dụng nó hoặc một lượng dẫn xuất. Ví dụ

In [21]:

t = Q(2, 's')  # create physical quantity to represent the duration of 2 seconds
print(t)
1

t = Q(2, 's')  # create physical quantity to represent the duration of 2 seconds
print(t)
2

Hằng số vật lý được xác định trước

Bây giờ chúng ta đang nhìn vào khoảng cách thiên văn, chúng ta cũng có thể hỏi: mất bao lâu để di chuyển 2 đơn vị thiên văn? Gói

v = s / t      # and compute the velocity when travelling distance s in time t
print(v)
4 có một số hằng số vật lý quan trọng có thể giúp chúng tôi ở đây và chúng tôi có thể truy cập:

Out[22]:

t = Q(2, 's')  # create physical quantity to represent the duration of 2 seconds
print(t)
3

Một trong số đó là vận tốc của ánh sáng 'C0', vì vậy chúng ta có thể phân chia khoảng cách cho vận tốc để có được thời gian di chuyển:

In [23]:

t = Q(2, 's')  # create physical quantity to represent the duration of 2 seconds
print(t)
4

Kết quả

s1 = 10000     # we know this is expressed in metres, even though s1 does not know.
t1 = 1800      # we knows this is expressed in seconds. Of course t1 does not know.
v1 = s1 / t1   # we know that the result will be expressed in m/s. And v1 does not know.
print(v1)
1 dính vào việc sử dụng
v2.convert('nm/ns')
print(v2)
0 và
v2.convert('m/s')
print(v2)
6 làm đơn vị, bởi vì chúng tôi bắt đầu từ chúng. Tất nhiên chúng ta có thể chuyển đổi điều này thành bất kỳ đơn vị (tương thích) nào chúng ta thích. Cách dễ nhất là sử dụng thuộc tính
v2.convert('m/s')
print(v2)
1:

In [24]:

t = Q(2, 's')  # create physical quantity to represent the duration of 2 seconds
print(t)
5

Vì vậy, ánh sáng cần khoảng 1000 giây để di chuyển 2 đơn vị thiên văn. Đó là bao nhiêu trong vài phút?

In [25]:

t = Q(2, 's')  # create physical quantity to represent the duration of 2 seconds
print(t)
6

Tất nhiên chúng ta có thể đã xác định được vận tốc của ánh sáng, ví dụ

In [26]:

t = Q(2, 's')  # create physical quantity to represent the duration of 2 seconds
print(t)
7

Bình đẳng của ________ 64¶

Để rõ ràng, chúng ta hãy tạo hai đối tượng

v2.convert('nm/ns')
print(v2)
4 và
v2.convert('nm/ns')
print(v2)
5 mô tả cùng một vận tốc nhưng được biểu thị lần lượt là 18 km/h và 5 m/s:

In [27]:

t = Q(2, 's')  # create physical quantity to represent the duration of 2 seconds
print(t)
8

Vận tốc xuất hiện khác nhau khi được in, nhưng chúng mô tả cùng một vận tốc, tức là chúng đại diện cho cùng một lượng. So sánh

s1 = 10000     # we know this is expressed in metres, even though s1 does not know.
t1 = 1800      # we knows this is expressed in seconds. Of course t1 does not know.
v1 = s1 / t1   # we know that the result will be expressed in m/s. And v1 does not know.
print(v1)
1 xác nhận điều này:

Một cách khác để so sánh các đại lượng là tham khảo lại đại diện duy nhất của chúng bằng cách sử dụng các đơn vị cơ sở:

In [29]:

t = Q(2, 's')  # create physical quantity to represent the duration of 2 seconds
print(t)
9

Sử dụng tiện ích mở rộng v = s / t # and compute the velocity when travelling distance s in time t print(v) 4 trong Notebook Ipython

Cài đặt ipython-vật lý

Chúng ta cần cài đặt các gói

v = s / t      # and compute the velocity when travelling distance s in time t
print(v)
4 dưới dạng tiện ích mở rộng IPYThon bằng lệnh này:

In [30]:

v = s / t      # and compute the velocity when travelling distance s in time t
print(v)
0

v = s / t      # and compute the velocity when travelling distance s in time t
print(v)
1

.

Tôi đã phải bắt đầu một máy tính xách tay ipython mới để có thể tải tiện ích mở rộng vật lý sau khi chạy lệnh

v2.convert('nm/ns')
print(v2)
9.

Kích hoạt tiện ích mở rộng v = s / t # and compute the velocity when travelling distance s in time t print(v) 4 trong Ipython Notebook¶

Hãy để chúng tôi kích hoạt tiện ích mở rộng vật lý đã cài đặt để có sẵn trong phiên Notebook Ipython của chúng tôi:

v = s / t      # and compute the velocity when travelling distance s in time t
print(v)
2

Syntactic Niceties of Vật lý Mở rộng trong Notebook Ipython

Chức năng của

v2.convert('m/s')
print(v2)
4 trong máy tính xách tay ipython giống hệt như không có nó, và tất cả các ví dụ được hiển thị ở trên sẽ hoạt động trong máy tính xách tay ipython.

Đường cú pháp bổ sung mà Ipython cung cấp, là thay vì

v2.convert('mi/h')
print(v2)
2 chúng ta có thể viết

Một tính năng cú pháp bổ sung khác là toán tử

v2.convert('mi/h')
print(v2)
3 được sử dụng để thể hiện số lượng ở bên trái của toán tử
v2.convert('mi/h')
print(v2)
3 trong các đơn vị được đưa ra làm toán hạng bên phải
v2.convert('mi/h')
print(v2)
3. Dưới đây là một số ví dụ:

trong đó cho thấy số lượng

v2.convert('nm/ns')
print(v2)
4 có thể được biểu thị bằng đơn vị cm hoặc km.

Lưu ý rằng đối với ký hiệu thuận tiện này, dòng phải hoàn thành ngay sau khi các đơn vị: bất kỳ khoảng trống hoặc nhận xét nào được thêm vào cùng một dòng dẫn đến lỗi cú pháp.

Chúng tôi lưu ý thêm rằng chúng tôi có thể cần viết các câu lệnh sử dụng đường cú pháp này trong các ô sổ ghi chép riêng biệt (để tránh lỗi cú pháp với phiên bản hiện tại của mô -đun

v = s / t      # and compute the velocity when travelling distance s in time t
print(v)
4.)

Ví dụ ứng dụng trong Notebook Ipython: Động năng và năng lượng tiềm năng (và Tom Daley) ¶

Chúng tôi xem xét các tính năng được giới thiệu ở trên bằng cách tính toán động năng của một chiếc xe có khối lượng 1000 kg và di chuyển với vận tốc 50 km/h:

Đối tượng

s1 = 10000     # we know this is expressed in metres, even though s1 does not know.
t1 = 1800      # we knows this is expressed in seconds. Of course t1 does not know.
v1 = s1 / t1   # we know that the result will be expressed in m/s. And v1 does not know.
print(v1)
1
s2 = Q(10000, 'm')
t2 = Q(1800, 's')
v2 = s2 / t2
print(v2)
3 nhớ rằng nó đã được tạo với giá trị 50 và đơn vị
_addUnit('mi', '5280.*ft', '(British) mile')
_addUnit('nmi', '1852.*m', 'Nautical mile')
0:

Chúng ta có thể chuyển đổi nó thành các đơn vị SI (của mét và giây ở đây), sử dụng thuộc tính

_addUnit('mi', '5280.*ft', '(British) mile')
_addUnit('nmi', '1852.*m', 'Nautical mile')
1 trả về cùng một lượng vật lý trong các đơn vị cơ sở SI:

Hoặc chúng ta có thể sử dụng phương thức

v2.convert('km/h')
print(v2)
1 sẽ thay đổi cách đối tượng
s2 = Q(10000, 'm')
t2 = Q(1800, 's')
v2 = s2 / t2
print(v2)
3 được trình bày từ km/h thành m/s:

Năng lượng động học $ e_ \ mathrm {k} $ là $ e_ \ mathrm {k} = \ frac {1} {2} m v^2 $, và chúng ta có thể tính toán điều này một cách thuận tiện như

Phần mở rộng vật lý đã sử dụng thông tin mà nó có về khối lượng [kg] và vận tốc [m / s] ^2].

Hoặc để có được điều này trong kilo joule (kJ):

Bây giờ chúng ta có thể hỏi từ độ cao của cùng một chiếc xe sẽ phải rơi từ để đạt được động năng tương tự (trên bề mặt Trái đất hành tinh). Chúng tôi làm điều này bằng cách so sánh năng lượng tiềm năng $ e_ \ mathrm {p} = m g h $ với động năng $ e_ \ mathrm {k} $ mà chúng tôi có với vận tốc 50 km/h, trong đó $ g = 9,81 \ mathrm { kg/s^2} $ là gia tốc hấp dẫn của trái đất ở bề mặt hành tinh. Và do đó $ h = \ frac {e _ {\ mathrm {k}}} {m g} $:

Số lượng này $ H $ có nghĩa là gì? Điều đó có nghĩa là động năng của một chiếc xe di chuyển với 50 km/h giống như năng lượng của chiếc xe đó rơi (trong chân không) từ độ cao $ \ khoảng 9,83 \\ mathrm {m} $. Điều này có vẻ là một chiều cao khá lớn: nhảy từ một tòa tháp mười mét thường được xem là nguy hiểm (trừ khi một người nhảy xuống nước, và thậm chí sau đó điều này không có rủi ro). Tuy nhiên, những gì nó thực sự cho thấy là việc di chuyển tại (chỉ) 50 km/h cũng là một thủ tục hơi rủi ro.

Thực tế là tính toán của chúng tôi không chỉ trả về giá trị số (tức là 9,83) mà còn là một đơn vị (tức là mét) mang lại sự tự tin thêm về kết quả: ít nhất chúng tôi đã không phạm sai lầm sẽ dẫn đến kết quả có các đơn vị sai ( Và gần như chắc chắn là giá trị sai là tốt).

Chúng ta nên nói về tính đầy đủ, rằng có những cách tốt hơn để có được kết quả này: ví dụ chúng ta có thể thấy rằng khối lượng của vật thể (và do đó tổng năng lượng động học) không thực sự quan trọng đối với câu hỏi được đặt ra, và nói chung là chiều cao mùa thu $ h $ liên quan đến vận tốc di chuyển $ v $ thông qua

Vì vậy, đối với các số cụ thể mà chúng tôi có

Một cách khác để kiểm tra chéo kết quả này là đối với các đối tượng dưới gia tốc không đổi $ g $, vận tốc thay đổi là $ v (t) = g t $ và khoảng cách di chuyển được đưa ra bởi $ s (t) = \ frac {1} {2} g t^2 $. Giải phương trình sau cho $ t $ cung cấp $ t (s) = \ sqrt {2 \ frac {s} {g}} $, tức là ví dụ của chúng tôi trong đó $ s = h $:

Điều này có nghĩa là phải mất 1,416 giây để giảm chiều cao 9,83 mét. Vận tốc sau đó thu được là $ v (t) = g t $

Velocity V2 mà chúng tôi đã tính toán độc lập dựa trên chiều cao mùa thu $ h $ phù hợp với vận tốc v mà chúng tôi bắt đầu để xác định chiều cao rơi phải; Cho chúng tôi sự tự tin hơn về tính đúng đắn của thủ tục.

Một lời nhắc nhở nhanh về tài liệu được trình bày trong phần này: ký hiệu sổ ghi chép IPYTHON (tức là

_addUnit('mi', '5280.*ft', '(British) mile')
_addUnit('nmi', '1852.*m', 'Nautical mile')
4 thay vì
v2.convert('mi/h')
print(v2)
2) chỉ có thể được sử dụng trong sổ ghi chép IPYTHON. Để lưu một chương trình Python thực hiện các tính toán về số lượng, chúng ta cần sử dụng hàm tạo
s1 = 10000     # we know this is expressed in metres, even though s1 does not know.
t1 = 1800      # we knows this is expressed in seconds. Of course t1 does not know.
v1 = s1 / t1   # we know that the result will be expressed in m/s. And v1 does not know.
print(v1)
1
s1 = 10000     # we know this is expressed in metres, even though s1 does not know.
t1 = 1800      # we knows this is expressed in seconds. Of course t1 does not know.
v1 = s1 / t1   # we know that the result will be expressed in m/s. And v1 does not know.
print(v1)
0 như trong phần đầu tiên của bài đăng này.

Bản tóm tắt¶

Cũng giống như cách tính toán biểu tượng hỗ trợ máy tính thường bị đánh giá thấp, tôi tin rằng chúng ta là các nhà khoa học và kỹ sư tính toán nên sử dụng nhiều tính toán hơn với số lượng vật lý mang thông tin về các đơn vị có giá trị số. Tôi chắc chắn đã dành rất nhiều thời gian để có được các đơn vị đúng (thường làm cho họ sai trước) và thấy những người khác mắc lỗi tương tự trong các tính toán viết tay dài. Sự pha trộn của các đơn vị có thể dẫn đến sự thất bại của các dự án lớn như cái gọi là hỗn hợp số liệu của quỹ đạo khí hậu Mars dẫn đến sự cố của nó vào năm 1999.

Trong mô phỏng thực tế và mô hình hóa, chúng ta thường được cung cấp số lượng vật lý từ các nhà thử nghiệm hoặc cảm biến hoặc các nhà khoa học lý thuyết cần được chuyển đổi, ví dụ từ các đơn vị không phải SI sang SI hoặc thành các đơn vị mô phỏng. Ngay cả không phụ thuộc vào mô phỏng máy tính, chúng tôi thường xuyên cần chuyển đổi số lượng vật lý giữa các hệ thống đơn vị khác nhau để tính toán và xử lý dữ liệu thêm.

Khi thích hợp và có thể trong phần mềm của chúng tôi, chúng tôi nên mang theo các đơn vị một cách rõ ràng trong đó một số lượng được biểu thị cùng với giá trị số (ví dụ: sử dụng mô -đun

v = s / t      # and compute the velocity when travelling distance s in time t
print(v)
4) - thay vì giả sử chúng tôi biết trong đó các đơn vị được biểu thị. Điều này tránh các lỗi được giới thiệu bởi tài liệu không chính xác/bị thiếu hoặc hiểu lầm liên quan đến các đơn vị cho các giá trị số. Hơn nữa, thay vì làm việc trên giấy yếu tố chuyển đổi cho giá trị số dựa trên một bộ đơn vị sang một bộ đơn vị khác, chúng ta nên giao nhiệm vụ thuật toán này cho máy tính. Điều này làm cho quá trình tái tạo hơn, linh hoạt hơn và ghi lại sự chuyển đổi.


Các phiên bản phần mềm được sử dụng: Cam kết kho lưu trữ vật lý IPYTHON được sử dụng cho thử nghiệm ở trên là

_addUnit('mi', '5280.*ft', '(British) mile')
_addUnit('nmi', '1852.*m', 'Nautical mile')
9 từ ngày 22 tháng 10 năm 2012. Phiên bản ipython là 0,13,1.

Bạn có thể tải xuống sổ ghi chép này.

Làm thế nào để bạn sử dụng các đơn vị SI trong Python?

Sau khi nhập, các đơn vị cơ sở SI được khởi tạo và có sẵn trong không gian tên dưới dạng các biến sau:..
si.M - mét ..
si.kg - kilôgam ..
si.S - thứ hai ..
si.A - ampe ..
Si.cd - Candela ..
si.K - Kelvin ..
si.Mol - Mole ..

Làm thế nào để bạn tính toán một số trong Python?

Ví dụ: 25/50 * 100 cho thấy 25 là 50% của 50 ...
Sử dụng phân chia / toán tử để chia một số cho một số khác ..
Nhân số thương số với 100 để có được tỷ lệ phần trăm ..
Kết quả cho thấy bao nhiêu phần trăm số đầu tiên của số thứ hai ..

Làm thế nào để bạn chuyển đổi trong Python?

Trong Python, bạn chỉ có thể sử dụng hàm bin () để chuyển đổi từ giá trị thập phân sang giá trị nhị phân tương ứng của nó.Và tương tự, hàm int () để chuyển đổi một nhị phân thành giá trị thập phân của nó.Hàm int () lấy đối số thứ hai là cơ sở của số sẽ được chuyển đổi, đó là 2 trong trường hợp số nhị phân.use the bin() function to convert from a decimal value to its corresponding binary value. And similarly, the int() function to convert a binary to its decimal value. The int() function takes as second argument the base of the number to be converted, which is 2 in case of binary numbers.