Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
BCAA
0 / 0 / 0
Регистрация: 08.10.2013
Сообщений: 3
#1

Метод итерации для решения СНАУ - C++

08.10.2013, 10:36. Просмотров 573. Ответов 0
Метки нет (Все метки)

Написал программу для решения СНАУ методом итерации, но столкнулся с проблемой. После присвоения элементам матриц matn, matHn, matKn определенных значений, при выводе этих матриц, да и при работе с ними, элементы этих матриц имеют другие значения, которые принадлежат другим элементам. Никак не могу разобраться, где я напортачил, взгляните:

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
#include<iostream>
#include<math.h>
using namespace std;
int main() {
   double x, y, f, g, fotx, gotx, foty, goty, matn[1][1],  matHn[1][1], matKn[1][1];
   double detn, detHn, detKn, Hn, Kn, subtraction, buf, accuracy=0.001;
   int schet=0; 
   cout << "Vvedite Xo" << endl;
   cin >> x;
   cout << "Vvedite Yo" << endl;
   cin >> y;
   cout << endl;
   for (int i=0; i<1000; i=i+1) {
   f=0.9*x*x+2*y*y-1;
   g=tan(x*y+0.1)-x*x;
   fotx=1.8*x;
   gotx=y/pow(cos(x*y+0.1), 2)-2*x;
   foty=4*y;
   goty=x/pow(cos(x*y+0.1), 2);
   cout << "f=" << f << endl << "g=" << g << endl << "fotx=" << fotx << endl;
   cout << "gotx=" << gotx << endl << "foty=" << foty << endl << "goty=" << goty << endl; 
   matn[0][0]=fotx;
   matn[0][1]=foty;
   matn[1][0]=gotx;
   matn[1][1]=goty;
   matHn[0][0]=foty;
   matHn[0][1]=f;
   matHn[1][0]=goty;
   matHn[1][1]=g;
   matKn[0][0]=f;  
   matKn[0][1]=fotx;
   matKn[1][0]=g;
   matKn[1][1]=gotx;
   cout << "Matica matn" << endl;
   for (int l=0; l<2; l=l+1) {
       for (int q=0; q<2; q=q+1) {
            cout << matn[l][q] << "  ";
           
           }
           cout << endl;
           } 
   cout  << endl << "Matica matHn" << endl;
   for (int l=0; l<2; l=l+1) {
       for (int q=0; q<2; q=q+1) {
           cout << matHn[l][q] << "  ";
           }
           cout << endl;
           }        
   detn=matn[0][0]*matn[1][1]-matn[0][1]*matn[1][0];          
   detHn=matHn[0][0]*matHn[1][1]-matHn[0][1]*matHn[1][0];
   detKn=matKn[0][0]*matKn[1][1]-matKn[0][1]*matKn[1][0];
   cout << "detn=" << detn << endl;
   cout << "detHn=" << detHn << endl;
   cout << "detKn=" << detKn << endl;
   Hn=detHn/detn;
   cout << "Hn=" << Hn << endl;
   Kn=detKn/detn;
   cout << "Kn" << Kn << endl;
   x=buf;
   x=x+Hn;
   y=y+Kn;
   subtraction=fabs(x-buf);
   schet=schet+1;
   if (subtraction<accuracy) break;
                               }
   
   cout << endl << "X=" << x << endl;
   cout << "Y=" << y << endl;
   cout << schet;
   system("pause");
   
    }
Добавлено через 10 минут
Прошу прощения, но я ошибся - это метод Ньютона.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.10.2013, 10:36     Метод итерации для решения СНАУ
Посмотрите здесь:

Метод Ньютона в решении СНАУ - C++
РЕбят, помогите с прогой. Нужна прога которая решает СНАУ методом Ньютона. Без нее не защищусь. Заранее спасибо.

Метод Зейделя для решения слау - C++
Пытаюсь реализовать метод Зейделя, подсмотрев реализацию в Википедии, написала функцию Itera(). Она не рабочая, не считает ничего....

Метод Холецкого для решения Слау - C++
Ты не мог бы выложить программу?

Метод скорейшего спуска для решения СЛАУ - C++
Доброго времени суток всем! Столкнулся с проблемой. Нужно написать программу решения СЛАУ методом скорейшего спуска. В Паскале не силен....

Метод простых итераций для решения СЛАУ - C++
Доброго времени суток. Если у кого нибудь есть готовые программы для данного метода, скиньте пожалуйста. Особенно написанные на Borland C++.

Метод прямоугольников для решения определенных интегралов - C++
Есть рабочий код метода трапеции для решения определенных интегралов. Формулу нужно заменить для метода прямоугольников. Вот код: ...

Метод простых интераций для решения СЛАУ - C++
Нашел код, при компилировании выдает много ошибок. Может подскажите что нибудь? //Метод простой итерации решения СЛАУ #include...

Метод простых итераций для решения СЛАУ - C++
Здравствуйте. Попытался сделать программу для решения СЛАУ методом простых итераций. Не работает. Вернее работает неправильно. Помогите...

Метод Гаусса для решения линейных уравнений - C++
Мож у когото завалялся, буду благодарен.

Метод хорд для решения системы нелинейных уравнений - C++
Здравствуйте, задал вопрос по чисмету вот тут http://www.cyberforum.ru/numerical-methods/thread1529078.html#post8064137 Не знаю,...

Метод Зейделя для решения СЛАУ [Доработка кода] - C++
Доброе утро народ. Мне нужна программа которая реализует Метод Зейделя для решения СЛАУ. Покопавшись в интернете нашел неплохой вариант. Но...

Метод Ньютона для решения системы нелинейных уравнений - C++
Здравствуйте! Нужно решить методом Ньютона систему уравнений с точностью 0.0001: sin(x+y) - 1.2x = 0 x*x + y*y =1 Вот моя программа,...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru