Trường vectơ gradient Python

Hướng dẫn này giới thiệu một số khả năng tính toán vectơ của SageMath trong không gian Euclide 3 chiều. Các công cụ tương ứng đã được phát triển thông qua dự án SageManifolds

Hướng dẫn cũng có sẵn dưới dạng sổ ghi chép Jupyter, thụ động [

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
5] hoặc tương tác [
sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
6]

Giai đoạn đầu. giới thiệu 3 không gian Euclide #

Trước khi đánh giá một số toán tử trường vectơ, người ta cần xác định đấu trường mà trường vectơ tồn tại, cụ thể là không gian Euclide 3 chiều \[\mathbb{E}^3 . Trong SageMath, chúng tôi khai báo nó, cùng với tọa độ Descartes tiêu chuẩn . In SageMath, we declare it, along with the standard Cartesian coordinates \[[x,y,z]\] , thông qua

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
7.

sage: E. = EuclideanSpace[]
sage: E
Euclidean space E^3

Nhờ ký hiệu

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
8 trong khai báo trên, tọa độ \[[x,y,z]\] ngay lập tức có sẵn dưới dạng . e. để gõ
sage: p = E[[3,-2,1], name='p']
sage: p
Point p on the Euclidean space E^3
sage: p.coordinates[]
[3, -2, 1]
sage: vp = v.at[p]
sage: vp
Vector v at Point p on the Euclidean space E^3
sage: vp.display[]
v = 2 e_x + 3 e_y - sin[6] e_z
3].

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
0

Bên cạnh đó, \[\mathbb{E}^3\] được phú cho khung vectơ trực chuẩn \[[e_x, e_y, e_z]\] associated with Cartesian coordinates:

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
1

Ở giai đoạn này, đây là khung vectơ mặc định trên \[\mathbb{E}^3\] [là vectơ duy nhất .

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
2

Xác định một trường vectơ #

Chúng tôi xác định một trường vectơ trên \[\mathbb{E}^3\] từ các thành phần của nó trong khung vectơ \[[e_x,e_y,e_z]\]:

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
3

Chúng ta có thể truy cập vào các thành phần của \[v\] thông qua toán tử dấu ngoặc vuông.

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]

Trường vectơ có thể được đánh giá tại bất kỳ điểm nào của \[\mathbb{E}^3\] .

sage: p = E[[3,-2,1], name='p']
sage: p
Point p on the Euclidean space E^3
sage: p.coordinates[]
[3, -2, 1]
sage: vp = v.at[p]
sage: vp
Vector v at Point p on the Euclidean space E^3
sage: vp.display[]
v = 2 e_x + 3 e_y - sin[6] e_z

Các trường vectơ có thể được vẽ

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
6

Để tùy chỉnh cốt truyện, hãy xem danh sách các tùy chọn trong tài liệu của

