0 / 0 / 1
Регистрация: 26.03.2013
Сообщений: 7
1

Метод Ньютона для решения системы нелинейных уравнений

26.03.2013, 18:46. Показов 47323. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Нужно решить методом Ньютона систему уравнений с точностью 0.0001:
sin(x+y) - 1.2x = 0
x*x + y*y =1
Вот моя программа, она не запускается, помогите пожалуйста найти ошибку:
C++
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#include <iostream>
#include <math>
using namespace std;
 
#define eps 0.0001
 
double function1(double x, double y)
{
    return sin(x + y) - 1.2*x;
}
 
double function2(double x, double y)
{
    return x*x + y*y - 1;
}
 
double func11(double x, double y)
{
    return cos(x + y) - 1.2;
}
 
double func12(double x, double y)
{
    return cos(x + y);
}
 
double func21(double x, double y)
{
    return 2*x;
}
 
double func22(double x, double y)
{
    return 2*y;
}
 
void ober_matr(double a[2][2])
{
    double det, aa;
    det = a[0][0]*a[1][1] - a[0][1]*a[1][0];
    aa = a[0][0];
    a[0][0] = a[1][1]/det;
    a[1][1] = aa/det;
    aa = a[0][1];
    a[0][1] = -a[1][0]/det;
    a[1][0] = -aa/det;
}
 
void nuton(double x, double y)
{
    int i = 1;
    double a[2][2], dx, dy, b[2], norm;
    do
    {
        a[0][0] = func11(x, y);
        a[0][1] = func12(x, y);
        a[1][0] = func21(x, y);
        a[1][1] = func22(x, y);
        ober_matr(a);
        dx = -a[0][0]*function1(x, y) + -a[0][1]*function2(x, y);
        dy = -a[1][0]*function1(x, y) + -a[1][1]*function2(x, y);
        x = x + dx;
        y = y + dy;
        b[0] = function1(x, y);
        b[1] = function2(x, y);
        norm = sqrt(b[0]*b[0]+b[1]*b[1]);
        i++;
    }
    while (norm >= eps);
cout << x << endl << y << endl;
}
void main()
{
    double x, y;
    cout << "x = ";
    cin >> x ;
    cout << "y = ";
    cin >> y;
    nuton(x, y);
    cout << endl;
    system("PAUSE");
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.03.2013, 18:46
Ответы с готовыми решениями:

Метод Ньютона для решения системы нелинейных уравнений
Программа работает неверно. Пожалуйста, помогите найти ошибки. Спасибо. #include &lt;iostream&gt;...

Метод Ньютона для решения нелинейных уравнений: узнать количество итераций
Задание: реализовать метод Ньютона для решения нелинейных уравнений, в итоге получить: значение...

Исправить код метод Ньютона для решения систем нелинейных уравнений под нужное условие
Данный код для решения системы ax+tg(xy)=0; (y^2-b^2)+lnx=0 Перепишите его,пожалуйста для...

Метод хорд для решения системы нелинейных уравнений
Здравствуйте, задал вопрос по чисмету вот тут...

1
safervas
30.08.2013, 11:13 2
Добрый день ! Для вас ответ будет скорее всего запоздалым.
Вы использовали ошибку уже несколько лет гуляющую по сети. При построении обратной матрицы элементы B и C не нужно менять местами, местами меняются только A и D. В вашем коде это должно значить: a[0][1] = -a[0][1]/det;
a[1][0] = -a[1][0]/det;
И не забудьте, перед обращением матрицы проверить det != 0.0 и первый элемент a[0][0] != 0.0
30.08.2013, 11:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.08.2013, 11:13
Помогаю со студенческими работами здесь

Исследовать итерационный метод- метод касательных для решения нелинейных уравнений
прочитал много всего , но сам пример реализовать никак не могу , кто может помогите F(x) =...

Метод деления отрезка пополам для решения нелинейных уравнений (метод дихотомии)
Здравствуйте. Помогите пожалуйста дописать программу. Вот что вымучал, но на сдаче завалили, типо...

Написать программу для решения системы нелинейных уравнений
Не могу сделать прогу на С++. Кто сделает - огромное спасибо. sin(9x)+cos(7y)-5z*z=10,...

Метод Ньютона для системы трех уравнений
пожалуйста подскажите что здесь ни так? #include &lt;cmath&gt; #include &lt;iomanip&gt; #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru