Przybliżone rozwiązywanie równań nieliniowych

0

Za zadanie mam napisać program, który rozwiąże mi układ dwóch(lub jednego) równań nieliniowych metodą iteracji. Problem polega na tym, że nawet nie wiem jak się za to zabrać. Szukałem w książkach o metodach numerycznych ale powiem szczerze, że mało mi to dało. Proszę o jakieś wskazówki, ewentualnie jeżeli komuś to nie sprawi większego problemu to o kod za drobną opłatą.

0

Jak przekształcić taki kod

double newton_method(double (*f)(double) , double e, double start , double h)
{
double x0 = start ;
double f_x0 = f(x0);
while (std:: fabs(f_x0) > e)
{
double df = (f(x0 + h) - f_x0) / h;
x0 -= f_x0 / df;
f_x0 = f(x0);
}
return x0;
}

aby rozwiązywał układ dwóch równań nieliniowych? Powyższy działa w przypadku układu jednego równania.

0

przecież dla równań rozwiązaniem nie będzie liczba, a wektor, tak jak i początkiem nie będzie liczba, a wektor, argumentem funkcji nie będzie liczba, a wektor... Pomyśl nad tym.

0
Xavizo napisał(a):

Za zadanie mam napisać program, który rozwiąże mi układ dwóch(lub jednego) równań nieliniowych metodą iteracji. Problem polega na tym, że nawet nie wiem jak się za to zabrać. Szukałem w książkach o metodach numerycznych ale powiem szczerze, że mało mi to dało. Proszę o jakieś wskazówki, ewentualnie jeżeli komuś to nie sprawi większego problemu to o kod za drobną opłatą.

Układy nieliniowe to dość trudna sprawa, nieporównywalnie trudniejsza od prostych metod,
które wyliczają tylko jedno równanie.

Tam chyba nawet w ogóle nie ma prostej metody...
co znaczy że nie można zwyczajnie sobie 'zwektoryzować' metod prostych,
jak np. w przypadku równań różniczkowych.

No, o ile pamiętam wersja wielowymiarowa metody Newtona,
wymaga wyliczania całych wyznaczników w każdym kroku...

co zresztą nietrudno zauważyć:

x = x - f/f';

i tym przypadku f jest wektorem funkcji, zatem f' jest macierzą, niestety,
bowiem to jest różniczkowane po każdej zmiennej, a nie tylko po jednej,
więc otrzymamy tu : n x n sztuk - macierz, a nie n - wektor.

0
Xavizo napisał(a):

Jak przekształcić taki kod
aby rozwiązywał układ dwóch równań nieliniowych? Powyższy działa w przypadku układu jednego równania.

f(x) - g(x) = 0
??

1 użytkowników online, w tym zalogowanych: 0, gości: 1