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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 36, средняя оценка - 4.92
Денис Ефимов
0 / 0 / 0
Регистрация: 21.04.2012
Сообщений: 3
#1

Система для решений уравнений методом простых итераций. - C++

21.04.2012, 22:43. Просмотров 4728. Ответов 5
Метки нет (Все метки)

День добрый.

Образовалась проблема. Я пропустил почти весь 2 семестр по болезни и теперь висит задача в виде курсового проекта на тему в топике.

Лично я как не старался, ничего не мог сделать.

Наброски:

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
#include <iostream.h> //Г§Г*ãîëîâî÷Г*ГЁГ© ГґГ*éë ââîäó-âèâîäó.
#include <math.h> //Г§Г*ãîëîâî÷Г*ГЁГ© ГґГ*éë äëÿ Г¬Г*ГІГҐГ¬Г*ГІГЁГ·Г*ГЁГµ ðîçðГ*õóГ*ГЄВіГў.
 
double f1(double c)
{
  double z=7/(2*c+6);
  return(pow(10, z)); 
}
 
int main() //ãîëîâГ*Г* ГґГіГ*êö³ÿ ïðîãðГ*ìè.
{
     int n=0,j;
     double a,b,E,x,z,g; //ВіГ*³ö³Г*ë³çГ*ö³ÿ çì³Г*Г*ГЁГµ.
     while(j!=2)
{
 
     cout<<"                    !<Course work. Teacher: Pijov Y.V.>! "<<endl<<endl;
     cout<<"                  !<Author: Yefimov D.R. @ OCCTOEU 2012>! "<<endl<<endl;
     cout<<"            <NOTE: program for solving equations by simple iterations.> "<<endl<<endl;
     cout<<"<Step #1>: ENTER the value -A- (for example: 5): ";
     cin>>a;
     cout<<"<Step #2>: ENTER the value -B- (for example: 25): ";
     cin>>b;
     cout<<"<Step #3>: ENTER the value -EPSILON- (for example: 0.01): ";
     cin>>E;
 
     x=(a+b)/2;
     do //öèêë Г§ ïîñòóìîâîþ.
   {
      z=x;
      x=f1(x);
      n++;
   }
     while ((fabs(x-z))>=E); //ГЄВіГ*åöü öèêëó Г§ ïîñòóìîâîþ.
 
     cout<<endl;
     cout<<"                    !CALCULATION PROCESS IS -COMPLETED-! "<<endl<<endl;
     cout<<"      <Results>: "<<endl;
     cout<<"Value -X- equals: "<<x<<endl;
     cout<<"Number of -STEPS- equals: "<<n<<endl<<endl;
     cout<<"Continue or not? (1 - YES; 2 - NO): "; //ìîæëèâ³ñòü ïîâòîðГ*îãî ðîçðГ*õóГ*ГЄГі.
     cin>>j;
  }
}
Но если мне преподаватель меняет формулу на x*x-5 - выходит бред, а не правильный результат.

Пожалуйста, помогите. До 26 апреля надо сдать.

Добавлено через 6 минут
Тема: Система для решения уравнений методом простых итераций.

Примечание 1: метод должен реализовываться на языке C/C++.
Примечание 2: реализация в консольном режиме.
Примечание 3: Система должна иметь возможность решать рандомное уравнение заданного типа.

Добавлено через 1 час 11 минут
UP...
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.04.2012, 22:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Система для решений уравнений методом простых итераций. (C++):

Решение системы линейных уравнений методом простых итераций - C++
Здравствуйте! Нужна вот такая помощь, незнаю как написать такую программу.

Метод простых итераций для решения системы линейных уравнений - C++
помогите найти ошибку в алгоритме при вводе уравнения x+y = 2 2x-y = 7 x = 2-y; y = (7-2*x)/-1 double ...

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

Уравнение методом простых итераций - C++
нужно решить уравнение x^3 - sinX = 0, методом простых итераций. Я вроде все правильно сделал, но программа почему то зацикливается:(, в...

Решение системы нелинейных уравнений методами Ньютона и простых итераций - C++
Написать программу решения системы нелинейных уравнений {y^3-x^2=1; ...

Решить уравнение методом простых итераций - C++
Помогите решить уравнение х^4+2*x^3-x-1 на интервале #include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; //Функция ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Xavier
in god we trust
74 / 74 / 8
Регистрация: 20.04.2012
Сообщений: 201
21.04.2012, 23:18 #2
Можно уточнить а система линейных или не линейных уравнений
0
Денис Ефимов
0 / 0 / 0
Регистрация: 21.04.2012
Сообщений: 3
21.04.2012, 23:25  [ТС] #3
В том то и дело, что не указано.

Тема (дословно): "Система для решения уравнения методом простых операций."

Добавлено через 17 секунд
Очень прошу помощи ибо если до 26 не сдам, меня отчислят
0
Xavier
in god we trust
74 / 74 / 8
Регистрация: 20.04.2012
Сообщений: 201
21.04.2012, 23:41 #4
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
#include<iostream>
#include<math.h>
#include<conio.h>
using namespace std;
const int n=3; //число уравнений
int main()
{
const double eps=0.00001;
 double a[n][n]={
 {4,1,-1},
 {2,3,0},
 {1,-1,5}
 },b[n]={7,7,11},x[n]={7,7,11},c[n]={0,0,0},r[n]={0,0,0},p;
 int i,j,k,coun=0;
 
 double sum,sum1,sum2,n;
 
 for(i=0;i<=n-1;i++){ cout<<endl;
  for(j=0;j<=n-1;j++){
  cout<<a[i][j]<<" ";
  }}
  for(i=0;i<=n-1;i++)c[i]=x[i];
 
do {
for(i=0;i<=n-1;i++){  sum=0;
  for(j=0;j<=n-1;j++){
if(j!=i) sum=sum+(a[i][j]/a[i][i])*x[j];
} x[i]=sum*(-1)+b[i]/a[i][i]; }
 
sum1=0; sum2 =0;
 
for(k=0;k<=n-1;k++) sum1=(x[k]-c[k])*(x[k]-c[k])+sum1;
 
for(k=0;k<=n-1;k++) sum2=x[k]*x[k]+sum2;
 
n=(sqrt(sum1)/sqrt(sum2))*100;
 coun++;
for (k=0;k<=n-1;k++) c[k]=x[k];   }
while(n>eps);
cout<<endl;
cout<<endl;
 cout<<n<<endl;
for(i=0;i<=n-1;i++) cout<<x[i]<<" ";
cout<<endl;
//  невязка
cout<<"nev9zka:\n";
for(i=0;i<=n-1;i++){p=0;
  for(j=0;j<=n-1;j++){
  p=a[i][j]*x[j]+p;
  } r[i]=p; }
 
  for(i=0;i<=n-1;i++){
r[i]=fabs(b[i]-r[i])/fabs(b[i])*100;}
 
for(i=0;i<=n-1;i++) cout<<r[i]<<" ";
cout<<endl;
 cout<<coun;
 cout<<endl;
 
return 0;
 
}
вот код ,писал месяц назад где то, численное решение систем линейных алгебраических уравнений
вначале программы даются две матрицы
матрица a[n][n] -это матрица коэффициентов при неизвестных иксах b[n] -матрица свободных коэффициентов.
Программа написана для системы трех уравнений следовательно для переделки ее для n уравнений достаточно изменять n и по новому заполнять матрицу x[][] и b[] в начале.

З.Ы. точно не помню но вроде это метод простых итераций, просто в одной папке лежат три метода и точно где какой не помню
1
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,925
Записей в блоге: 1
22.04.2012, 02:09 #5
Xavier, И при чём тут вообще итерации, и при чём тут СЛАУ?
Из заголовка я понял, что ему нужно решить ОДНО произвольное нелинейное уравнение итеративным методом. Автор, я прав?

Не по теме:

Тебе не лень было всё это... писать немаленький код и не по теме?

0
bootleanC
6 / 6 / 1
Регистрация: 28.04.2009
Сообщений: 106
11.11.2012, 22:14 #6
Цитата Сообщение от Xavier Посмотреть сообщение
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
#include<iostream>
#include<math.h>
#include<conio.h>
using namespace std;
const int n=3; //число уравнений
int main()
{
const double eps=0.00001;
 double a[n][n]={
 {4,1,-1},
 {2,3,0},
 {1,-1,5}
 },b[n]={7,7,11},x[n]={7,7,11},c[n]={0,0,0},r[n]={0,0,0},p;
 int i,j,k,coun=0;
 
 double sum,sum1,sum2,n;
 
 for(i=0;i<=n-1;i++){ cout<<endl;
  for(j=0;j<=n-1;j++){
  cout<<a[i][j]<<" ";
  }}
  for(i=0;i<=n-1;i++)c[i]=x[i];
 
do {
for(i=0;i<=n-1;i++){  sum=0;
  for(j=0;j<=n-1;j++){
if(j!=i) sum=sum+(a[i][j]/a[i][i])*x[j];
} x[i]=sum*(-1)+b[i]/a[i][i]; }
 
sum1=0; sum2 =0;
 
for(k=0;k<=n-1;k++) sum1=(x[k]-c[k])*(x[k]-c[k])+sum1;
 
for(k=0;k<=n-1;k++) sum2=x[k]*x[k]+sum2;
 
n=(sqrt(sum1)/sqrt(sum2))*100;
 coun++;
for (k=0;k<=n-1;k++) c[k]=x[k];   }
while(n>eps);
cout<<endl;
cout<<endl;
 cout<<n<<endl;
for(i=0;i<=n-1;i++) cout<<x[i]<<" ";
cout<<endl;
//  невязка
cout<<"nev9zka:\n";
for(i=0;i<=n-1;i++){p=0;
  for(j=0;j<=n-1;j++){
  p=a[i][j]*x[j]+p;
  } r[i]=p; }
 
  for(i=0;i<=n-1;i++){
r[i]=fabs(b[i]-r[i])/fabs(b[i])*100;}
 
for(i=0;i<=n-1;i++) cout<<r[i]<<" ";
cout<<endl;
 cout<<coun;
 cout<<endl;
 
return 0;
 
}
вот код ,писал месяц назад где то, численное решение систем линейных алгебраических уравнений
вначале программы даются две матрицы
матрица a[n][n] -это матрица коэффициентов при неизвестных иксах b[n] -матрица свободных коэффициентов.
Программа написана для системы трех уравнений следовательно для переделки ее для n уравнений достаточно изменять n и по новому заполнять матрицу x[][] и b[] в начале.

З.Ы. точно не помню но вроде это метод простых итераций, просто в одной папке лежат три метода и точно где какой не помню
интересный у вас метод проверки условия точности. нам преподаватель объяснил что это модуль от X[i]-X[i-1] т.е. двух разных итераций и надо сравнивать с числом эпсилон которая должна в качестве точности,и проводить итерации до тех пока модуль этой разности не будет меньше точности...а у вас я не понял что то так смысл
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.11.2012, 22:14
Привет! Вот еще темы с ответами:

Решение методом простых итераций СЛАУ - C++
3 2 1 4 1 1 -1 1 1 -2 1 3 то есть 4, 1, 3 - это b а все остальные числа - это кэфи при иксах. Нужна срочная помощь! Ребята,...

Решение СЛАУ методом простых итераций. - C++
#include &lt;iostream.h&gt; #include &lt;iomanip.h&gt; #include &lt;math.h&gt; #include &lt;stdlib.h&gt; #include &lt;conio.h&gt; #define Eps pow(10,-8) void...

Решение СЛАУ методом простых итераций - C++
Нужно решить слау (4 на 4), значения матрица и вектор вводится с клавиатуры, также нужно ввести епсилон (точность, до которой необходимо...

Решение нелинейного уравнения методом простых итераций - C++
как будет выглядеть код программы на С++ &quot;решение нелинейного уравнения методом простых итерации?&quot;


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
11.11.2012, 22:14
Ответ Создать тему
Опции темы

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