Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.01.2011, 19:41   #1
Fackey
 
Регистрация: 08.12.2010
Сообщений: 5
По умолчанию Метод Зейделя с++

Здравствуйте ) Я хотел бы обратиться к вам за помощью по поводу " Решения слау методом Зейделя". Мб у вас есть рабочий исходник этой программы , т.к в поиске я ничего не нашел (включая гугл) . Буду очень благодарен за рабочую программу .


Вот есть одна , но она неработает , мб вы что-нибудь сможете с ней сделать? (

#include <math.h>
#include <stdio.h>
#include <iostream.h>

const int nn=100;
typedef double arr[nn][nn];
typedef double vect[nn];

void input(int*, double *);
bool exact(const double *px, const double *pp, const int *n);

arr A;
double e;

int main()
{

int n,i,j;
double sum;
vect x,p,B;

input(&n,B); // input n,A,B.
for (i=0; i<n; i++){ // initial approximatization
x[i]=1;
p[i]=1;
}

do {
for (i=0; i<n; i++){
sum = 0;
for (j=0; j<n; j++)
if (i!=j) sum+=x[j]*A[i][j];
// printf("sum= %.2f",sum);
// cout << "i = " << i;
p[i]=x[i];
x[i]=(B[i] - sum)/A[i][i];
/* for (j=0; j<n; j++)
printf("%.2f ",x[j]);
cout << exact(x,p,&n);*/

}
} while (!exact(x,p, &n)) ;


for (j=0; j<n; j++)
printf("X%d = %.3f\n",j+1,x[j]);

puts("Verification:");
for (i=0; i<n; i++){
sum = 0;
for (j=0; j<n; j++){
sum+=x[j]*A[i][j];
if ((j==0) && (A[i][j]*x[j]<0)) cout <<"-";
printf("%.2f*%.2f",fabs(A[i][j]),fabs(x[j]));
if ((j!=n-1)&&(A[i][j+1]*x[j]>=0)) cout <<" + ";
else if ((j!=n-1)&&(A[i][j+1]*x[j]<0)) cout <<" - ";
else {cout << " = ";
printf("%.3f ;\n", sum);
}
}
}

}

void input(int *m, double *PtrB)
{
int i,j;

cout << "Enter e.\n";
cin >> e;
cout << "\nEnter n.\n";
cin >> *m;
cout << "\nEnter matrix A.\n";
for (i=0; i<*m; i++)
for (j=0; j<*m; j++)
cin >> A[i][j];
cout << "\nEnter matrix B.\n";
for (i=0; i<*m; i++)
cin >> *(PtrB+i);

/*for (i=0; i<*m; i++){
cout << endl;
for (j=0; j<*m; j++)
printf("%.2f ",A[i][j]);}*/

}

bool exact(const double *px, const double *pp, const int *n)
{
int i;
bool f=true;

for (i=0; i<*n; i++)
if ( fabs( *(px+i) - *(pp+i) ) > e){
f=false;
break;
}
return f;
}

Буду очень благодарен за помощь .
Fackey вне форума Ответить с цитированием
Старый 28.01.2011, 21:11   #2
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

Задолбали выкладывать код как попало! Заносите его в специальный тег CODE, чтобы были видны отступы и как следует отформатируйте код
NiCola999 вне форума Ответить с цитированием
Старый 28.01.2011, 21:29   #3
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

Цитата:
Сообщение от Fackey Посмотреть сообщение
в поиске я ничего не нашел (включая гугл) .
http://www.google.com/search?rls=en&...C%2B%2B+source
Лично мне понравилась шестая ссылка.
Vago вне форума Ответить с цитированием
Старый 29.01.2011, 16:26   #4
Fackey
 
Регистрация: 08.12.2010
Сообщений: 5
По умолчанию

Vago спасибо огромное . Ты действительно мне очень помог )
Fackey вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Метод Зейделя (Pascal) Necronicle Помощь студентам 1 06.06.2010 16:50
Метод Зейделя в Delphi Any13 Помощь студентам 0 17.05.2010 16:45
Метод Зейделя True_girl Помощь студентам 1 19.04.2010 16:16
СЛАР метод Зейделя maloy-rom Общие вопросы C/C++ 4 17.02.2010 23:03
Метод итераций и метод Зейделя prikolist Общие вопросы C/C++ 40 18.06.2009 17:40