Регистрация не е нужна, освен при създаване на тема в "Задача на седмицата".

Числени Методи, нелинейна система уравнения

Числени Методи, нелинейна система уравнения

Мнениеот Гост » 03 Юни 2021, 09:43

Зададена ми е следната задача, дали някой би могъл да ми помогне :)
Прикачени файлове
Screenshot (89).png
Screenshot (89).png (50.92 KiB) Прегледано 969 пъти
Гост
 

Re: Числени Методи, нелинейна система уравнения

Мнениеот peyo » 03 Юни 2021, 15:13

Гост написа:Зададена ми е следната задача, дали някой би могъл да ми помогне :)


Много интересно!

Намерих тук http://www.ohiouniversityfaculty.com/youngt/IntNumMeth/lecture13.pdf какво е това Nonlinear Systems - Newton’s Method и го имплементирах на Python според примера там по следния начин:

Код: Избери целия код
import numpy as np
from sympy import *

var("x,y")

F = [ -4*x**2 -y**2 -x -6*x**2*y - 2*y**3 -3, -2*x**2 -y**2 +x -3*y ]

X = np.array([0.5,0.5])

Df = [[diff(F[0],x), diff(F[0],y)], [diff(F[1],x), diff(F[1],y)]]

for i in range(10):
   Fx = np.array( [ F[0].subs(x,X[0]).subs(y,X[1]),
         F[1].subs(x,X[0]).subs(y,X[1])],dtype=np.float64)
   Dfx= np.array([ [Df[0][0].subs(x,X[0]).subs(y,X[1]), Df[0][1].subs(x,X[0]).subs(y,X[1])],
         [Df[1][0].subs(x,X[0]).subs(y,X[1]), Df[1][1].subs(x,X[0]).subs(y,X[1])]]
         ,dtype=np.float64)
   X = X - np.linalg.solve(Dfx, Fx)
   print(X)


И резултата само при 10 итерации е доста добър:

[-0.07142857 0.20535714]
[-5.64044706 -2.11088562]
[-2.78272879 -2.06180801]
[-1.45627641 -1.84426499]
[-0.97559641 -1.42949008]
[-0.83718906 -1.11477241]
[-0.78728819 -1.01139675]
[-0.78086069 -1.00013818]
[-0.78077642 -1.00000002]
[-0.78077641 -1. ]
peyo
Математик
 
Мнения: 1767
Регистриран на: 16 Мар 2019, 09:35
Местоположение: София
Рейтинг: 663


Назад към Числени методи



Кой е на линия

Регистрирани потребители: 0 регистрирани

Форум за математика(архив)