- Saved searches
- Use saved searches to filter your results more quickly
- alwayswannasky/Numerical-methods
- Name already in use
- Sign In Required
- Launching GitHub Desktop
- Launching GitHub Desktop
- Launching Xcode
- Launching Visual Studio Code
- Latest commit
- Git stats
- Files
- README.md
- About
- Метод простой итерации для решения систем линейных уравнений
- Решение
- Метод простых итераций для решения
- Решение
- Метод простых итераций на Python
- Алгоритм метода простых итераций
- Решение уравнения методом простой итераций по шагам
- Метод простых итераций на Python, готовый код
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
Различные алгоритмы численных методов на языке Python.
alwayswannasky/Numerical-methods
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
Различные алгоритмы численных методов на языке Python.
Решение СЛАУ. Собственные значения и векторы
- 1 — Метод Гаусса
- 2 — Метод Жордана–Гаусса
- 3 — Метод LU–разложения
- 4 — Метод квадратных корней (схема Холецкого)
- 5 — Метод ортогонализации
- 6 — Метод прогонки
- 7 — Метод простых итераций
- 8 — Метод Якоби
- 9 — Обратная матрица(методом Гаусса)
- 10 — Решение СЛАУ в комплексном пространстве
- 11 — Максимальное и минимальное по модулю собственные значения и соответствующие им собственные векторы
- 12 — Переопределенные СЛАУ с помощью методов ортогонализации и минимизацией отклонений
Решение нелинейных уравнений и систем
- 1 — Метод половинного деления
- 2 — Метод Ньютона–Рафсона (касательных)
- 3 — Метод секущих (хорд)
- 4 — Комбинированный метод
- 5 — Метод простых итераций
- 6 — Метод Ньютона
- 7 — Метод спуска
- 8 — Решение линейных уравнений с помощью системы Штурма
Теория приближения и аппроксимация функций
- 1 — Интерполяционный многочлен Лагранжа для функции, заданной таблично
- 2 — Интерполяционный многочлен Лагранжа для заданной функции 𝑓(𝑥) с заданными узлами. Погрешность интерполяции
- 3 — Интерполяционный многочлен Ньютона для функции, заданной таблично
- 4 — Интерполяционный многочлен Ньютона для заданной функции 𝑓(𝑥) с заданными узлами. Погрешность интерполяции
- 5 — Интерполяционный многочлен Эрмита
- 6 — Интерполяционный кубический сплайн для функции из 1)
- 7 — Интерполяционный кубический сплайн для функции из 2)
- 8 — Метод наименьших квадратов, прямая линейной регрессии, аппроксимирующаю функцию, заданную таблично
- 1 — Создание таблицы с приближенными значениями производной функции 𝑓′(𝑥), используя формулы первого порядка точности
- 2 — Создание таблицs с приближенными значениями первой производной функции 𝑓′(𝑥), используя формулы второго порядка точности
- 3 — Создание таблицы приближенных значений производных функции 𝑓′′(𝑥), вычисляемых по формулам второго порядка точности
- 4 — Производные первого и второго порядков, используя интерполяционный метод
- 5 — Вычисление производных первого и второго порядков при помощи сплайнов
- 1 — Формулы прямоугольников
- 2 — Формула трапеций
- 3 — Формула Симпсона
- 4 — Формулы интерполяционного типа
- 5 — Формула Гаусса
- 6 — Первый интеграл с помощью сплайнов
- 7 — Метод Рунге–Ромберга
- 8 — Несобственный интеграл
Численное решение задачи Коши
- 1 — Метод последовательных приближений
- 2 — Метод Эйлера, его модификации
- 3 — Метод Рунге-Кутта
- 4 — Метод Адамса
- 5 — Метод Рунге-Ромберга в правом конце отрезка
Нахождение точек пересечения куба с плоскостью.
About
Различные алгоритмы численных методов на языке Python.
Метод простой итерации для решения систем линейных уравнений
Решение систем линейных уравнений приближёнными методами. Метод итераций
Добрый день всем, произошла проблема в решении данной задачи, не понимаю как это сделать, помогите.
Нужно написать программу для решения систем 4-х линейных алгебраических уравнений с 4-мя неизвестными
Нужно написать программу для решения систем 4-х линейных алгебраических уравнений с 4-мя.
Метод простой итерации для решения системы линейных уравнений
Здравствуйте. Помогите пожалуйста разобраться в методе простых итераций решения системы нелинейных.
Метод итерации решения систем линейных уравнений с использованием прикладного пакета MathCad
Добрый день, друзья. Подскажите или помогите с решением примеров по этой теме. Курсовую пишу, а с.
Метод простых итерации для систем не линейных уравнений
Пишу программу вот ее код disp(‘Метод простых итерации для ‘) x(1)=1; y(1)=1; for i=1:100 .
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
import numpy as np def sort_diag_arr(a) : n = len(a) a = np.array(a) for i in range(n): ind = np.abs(a[i:, i:n]).argmax() row = ind // (n - i) + i col = ind % (n - i) + i a[:,[i, col]] = a[:,[col, i]] a[[i, row], :] = a[[row, i], :] return a A = [ [1.7,2.8,1.9], [2.1,3.4,1.8], [4.2,-1.7,1.3]] B = [0.7,1.1,2.8] eps = 1e-3 a = np.array(A) a = sort_diag_arr(a) print(a) diag = (1/np.diag(a)).reshape(-1,1) a[np.diag_indices_from(a)] = 0. a = np.hstack((-a, np.array(B).reshape(-1, 1))) * diag x = a[:,-1].ravel() x = np.append(x, 1) tmp = x.copy() + eps cnt = 0 while abs(x-tmp).sum() > eps: tmp = x.copy() x = a.dot(x) x = np.append(x, 1) cnt += 1 print(x[:-1].round(), cnt)
Сообщение было отмечено Shket как решение
Решение
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
import numpy as np def sort_diag_arr(a,b) : n = len(a) a = np.array(a) b = np.array(b) for i in range(n): ind = np.abs(a[i:, i:n]).argmax() row = ind // (n - i) + i col = ind % (n - i) + i a[:,[i, col]] = a[:,[col, i]] a[[i, row], :] = a[[row, i], :] b[i], b[row] = b[row], b[i] return a, b A = [ [1.7,2.8,1.9], [2.1,3.4,1.8], [4.2,-1.7,1.3]] B = [0.7,1.1,2.8] eps = 1e-3 a, b = sort_diag_arr(A,B) diag = (1/np.diag(a)).reshape(-1,1) a[np.diag_indices_from(a)] = 0. a = np.hstack((-a, b.reshape(-1, 1))) * diag x = a[:,-1].ravel() x = np.append(x, 1) tmp = x.copy() + eps cnt = 0 while abs(x-tmp).sum() > eps: tmp = x.copy() x = a.dot(x) x = np.append(x, 1) cnt += 1 print(x[:-1].round(3), cnt)
Добавлено через 1 минуту
Shket, Вот без numpy. Но и без сортировки по убыванию по диагонали:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
A = [[4.2, -1.7, 1.3], [ 2.1, 3.4, 1.8], [ 1.7, 2.8, 1.9]] B = [2.8,1.1,0.7] # точность итераций eps = .001 x = [] n = len(A) for j in range(n): k = A[j][j] for i in range(n): A[j][i] /= -k A[j][j] = 0 B[j] /= k # r - счетчик итераций r = 0 x = B.copy() tmp = sum(x) + 2*eps while abs(sum(x)-tmp) > eps: tmp = sum(x) t = [0]*n for i in range(n): t[i] = sum(x[j]*A[i][j] for j in range(n)) + B[i] r += 1 x = t.copy() print(x) print(*(round(elem,3) for elem in x)) print(r)
Метод простых итераций для решения
Желательно также вставить счётчик в цикл, чтобы считалось количество итераций. Значения в MathCad получились следующие — [0, -0, 1].
Очень прошу помощи, заранее благодарен.
Метод простых итераций
Метод простых итерация,дана функция найти икс,в чём ошибка и почему всего лишь одна итерация.
Метод простых итераций
У меня делает одну итерацию, что делать? import math def fun(x): return.
Метод простых итераций для уравнения Кеплера
Здравствуйте! Может ли кто-нибудь написать функцию которая решает уравнение Кеплера M = E -.
Сообщение было отмечено Tvoroj как решение
Решение
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
A = [ [4,-1,2], [1,-5,3], [2,-6,-8]] B = [2, 3, -8] # точность итераций c = 12 eps = 1/10**c x = [] n = len(A) for j in range(n): k = A[j][j] for i in range(n): A[j][i] /= -k A[j][j] = 0 B[j] /= k # r - счетчик итераций r = 0 x = B.copy() tmp = sum(x) + 2*eps while abs(sum(x)-tmp) > eps: tmp = sum(x) t = [0]*n for i in range(n): t[i] = sum(x[j]*A[i][j] for j in range(n)) + B[i] r += 1 x = t.copy() print(*(round(elem) for elem in x)) print(r)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
import numpy as np A = [ [4,-1,2], [1,-5,3], [2,-6,-8]] B = [2, 3, -8] # точность итераций eps = 1e-4 a = np.array(A) diag = (1/np.diag(a)).reshape(-1,1) a[np.diag_indices_from(a)] = 0. a = np.hstack((-a, np.array(B).reshape(-1, 1))) * diag x = a[:,-1].ravel() x = np.append(x, 1) tmp = x.copy() + eps cnt = 0 while abs(x-tmp).sum() > eps: tmp = x.copy() x = a.dot(x) x = np.append(x, 1) cnt += 1 print(x[:-1].round(), cnt)
Метод простых итераций
Помогите пожалуйста написать программу для начинающего на python. Необходимо написать программу.
Метод простых итераций и Метод Зейделя для решения СЛАУ — C++
Доброго времени суток. Не могу понять, в чем косяк моей проги при компиляции выдает неведомо что( .
Метод простых итераций и метод Зейделя для решения СЛАУ
1. Методом простых итераций и методом Зейделя решить СЛАУ вида Bx=с B=\begin21 & 3 & 1.
Метод простых итераций для решения СЛАУ
Здравствуйте. Есть функция, реализующая метод простых итераций: void ProstIterMetode()
Метод простых итераций для решения СЛАУ
Доброго времени суток. Если у кого нибудь есть готовые программы для данного метода, скиньте.
Метод простых итераций для решения СЛАУ
Всем добрый вечер! Столкнулся с заданием на тему решения СЛАУ методом простых итераций и Зейделя. .
Метод простых итераций для решения СЛАУ
Написала вот такую программу. И тут такое выходит: корни считает верно, а вот колическтво итераций.
Метод простых итераций на Python
Метод простых итераций (или метод последовательных приближений) – это численный метод для решения нелинейных уравнений. Он основан на преобразовании уравнения к эквивалентному виду, который имеет фиксированную точку, т.е. решение уравнения является неподвижной точкой этого преобразования.
Алгоритм метода простых итераций
Пусть дано нелинейное уравнение вида f(x) = 0, где f(x) – некоторая функция. Метод простых итераций заключается в следующих шагах:
- Преобразовать уравнение f(x) = 0 к виду x = g(x), где g(x) – некоторая функция.
- Выбрать начальное приближение x0.
- Построить последовательность приближений x1, x2, x3, …, используя формулу x_ = g(x_n).
- Повторять шаг 3 до тех пор, пока разность между двумя последовательными приближениями не станет меньше заданной точности.
- Приближенное решение уравнения f(x) = 0 равно пределу последовательности x_n.
Решение уравнения методом простой итераций по шагам
x0 = 1 max_iter = 100 accuracy = 1e-6
for i in range(max_iter): x1 = g(x0) if abs(x1 - x0) < accuracy: # Проверяем, достигнута ли требуемая точность break x0 = x1
Метод простых итераций на Python, готовый код
# Импортируем математическую библиотеку import math # Задаем уравнение, которое мы будем решать def f(x): return math.sin(x) # Задаем функцию, которую мы будем использовать для простых итераций def g(x): return math.cos(x) # Задаем начальное приближение и максимальное число итераций x0 = 1 max_iter = 100 accuracy = 1e-6 # Итерационный процесс for i in range(max_iter): x1 = g(x0) if abs(x1 - x0) < accuracy: # Проверяем, достигнута ли требуемая точность break x0 = x1 # Выводим результат print("Корень уравнения: ", x0)
Результат выполнения в консоли:
Как мы видим, программа получилась довольно простой и решение нелинейных уравнений с помощью метода простых итераций не так сложно.