Back
13
# Compute Curl Of A Vector Field.
import sympy as sp
def compute_curl(vector_field, variables):
curl = [
sp.diff(vector_field[2], variables[1]) - sp.diff(vector_field[1], variables[2]),
sp.diff(vector_field[0], variables[2]) - sp.diff(vector_field[2], variables[0]),
sp.diff(vector_field[1], variables[0]) - sp.diff(vector_field[0], variables[1])
]
return curl
def main():
x, y, z = sp.symbols('x y z')
F1 = x**2 + y**2
F2 = y**3 + z
F3 = x * z**2
vector_field = [F1, F2, F3]
curl = compute_curl(vector_field, [x, y, z])
print(f"Vector field: F(x, y, z) = ({F1}, {F2}, {F3})")
print("\nCurl of the vector field:")
print(curl)
curl_at_point = [comp.evalf(subs={x: 1, y: 2, z: 3}) for comp in curl]
print(f"\nCurl at the point (1, 2, 3): {curl_at_point}")
if __name__ == "__main__":
main()