Программа в Python для решения системы линейных алгебраических уравнений методом Зейделя без импорта библиотек
python
# Задаем систему уравнений в виде списка коэффициентов и свободных членов
equations = [[4, -1, 0, 3, 12],
[1, 15.5, 3, 8, 34],
[0, -1.3, -4, 1.1, -8],
[14, 5, -2, 30, 12]]
# Задаем начальное приближение решения
initial_solution = [0, 0, 0, 0]
# Задаем погрешность решения
epsilon = 0.01
# Функция для решения системы уравнений методом Зейделя
def solve_system(equations, initial_solution, epsilon):
n = len(equations)
solution = initial_solution.copy()
# Определяем сложные и простые уравнения
complex_equations = []
simple_equations = []
for i in range(n):
complex_equations.append(equations[i][:i] + equations[i][i+1:])
simple_equations.append(equations[i][i])
# Итерационный процесс
while True:
new_solution = solution.copy()
# Решаем простые уравнения
for i in range(n):
sum = 0
for j in range(i):
sum += complex_equations[i][j] * new_solution[j]
for j in range(i+1, n):
sum += complex_equations[i][j-1] * solution[j]
new_solution[i] = (simple_equations[i] - sum) / complex_equations[i][i]
# Проверяем достижение заданной точности
if max([abs(new_solution[i] - solution[i]) for i in range(n)]) < epsilon:
break
solution = new_solution
return solution
# Решаем систему уравнений
solution = solve_system(equations, initial_solution, epsilon)
print("Решение системы уравнений:")
print(solution)
В данной программе система уравнений задается в виде двумерного списка `equations`, где каждый внутренний список представляет одно уравнение, а последний элемент каждого внутреннего списка - свободный член. Начальное приближение решения задается в виде списка `initial_solution`, а погрешность - в виде переменной `epsilon`.
Функция `solve_system` выполняет решение системы уравнений методом Зейделя. Сначала определяются сложные и простые уравнения, а затем в цикле происходит итерационный процесс. В каждой итерации сначала решаются простые уравнения, а затем проверяется достижение заданной точности. Если точность достигнута, цикл прерывается и возвращается полученное решение.
В этой программе мы решили систему уравнений, заданную в списке `equations`, с начальным приближением решения `[0, 0, 0, 0]` и погрешностью `0.01`. Результат выводится на экран в виде списка решения.
Таким образом, данная программа реализует метод Зейделя для решения систем линейных алгебраических уравнений без использования импорта сторонних библиотек.Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет