[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci
This commit is contained in:
pre-commit-ci[bot] 2023-10-09 10:54:25 +00:00
parent f97161d001
commit 2a4ea96dbd
5 changed files with 64 additions and 21 deletions

View File

@ -15,6 +15,7 @@ def is_diagonally_dominant(matrix):
return False return False
return True return True
def gauss_seidel(matrix, vector, initial_guess, max_iterations=100, tol=1e-6): def gauss_seidel(matrix, vector, initial_guess, max_iterations=100, tol=1e-6):
""" """
Solve a system of linear equations using the Gauss-Seidel method. Solve a system of linear equations using the Gauss-Seidel method.
@ -33,7 +34,9 @@ def gauss_seidel(matrix, vector, initial_guess, max_iterations=100, tol=1e-6):
ValueError: If the matrix is not diagonally dominant. ValueError: If the matrix is not diagonally dominant.
""" """
if not is_diagonally_dominant(matrix): if not is_diagonally_dominant(matrix):
raise ValueError("Matrix is not diagonally dominant, Gauss-Seidel may not converge.") raise ValueError(
"Matrix is not diagonally dominant, Gauss-Seidel may not converge."
)
n = len(matrix) n = len(matrix)
x = initial_guess.copy() x = initial_guess.copy()
@ -52,6 +55,8 @@ def gauss_seidel(matrix, vector, initial_guess, max_iterations=100, tol=1e-6):
return x return x
if __name__ == "__main__": if __name__ == "__main__":
import doctest import doctest
doctest.testmod() doctest.testmod()

View File

@ -20,6 +20,7 @@ def commutative_law_and(a, b):
""" """
return a and b return a and b
def commutative_law_or(a, b): def commutative_law_or(a, b):
""" """
Implement the commutative law for OR: A OR B = B OR A. Implement the commutative law for OR: A OR B = B OR A.
@ -42,8 +43,10 @@ def commutative_law_or(a, b):
""" """
return a or b return a or b
# Implement other laws similarly # Implement other laws similarly
if __name__ == "__main__": if __name__ == "__main__":
import doctest import doctest
doctest.testmod() doctest.testmod()

View File

@ -1,5 +1,6 @@
from typing import List from typing import List
def decode_resistor_colors(colors: List[str]) -> float: def decode_resistor_colors(colors: List[str]) -> float:
""" """
Calculate the resistance value of a resistor based on its color bands. Calculate the resistance value of a resistor based on its color bands.
@ -32,9 +33,18 @@ def decode_resistor_colors(colors: List[str]) -> float:
raise ValueError("A resistor must have at least three color bands.") raise ValueError("A resistor must have at least three color bands.")
color_values = { color_values = {
"black": 0, "brown": 1, "red": 2, "orange": 3, "yellow": 4, "black": 0,
"green": 5, "blue": 6, "violet": 7, "gray": 8, "white": 9, "brown": 1,
"gold": 0.1, "silver": 0.01 "red": 2,
"orange": 3,
"yellow": 4,
"green": 5,
"blue": 6,
"violet": 7,
"gray": 8,
"white": 9,
"gold": 0.1,
"silver": 0.01,
} }
first_band_value = color_values.get(colors[0].lower(), None) first_band_value = color_values.get(colors[0].lower(), None)
@ -48,6 +58,7 @@ def decode_resistor_colors(colors: List[str]) -> float:
return resistance return resistance
if __name__ == "__main__": if __name__ == "__main__":
import doctest import doctest

View File

@ -1,5 +1,6 @@
from typing import List, Tuple from typing import List, Tuple
def calculate_equivalent_emf_and_resistance( def calculate_equivalent_emf_and_resistance(
cells: List[Tuple[float, float]], connection_type: str cells: List[Tuple[float, float]], connection_type: str
) -> Tuple[float, float]: ) -> Tuple[float, float]:
@ -38,6 +39,7 @@ def calculate_equivalent_emf_and_resistance(
return total_emf, total_internal_resistance return total_emf, total_internal_resistance
def main() -> None: def main() -> None:
""" """
Main function to calculate equivalent EMF and internal resistance of cells. Main function to calculate equivalent EMF and internal resistance of cells.
@ -85,7 +87,9 @@ def main() -> None:
raise ValueError("Invalid choice. Please select 1 or 2.") raise ValueError("Invalid choice. Please select 1 or 2.")
# Calculate equivalent EMF and internal resistance # Calculate equivalent EMF and internal resistance
eq_emf, eq_int_res = calculate_equivalent_emf_and_resistance(cells, connection_type) eq_emf, eq_int_res = calculate_equivalent_emf_and_resistance(
cells, connection_type
)
# Output equivalent cell parameters # Output equivalent cell parameters
print("\nEquivalent Cell Parameters:") print("\nEquivalent Cell Parameters:")
@ -95,6 +99,7 @@ def main() -> None:
except ValueError as e: except ValueError as e:
print(f"Error: {e}") print(f"Error: {e}")
if __name__ == "__main__": if __name__ == "__main__":
import doctest import doctest

View File

@ -1,8 +1,9 @@
from typing import List, Tuple from typing import List, Tuple
def calculate_electric_field( def calculate_electric_field(
charges: List[Tuple[float, Tuple[float, float, float]]], charges: List[Tuple[float, Tuple[float, float, float]]],
point: Tuple[float, float, float] point: Tuple[float, float, float],
) -> Tuple[float, Tuple[float, float, float]]: ) -> Tuple[float, Tuple[float, float, float]]:
""" """
Calculate the electric field and potential at a given point due to charges. Calculate the electric field and potential at a given point due to charges.
@ -43,7 +44,7 @@ def calculate_electric_field(
dx, dy, dz = ( dx, dy, dz = (
point[0] - charge_position[0], point[0] - charge_position[0],
point[1] - charge_position[1], point[1] - charge_position[1],
point[2] - charge_position[2] point[2] - charge_position[2],
) )
r = (dx**2 + dy**2 + dz**2) ** 0.5 r = (dx**2 + dy**2 + dz**2) ** 0.5
@ -51,10 +52,13 @@ def calculate_electric_field(
electric_field[1] += k * charge_magnitude * dy / r**3 electric_field[1] += k * charge_magnitude * dy / r**3
electric_field[2] += k * charge_magnitude * dz / r**3 electric_field[2] += k * charge_magnitude * dz / r**3
electric_field_magnitude = (electric_field[0]**2 + electric_field[1]**2 + electric_field[2]**2)**0.5 electric_field_magnitude = (
electric_field[0] ** 2 + electric_field[1] ** 2 + electric_field[2] ** 2
) ** 0.5
return electric_field_magnitude, tuple(electric_field) return electric_field_magnitude, tuple(electric_field)
def main() -> None: def main() -> None:
""" """
Main function to calculate electric field and potential at a given point. Main function to calculate electric field and potential at a given point.
@ -64,13 +68,27 @@ def main() -> None:
charges = [] charges = []
for i in range(n): for i in range(n):
charge_magnitude = float(input(f"Enter charge magnitude (in Coulombs) for charge {i+1}: ")) charge_magnitude = float(
position = tuple(float(coord) for coord in input(f"Enter position (x, y, z) for charge {i+1} (comma-separated): ").split(',')) input(f"Enter charge magnitude (in Coulombs) for charge {i+1}: ")
)
position = tuple(
float(coord)
for coord in input(
f"Enter position (x, y, z) for charge {i+1} (comma-separated): "
).split(",")
)
charges.append((charge_magnitude, position)) charges.append((charge_magnitude, position))
point = tuple(float(coord) for coord in input("Enter the point (x, y, z) where electric field and potential are to be calculated (comma-separated): ").split(',')) point = tuple(
float(coord)
for coord in input(
"Enter the point (x, y, z) where electric field and potential are to be calculated (comma-separated): "
).split(",")
)
electric_field_magnitude, electric_field_vector = calculate_electric_field(charges, point) electric_field_magnitude, electric_field_vector = calculate_electric_field(
charges, point
)
print("\nElectric Field and Potential at the Given Point:") print("\nElectric Field and Potential at the Given Point:")
print(f"Electric Field Magnitude: {electric_field_magnitude} N/C") print(f"Electric Field Magnitude: {electric_field_magnitude} N/C")
@ -79,6 +97,7 @@ def main() -> None:
except ValueError as e: except ValueError as e:
print(f"Error: {e}") print(f"Error: {e}")
if __name__ == "__main__": if __name__ == "__main__":
import doctest import doctest