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

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

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

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

08.10.2013, 10:36. Просмотров 586. Ответов 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 минут
Прошу прощения, но я ошибся - это метод Ньютона.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.10.2013, 10:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Метод итерации для решения СНАУ (C++):

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

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

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

метод деления отрезка пополам и метод итерации - C++
Методом деления отрезка пополам и методом итерации найти приближенное значение корня 2*x^3+3*x-1=0 абсолютная погрешность 10^-5; Люди...

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

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

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.10.2013, 10:36
Привет! Вот еще темы с ответами:

Метод Гаусса для решения СЛАУ - C++
Здравствуйте! У меня есть алгоритм решения СЛАУ методом Гаусса, но почему-то он не работает((( Я проверил промежуточные матрицы, все ОК! И...

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

Метод простых итераций для решения СЛАУ - C++
Здравствуйте. Есть функция, реализующая метод простых итераций: void ProstIterMetode() {int i,j; double *x0,delta,*E; x0=new...

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


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

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

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