/
pharcide
/
David_code
Обзор
Документация
Войти
/
pharcide
/
David_code
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
ChatGPT/main.py.save
55 строк
2 KB
pharcide12
Добавлены оригинальные и исправленные коды для GigaChat, DeepSeek и Qwen
31 мар 2025, 15:01
31 мар 2025, 15:01
712bc54
Код
Авторство
О чём код?
import numpy as np from scipy.integrate import solve_ivp import matplotlib.pyplot as plt # Задача Коши для L(u) = f def L(x, y): return [y[1], 1 - np.sin(x) - np.cos(x)*y[1] - np.sin(x)*y[0]] # Задача Коши для однородного уравнения L(v) = 0 def L_homogeneous(x, y): return [y[1], -np.cos(x)*y[1] - np.sin(x)*y[0]] # Интервал x_span = [0, np.pi/2] x_eval = np.linspace(0, np.pi/2, 100) # Решения задач Коши u_sol = solve_ivp(L, x_span, [0, 0], t_eval=x_eval) v_sol = solve_ivp(L_homogeneous, x_span, [1, 0], t_eval=x_eval) w_sol = solve_ivp(L_homogeneous, x_span, [0, 1], t_eval=x_eval) # Граничные условия alpha_0, alpha_1, A = 1, 0, 0 # y(0) = 0 beta_0, beta_1, B = 1, 0, 1 # y(pi/2) = 1 # Система для c1 и c2 M = np.array([ [alpha_0 * v_sol.y[0][0] + alpha_1 * v_sol.y[1][0], alpha_0 * w_sol.y[0][0] + alpha_1 * w_sol.y[1][0]], [beta_0 * v_sol.y[0][-1] + beta_1 * v_sol.y[1][-1], beta_0 * w_sol.y[0][-1] + beta_1 * w_sol.y[1][-1]] ]) d = np.array([ A - alpha_0 * u_sol.y[0][0] - alpha_1 * u_sol.y[1][0], B - beta_0 * u_sol.y[0][-1] - beta_1 * u_sol.y[1][-1] ]) c1, c2 = np.linalg.solve(M, d) # Общее решение y_numeric = u_sol.y[0] + c1 * v_sol.y[0] + c2 * w_sol.y[0] y_exact = np.sin(x_eval) # Построение графика plt.figure(figsize=(10, 6)) plt.plot(x_eval, y_numeric, label='Численное решение', linewidth=2) plt.plot(x_eval, y_exact, 'r--', label='Аналитическое решение y = sin(x)', linewidth=2) plt.xlabel('x') plt.ylabel('y(x)') plt.title('Сравнение численного и точного решения') plt.legend() plt.grid(True) plt.show() # Погрешность error = np.abs(y_numeric - y_exact) print(f"Максимальная ошибка: {np.max(error):.5e") print(f"Средняя ошибка: {np.mean(error):.5e}")[B