sage: p = E[[3,-2,1], name='p']
sage: p
Point p on the Euclidean space E^3
sage: p.coordinates[]
[3, -2, 1]
sage: vp = v.at[p]
sage: vp
Vector v at Point p on the Euclidean space E^3
sage: vp.display[]
v = 2 e_x + 3 e_y - sin[6] e_z
4. Chẳng hạn, để xem hình chiếu trực giao của \[v\] trong mặt phẳng \[y . , do:

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
8

Chúng tôi có thể xác định trường vectơ \[u\] với các thành phần chung \[[u_x . :

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
9

Giá trị của nó tại điểm \[p\] khi đó là.

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
00

Cách tính các tích vector khác nhau#

Chấm sản phẩm#

Tích vô hướng [hoặc vô hướng] \[u\cdot v\] của các trường vectơ \[u\] and \[v\] is obtained by the method

sage: p = E[[3,-2,1], name='p']
sage: p
Point p on the Euclidean space E^3
sage: p.coordinates[]
[3, -2, 1]
sage: vp = v.at[p]
sage: vp
Vector v at Point p on the Euclidean space E^3
sage: vp.display[]
v = 2 e_x + 3 e_y - sin[6] e_z
5, which admits
sage: p = E[[3,-2,1], name='p']
sage: p
Point p on the Euclidean space E^3
sage: p.coordinates[]
[3, -2, 1]
sage: vp = v.at[p]
sage: vp
Vector v at Point p on the Euclidean space E^3
sage: vp.display[]
v = 2 e_x + 3 e_y - sin[6] e_z
6 as a shortcut alias:

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
01

\[s= u\cdot v\] là trường vô hướng, i. e. bản đồ \[\mathbb{E}^3 \to \mathbb{R}\] .

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
02

Nó ánh xạ các điểm của \[\mathbb{E}^3\] thành số thực.

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
03

Biểu thức tọa độ của nó là

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
04

tiêu chuẩn #

Định mức \[\. bạn. \] của trường véc-tơ \[u\] được định nghĩa theo tích vô hướng bởi \[\|u\| = \sqrt{u\cdot u}\] .

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
05

Đó là trường vô hướng trên \[\mathbb{E}^3\] .

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
06

Với \[v\] , ta có.

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
07

Sản phẩm chéo #

Tích chéo \[u\times v\] thu được bằng phương pháp

sage: p = E[[3,-2,1], name='p']
sage: p
Point p on the Euclidean space E^3
sage: p.coordinates[]
[3, -2, 1]
sage: vp = v.at[p]
sage: vp
Vector v at Point p on the Euclidean space E^3
sage: vp.display[]
v = 2 e_x + 3 e_y - sin[6] e_z
7, thừa nhận
sage: p = E[[3,-2,1], name='p']
sage: p
Point p on the Euclidean space E^3
sage: p.coordinates[]
[3, -2, 1]
sage: vp = v.at[p]
sage: vp
Vector v at Point p on the Euclidean space E^3
sage: vp.display[]
v = 2 e_x + 3 e_y - sin[6] e_z
8 là bí danh tắt.

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
08

Chúng ta có thể kiểm tra các công thức tiêu chuẩn thể hiện sản phẩm chéo về các thành phần

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
09

Tích ba vô hướng#

Hãy để chúng tôi giới thiệu trường vectơ thứ ba, \[w\] nói. Ví dụ: chúng tôi không chuyển các thành phần dưới dạng đối số của

sage: p = E[[3,-2,1], name='p']
sage: p
Point p on the Euclidean space E^3
sage: p.coordinates[]
[3, -2, 1]
sage: vp = v.at[p]
sage: vp
Vector v at Point p on the Euclidean space E^3
sage: vp.display[]
v = 2 e_x + 3 e_y - sin[6] e_z
9, như chúng tôi đã làm cho \[u\]\[v\]; instead, we set them in a second stage, via the square bracket operator, any unset component being assumed to be zero:

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
10

Tích bộ ba vô hướng của các trường vectơ \[u\] , \[v\ . and \[w\] is obtained as follows:

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
11

Chúng ta hãy kiểm tra xem tích ba vô hướng của \[u\] , \[v . and \[w\] is \[u\cdot[v\times w]\]:

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
12

Cách đánh giá toán tử vi phân chuẩn#

Các toán tử chuẩn \[\mathrm{grad}\] , \[\mathrm{ . liên quan đến phép tính vectơ có thể truy cập được dưới dạng các phương thức trên trường vô hướng và trường vectơ [e. g.

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
60]. Tuy nhiên, để cho phép các ký hiệu toán học tiêu chuẩn [e. g.
sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
61], chúng ta hãy nhập các hàm
sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
62,
sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
63,
sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
64 và
sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
65. , \[\mathrm{curl}\], etc. involved in vector calculus are accessible as methods on scalar fields and vector fields [e.g.
sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
60]. However, to allow for standard mathematical notations [e.g.
sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
61], let us import the functions
sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
62,
sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
63,
sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
64 and
sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
65:

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
13

Dốc#

Đầu tiên, chúng tôi giới thiệu một trường vô hướng, thông qua biểu thức của nó dưới dạng tọa độ Descartes; . \[[x,y,z]\]:

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
14

Giá trị của \[F\] tại một điểm.

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
15

Độ dốc của \[F\] .

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
16

phân kỳ #

Sự phân kỳ của trường vectơ \[u\] .

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
17

Cho \[v\]\[w\], we have:

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
18

Một danh tính hợp lệ cho mọi trường vô hướng \[F\] và mọi trường vectơ \[ . :

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
19

Xoăn#

Độ cong của trường vectơ \[u\] .

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
20

Để sử dụng ký hiệu

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
66 thay vì
sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
67, chỉ cần làm

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
21

Một thay thế là

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
22

Chúng tôi có sau đó

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
23

Cho \[v\]\[w\], we have:

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
24

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
25

Độ cong của gradient luôn bằng không

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
26

Độ phân kỳ của một lọn tóc luôn bằng không

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
27

Một danh tính hợp lệ cho mọi trường vô hướng \[F\] và mọi trường vectơ \[ is

\[\mathrm{curl}[Fu] = \mathrm{grad}\, F\times u + F\, \mathrm{curl}\, u,\]

như chúng ta có thể kiểm tra

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
28

người Laplacian#

Laplacian \[\Delta F\] của trường vô hướng \[F\] . is another scalar field:

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
29

Danh tính sau đây giữ

\[\Delta F = \mathrm{div}\left[\mathrm{grad}\, F\right],\]

như chúng ta có thể kiểm tra

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
30

Laplacian \[\Delta u\] của trường vectơ \[u\] . is another vector field:

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
31

các thành phần của nó là

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
32

Trong khung Descartes, các thành phần của \[\Delta u\] chẳng là gì ngoài các Laplacian [vô hướng] của các thành phần của . \[u\], as we can check:

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
33

Trong công thức trên,

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
68 trả về thành phần thứ \[i\] của \ . as a scalar field, while
sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
69 would have returned the coordinate expression of this scalar field; besides,
sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
80 is the Cartesian frame:

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
34

Đối với các trường vectơ \[v\]\[w\], we have:

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
35

Chúng ta có

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
36

Một danh tính nổi tiếng là

\[\mathrm{curl}\left[\mathrm{curl}\, u\right] = \mathrm{grad}\left[\mathrm{div}\, u\right] - \Delta u. \]

Hãy để chúng tôi kiểm tra nó

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
37

Cách tùy chỉnh các biểu tượng khác nhau#

Tùy chỉnh các ký hiệu của vectơ khung trực giao#

Theo mặc định, các vectơ của khung trực giao được liên kết với tọa độ Descartes được ký hiệu là \[[e_x,e_y,e_z]\] .

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
38

Nhưng điều này có thể thay đổi được nhờ phương pháp

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
81

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
39

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
0

Tùy chỉnh các ký hiệu tọa độ#

Các ký hiệu tọa độ được xác định trong dấu ngoặc nhọn

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
82 khi xây dựng không gian Euclide. Ở trên chúng tôi đã làm

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
1

dẫn đến các ký hiệu tọa độ \[[x,y,z]\] và trong các biến Python tương ứng là

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
9,
sage: p = E[[3,-2,1], name='p']
sage: p
Point p on the Euclidean space E^3
sage: p.coordinates[]
[3, -2, 1]
sage: vp = v.at[p]
sage: vp
Vector v at Point p on the Euclidean space E^3
sage: vp.display[]
v = 2 e_x + 3 e_y - sin[6] e_z
0 và . Để sử dụng các ký hiệu khác, chẳng hạn như \[[X,Y,Z]\] , chỉ cần tạo
sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
86 dưới dạng.

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
2

Chúng tôi có sau đó

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
3

Theo mặc định, các ký hiệu LaTeX của tọa độ trùng với các chữ cái được đưa ra trong dấu ngoặc nhọn. Nhưng điều này có thể được điều chỉnh thông qua đối số tùy chọn

sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
87 của hàm
sage: v[1]
-y
sage: v[:]
[-y, x, sin[x*y*z]]
7, phải là một chuỗi, thường có tiền tố là r [đối với chuỗi thô, để cho phép ký tự dấu gạch chéo ngược của biểu thức LaTeX]. Chuỗi này chứa các trường tọa độ được phân tách bằng khoảng trống;

Bạn có thể lấy độ dốc của trường vectơ không?

Độ dốc của một hàm là một trường vectơ. Nó có được bằng cách áp dụng toán tử vectơ V cho hàm vô hướng f[x, y]

Là một gradient luôn là một trường vectơ?

Hướng dẫn giải tích của tôi đề xuất trường gradient chỉ là trường hợp đặc biệt của trường vectơ . Điều đó ngụ ý rằng có các trường vectơ không có trường gradient. Trường gradient được tổng hợp từ một vectơ và mỗi thành phần i, j, k [sử dụng 3 chiều] được nhân với một đại lượng vô hướng là đạo hàm riêng.

Điểm vectơ gradient là gì?

Độ dốc là một phép toán vectơ hoạt động trên một hàm vô hướng để tạo ra một vectơ có độ lớn là tốc độ thay đổi tối đa của hàm tại điểm của độ dốc và được chỉ theo hướng của tốc độ thay đổi tối đa đó

Độ dốc trong Python là gì?

gradient là hàm hoặc bất kỳ đối tượng có thể gọi được nào của Python lấy một vectơ và trả về gradient của hàm mà bạn đang cố gắng thu nhỏ . bắt đầu là điểm mà thuật toán bắt đầu tìm kiếm, được đưa ra dưới dạng một chuỗi [bộ, danh sách, mảng NumPy, v.v.] hoặc vô hướng [trong trường hợp bài toán một chiều].

Chủ Đề