|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
02.05.2012, 15:21 | #1 |
Регистрация: 07.03.2010
Сообщений: 3
|
Употребление цикла в Методе минимальных невязок
Добрый день! Помогите до конца решить задачу. Это программа метода минимальных невязок.Здесь программа выполняется для начального состояния Х0 и конечного Хк+1.Надо чтоб он выполнял в следующем проходе уже с начальных состоянием Хк+1 и конечным Хк+2 и т.д.То есть надо применить цикл.Спасибо большое#include<iostream.h>
#include<stdio.h> #include<math.h> #define n 3 void main() { float a[n][n],f[n],x0[n],x[n],e=0.001,r[n],tau,max,s,s1,xnew[n],t[n]; int i,j,k=0; for(i=0;i<n;i++) for(j=0;j<n;j++) cin>>a[i][j]; for(i=0;i<n;i++) cin>>f[i]; for(i=0;i<n;i++) cin>>x0[i]; /*for(i=0;i<n;i++) for(j=0;j<n;j++) cout<<a[i][j];*/ do{ for(i=0;i<n;i++) {r[i]=0; for(j=0;j<n;j++) r[i]+=a[i][j]*x0[j]; r[i]=r[i]-f[i];} for(i=0;i<n;i++) {t[i]=0; for(j=0;j<n;j++) t[i]+=a[i][j]*r[j];} s=0; for(i=0;i<n;i++) s+=t[i]*r[i]; s1=0; for(i=0;i<n;i++) s1+=t[i]*t[i]; tau=s/s1; for(i=0;i<n;i++) xnew[i]=x0[i]-tau*r[i]; for(i=0;i<n;i++) cout<<xnew[i]<<endl; for(i=1;i<n;i++) max=fabs(x0[0]-xnew[0]); for(i=0;i<n;i++) if(max<fabs(x0[i]-xnew[i])) max=fabs(x0[i]-xnew[i]); k=k+1; //cout<<k; } while(k<5); //for(i=0;i<n;i++) //cout<<xnew[i]; //cout<<k; } |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Поиск минимальных значений | Black_Shem | Общие вопросы Delphi | 3 | 29.12.2011 17:39 |
алгоритмы нахождения эйлерова цикла и гамильтонова цикла в графе. | Necare | Помощь студентам | 0 | 15.11.2011 18:26 |
Употребление div и mod | Roman1992 | Помощь студентам | 2 | 21.06.2011 05:57 |
Поиск ВСЕХ минимальных остовных деревьев | Flicker | Помощь студентам | 0 | 17.10.2010 01:26 |