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

Метод итераций и метод Зейделя - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ автозагрузка файла http://www.cyberforum.ru/cpp-beginners/thread40593.html
можно ли в коде файла написать такой код чтобы этот файл сам начал закачаться из интернета?скажем когда человек зашел в какую то страницу?
C++ что сделать чтобы прога сама по себе открылась? что можно написать или сделать что прога сама по себе попала после загрузки в рут?или бут не помню...чтоб сама по себе открывалась и начала действовать http://www.cyberforum.ru/cpp-beginners/thread40592.html
C++ двусвязный список c++
Помогите с програмкой пожалуйста.Последовательность символов, ограниченную точкой, занести в два двусвязных списока. Прога почемуто неправильно печатает гласные помогитеА то уже часа 2 сижу и не понимаю в чом проблема: #include <stdio.h> #include <conio.h> //=================================================================== struct Telem { char inf; Telem *pred; Telem *next;
кто знает как в с++ найти размер файла C++
Мне нужно прочитать полностю файл и загрузить в память. fstream fs; fs.open("file.txt"); if(fs){ // int count = 1000; char* txt = new char;
C++ Конфликт компиляторов http://www.cyberforum.ru/cpp-beginners/thread40561.html
Здравствуйте, я относительно недавно начал программировать, экспериментирую с созданием игр на движке HGE. У меня установлен Microsoft Visual C++ 6.0 на котором он отлично компилируется. И вот я хочу поэкспериментировать с другим движком (ogre) на русскоязычном сайте этого движка сказано что для того чтобы начать с ним работать нужны SDK (как я понял это сам движок), VisualC++ 2005 Express...
C++ Челночная сортировка / Список Я бы хотел попросить о помощи более опытных людей в програмирование. сам пробовал- не получилось. из-за не достатка опыта. а надо и срочно. поэтому хочу обратиться к вам. заранее спасибо всем откликнувшимся. Вот мои 2 проблеммы. 1 проблема: Создать список автобусных остановок. у каждой остановки имеются следующие свойства: название, время движения от прошлой остановки. Реализовать... подробнее

Показать сообщение отдельно
prikolist
3 / 3 / 0
Регистрация: 19.07.2008
Сообщений: 142
18.06.2009, 14:51  [ТС]     Метод итераций и метод Зейделя
Подскажите пожалуйста,как переделать вот этот код, это Метод Зейделя и итераций. Переделать в консоль на С++. Буду очень благодарен.
Delphi
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
83
unit Iter;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
type
  TForm1 = class(TForm)
    rez: TMemo;
    B1: TButton;
    B2: TButton;
    procedure B1Click(Sender: TObject);
    procedure B2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.B1Click(Sender: TObject);
var x1,x2,x3,x4,f1,f2,f3,f4,t1,t2,t3,t4,e:real;
str1,str2,str3,str4,str5:string;
k:integer;
label S,F;
begin
k:=0;x1:=1.21;x2:=-0.72;x3:=-0.58;x4:=1.56;
rez.Clear;e:=0.001;
repeat
f1:=0.23*x1-0.14*x2+0.06*x3-0.12*x4+1.21;  
f2:=0.12*x1+0.32*x3-0.18*x4-0.72;
f3:=0.08*x1-0.12*x2+0.23*x3+0.32*x4-0.58;
f4:=0.25*x1+0.22*x2+0.14*x3+1.56;
    t1:=f1-x1;
    t2:=f2-x2;
    t3:=f3-x3;
    t4:=f4-x4; 
    x1:=f1;x2:=f2;x3:=f3;x4:=f4;
          inc(k);
until (abs(t1)<=e) and (abs(t2)<=e) and (abs(t3)<=e) and (abs(t4)<=e);
str(f1:6:3,str1);
str(f2:6:3,str2);
str(f3:6:3,str3);
str(f4:6:3,str4);
str(k,str5);
rez.Lines.Add(' ------- Результат вычислений ------- ');
rez.Lines.Add(' X1= '+str1+'  X2= '+str2+'  X3= '+str3+'  X4= '+str4);
rez.Lines.Add(' Количество итераций = '+str5);
end;
procedure TForm1.B2Click(Sender: TObject); // метод зейделя
var x1,x2,x3,x4,f1,f2,f3,f4,t1,t2,t3,t4,e:real;
str1,str2,str3,str4,str5:string;
k:integer;
begin
k:=0;x1:=1.21;x2:=-0.72;x3:=-0.58;x4:=1.56;
rez.Clear;e:=0.001;
repeat
f1:=0.23*x1-0.14*x2+0.06*x3-0.12*x4+1.21;
x1:=f1;
f2:=0.12*x1+0.32*x3-0.18*x4-0.72;
x2:=f2;
f3:=0.08*x1-0.12*x2+0.23*x3+0.32*x4-0.58;
x3:=f3;
f4:=0.25*x1+0.22*x2+0.14*x3+1.56;
x4:=f4;
    t1:=f1-x1;
    t2:=f2-x2;
    t3:=f3-x3;
    t4:=f4-x4;
          x1:=t1;x2:=t2;x3:=t3;x4:=t4;
                inc(k);
until (abs(t1)<=e) and (abs(t2)<=e) and (abs(t3)<=e) and (abs(t4)<=e);
str(f1:6:3,str1);
str(f2:6:3,str2);
str(f3:6:3,str3);
str(f4:6:3,str4);
str(k,str5);
rez.Lines.Add(' ------- Результат вычислений ------- ');
rez.Lines.Add(' X1= '+str1+'  X2= '+str2+'  X3= '+str3+'  X4= '+str4);
rez.Lines.Add(' Количество итераций = '+str5);
end;
end.
Добавлено через 8 часов 41 минуту 18 секунд
Вот метод итераций, как его подстроить, чтоб решило моё.

Метод итерации
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
#include "stdafx.h"
#define eps 0.0001 //требуемая точность вычислений
void iteration(double a[N][N],double b[N],double x[N])
{
 int i,j;
 double norma; //чебышевская норма вектора
 double xn[N]={0};//вектор для текущей итерации, начальное значение
       //должно быть равно начальному приближению
 
 
 
 do{
  norma=0.0;
  for(i=0;i < N;i++)
  {
   xn[i]=-b[i];
 
   for(j=0;j < N;j++)
   {
    if(i!=j)
     xn[i]+=a[i][j]*x[j];
   }
 
   xn[i]/=-a[i][i];
  }
 
  for(i=0;i < N;i++)
  {
   if(fabs(x[i]-xn[i]) > norma)
    norma=fabs(x[i]-xn[i]); //Вычисление нормы вектора
   x[i]=xn[i];
  }
  
 }
 while(norma > eps); //проверка на необходимую точность вычислений
 
 
 return;
}
Метод Зейделя
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 for(i=0;i < N;i++)
  {
   x[i]=-b[i];
 
   for(j=0;j < N;j++)
   {
    if(i!=j)
     x[i]+=a[i][j]*x[j];
   }
 
   x[i]/=-a[i][i];
  }
 
  for(i=0;i < N;i++)
  {
   if(fabs(x[i]-xn[i]) > norma)
    norma=fabs(x[i]-xn[i]);
   xn[i]=x[i];
  }
Подскажите пожалуйста, завтра или в пятницу хочу сдать этот код, очень нужно. Как подстроить его под мои уравнения?

Добавлено через 15 часов 17 минут 29 секунд
Вот попробывал методои итераций, подскажите пожалуйста, не компилится, уже не знаю что не так.
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
#include"stdafx.h"
#include<iostream>
#include<cmath>
#define eps 0.0001 //требуемая точность вычислений
#define N 4
usingnamespace std;
 
//----------------------------------------------------------------------------------
void iteration(double a[N][N], double b[N],double x[N])
{
int i,j;
double norma; //чебышевская норма вектора
double xn[N]={0};//вектор для текущей итерации, начальное значение
//должно быть равно начальному приближению
do{
norma=0.0;
for(i=0;i < N;i++)
{
xn[i]=-b[i];
for(j=0;j < N;j++)
{
if(i!=j)
xn[i]+=a[i][j]*x[j];
}
xn[i]/=-a[i][i];
}
for(i=0;i < N;i++)
{
if(fabs(x[i]-xn[i]) > norma)
norma=fabs(x[i]-xn[i]); //Вычисление нормы вектора
x[i]=xn[i];
}
 
}
while(norma > eps); //проверка на необходимую точность вычислений
 
return ;
}
 
int main()
{
int a,b,x;
double a[N][N],b[N],x[N];
int i;
a[0][0] = -1.01; a[0][1] = 0.02; a[0][2] = -0.62; a[0][3] = 0.08; b[0] = 1.3;
a[1][0] = -1.03; a[1][1] = 0.28; a[1][2] = 0.33; a[1][3] = -0.07; b[1] = -1.1;
a[2][0] = -1.09; a[2][1] = 0.13; a[2][2] = 0.42; a[2][3] = 0.28; b[2] = 1.7;
a[3][0] = -1.19; a[3][1] = -0.23; a[3][2] = 0.08; a[3][3] = 0.37; b[3] = 1.5;
 
iteration(a,b,x);
for(i=0; i<N; i++)
cout<<"Rezyltat metoda iterasiy = "<<x[i]<<endl;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru