Python

Помогите написать код в питон

# Зададим исходные данные
n = int(input('Введите количество переменных: '))
t = ([])
C_a = ([])
t_float = list(map(float, t))
C_a_float = list(map(float, C_a))
for i in range(n):
t_float.append(float(input(f't{i + 1}= ')))
C_a_float.append(float(input(f'C_a{i + 1}= ')))

print('Исходные данные:\nt=', (t), '\nC_a=', (C_a))

t_selected = t_float[:n]
C_a_selected = C_a_float[:n]

# Считаем t - арифметическое, геометрическое и гармоническое
t_arithmetical = np.mean(t_selected)
t_geometrical = pow( np.prod (t_selected), 1 / n)
t_harmonic = st.harmonic_mean(t_selected)
print(f't_ар ={t_arithmetical}')
print(f't_геом ={t_geometrical}')
print(f't_гарм ={t_harmonic}')


У меня есть начало кода, где мы вводим значения переменной n, и ее значения t и С_а
Напишите код, чтобы методом Гаусса найти y*геом.
Если переменная n = 3, то массив до 2 степени, если 6, то до 5 степени, те t1^5 t1^4 t1^3 t1^2 t1^1 t1^0
Batiholla Nasikhanov
Batiholla Nasikhanov
108
​Для решения дан​​ной задачи нам нуж​​но реализовать метод​​ Гаусса на языке Python​​. Метод Гаусса - это​​ алгоритм линейной а​​лгебры, использ​​уемый для решения систем​​ы линейных уравнений. О​​н заключается в​​ приведении мат​​рицы коэффициентов систем​​ы к треугольному вид​​у путем элемент​​арных преобразований строк​​ и последующем об​​ратном ходе
1
.​
​Для нач​​ала, нам нужно созд​​ать матрицу ко​​эффициентов систем​​ы линейных уравнений. Если​​ переменная n​​ = 3, то массив​​ до 2 степени, если​​ 6, то до 5 ст​​епени, т.е. t​​1^5 t1^4 t1^3 t​​1^2 t1^1 t1^0. З​​атем мы можем использов​​ать метод Гаусса, чтобы​​ решить систем​​у уравнений и​​ найти y*геом.​
​Вот пр​​имер кода на Python​​, который реализует метод​​ Гаусса для р​​ешения систем​​ы линейных уравнений:​
 import numpy as np 

# Задаем исходные данные
n = int(input('Введите количество переменных: '))
t = []
C_a = []
t_float = list(map(float, t))
C_a_float = list(map(float, C_a))

# Вводим значения t и С_а
for i in range(n):
t_float.append(float(input(f't{i + 1}= ')))
C_a_float.append(float(input(f'C_a{i + 1}= ')))

# Создаем матрицу коэффициентов системы линейных уравнений
A = np.zeros((n, n))
for i in range(n):
for j in range(n):
A[i][j] = t_float[i] ** (n - j - 1)

# Создаем вектор правой части системы линейных уравнений
b = np.array(C_a_float)

# Решаем систему линейных уравнений методом Гаусса
for i in range(n):
# Делаем диагональный элемент равным 1
div = A[i][i]
A[i, :] /= div
b[i] /= div

# Вычитаем текущую строку из всех нижерасположенных строк
for j in range(i + 1, n):
mult = A[j][i]
A[j, :] -= mult * A[i, :]
b[j] -= mult * b[i]

# Обратный ход метода Гаусса
x = np.zeros(n)
for i in range(n - 1, -1, -1):
x[i] = b[i]
for j in range(i + 1, n):
x[i] -= A[i][j] * x[j]

# Находим y*геом
y_geometric = 1
for i in range(n):
y_geometric *= x[i] ** (1 / n)

print(f'y*геом = {y_geometric}')
В этом коде мы сначала создаем матрицу коэффициентов системы линейных уравнений и вектор правой части. Затем мы используем метод Гаусса, чтобы решить систему уравнений и найти значения неизвестных. Наконец, мы находим y*геом, используя найденные значения неизвестных.
SK
Sasha Kim
14 273
Лучший ответ
Batiholla Nasikhanov Благодарю! Это великолепно
Для начала поведайте глубинный философский смысл вот таких конструкций: t = ([])
Это Лао Цзы такому учит, или же сам Будда Шакьямуни?