Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

(Метод Монте - Карло) решение систем алгебраических линейных уравнений

2.2K
29 мая 2007 года
MagicPRO
100 / / 02.10.2006
У меня РГР по методу Монте - Карло решение системы алгебраических линейных уравнений, может у кого-то есть там коды на C++ или Pascal или пример в mathcadе! Дайте ссылку. Заранее благодарен!

[COLOR="Red"]просьбы выслать на мыло не одобряются администрацией. e-mail удален. Также читайте правила форума: название темы должно отражать суть вопроса.[/COLOR] OlgaKr.
257
29 мая 2007 года
kosfiz
1.6K / / 18.09.2005
посмотри(найди) книгу "Численные методы" автор Заварыкин: там есть код(правда на бейсике) и хорошо описан сам метод, так что можно будет все сделать самому.
2.2K
01 июня 2007 года
MagicPRO
100 / / 02.10.2006
Ну вот переделал код, только матерится на что-то не пойму на что!!! Кто то может знает в чем проблема!
Код:
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
#include<math.h>
int sgn(float);
int main()
{ clrscr();
  cout<<"\t\t\t Monte-Carlo line equatations =)\n\n";
  cout<<" Enter N: "; int N; cin>>N;
  float **A=new float*[N]; float **B=new float*[N];
  float *W=new float[N];
//vvod
  cout<<" Enter coefficients of system:\n";
  for(int i=0;i<N;i++)
    { A=new float[N+1]; B=new float[N];
      cin>>A; B=fabs(A);
      for(int j=1;j<N;j++)

      { cin>>A[j]; B[j]=B[j-i]+fabs(A[j]); }
      cin>>A[N]; }
  for(i=0;i<N;i++) W=A[N]/(1-B[N-1]);
////
  cout<<" Enter B: "; int b; cin>>b;
  cout<<" Enter M: "; int m; cin>>m;
  int t=1, y=0, s;
  float c; int V;
M: s=b; y=1;
if (t>m)  goto P;
X: c=random(101)*.01;
   for(int j=N-1;j>=0;j--)
     if(c>B[j])
       { if(j==N-1) { t++; y+=V*W; goto M; }
       else { V=V*sgn(A[j+1]); s=j+1; goto X;}
       }
  V=V*sgn(A[0]); s=0; goto X;
  float x=y/m;
P:  cout<<"Koren = "<<x;
  getch();
  for(i=0;i<=N;i++) delete[] A;
  for(i=0;i<N;i++) delete[] B;
  delete[] A; delete[] W;
  return 1;
}

int sgn(float t)
{ if(t==0) return 0;
  if(t>0) return 1;
  return -1; }
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог