Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсовая.docx
Скачиваний:
71
Добавлен:
01.04.2015
Размер:
292.61 Кб
Скачать
  1. Численный эксперимент

    1. Расчет на однопроцессорных компьютерах

#include <fstream>

#include <math.h>

#include <iomanip>

#include <iostream>

#include <stdio.h>

#include <conio.h>

#include <time.h>

using namespace std;

double x[100], x0[1001], b[1001], a[1001][1001], s, d, eps=1e-8, m, k, h, pi=3.1415926;

int n, i, j ;

void work(int n)

{

clock_t t0, t1;

//Засекаем время.

t0 = clock();

h=1.0/n;

memset(a,0,sizeof(a));

for (i=1;i<=n-1;i++)

{

if (i>1) a[i][i-1]=1;

a[i][i]=-2;

if(i<n-1) a[i][i+1]=1;

b[i]=-4*pi*pi*h*h*sin(2*pi*i*h);

}

k=0;

for (i=1;i<=n-1;i++) x[i]=0; // Начальное приближение

do

{ k++;

for (i=1;i<=n-1;i++) x0[i]=x[i];

m=0;

for (i=1;i<=n-1;i++)

{ s=0;

for (j=1;j<=n;j++) if (i!=j) s=s+a[i][j]*x0[j];

x[i]=(b[i]-s)/a[i][i];

d=fabs(x[i]-x0[i]); if (m<d) m=d;

}

} while (m>eps);

for (i=1;i<=n-1;i++) printf("%6.2lf",x[i]);

cout<<endl;

for (i=1;i<=n-1;i++) printf("%6.2lf",sin(2*pi*i*h));

cout<<endl<<"k="<<k<<endl;

cout<<"d="<<d<<endl;

t1 = clock();

cout << "t: " <<(t1 - t0)/CLOCKS_PER_SEC << "\n";

}

void main()

{

// freopen("input.txt","r",stdin);

//freopen("output.txt","w",stdout);

work(50);

//work(100);

//work(101);

//work(1000);

getch();

}

4.2 Расчет на многопроцессорных компьютерах

Не успела.

Литература

  1. А. А. Букатов, В. Н. Дацюк, А. И. Жегуло “Программирование многопроцессорных вычислительных систем”

  2. Л. И. Турчак “Основы численных методов”

  3. А. А. Самарский “Введение в теорию разностных схем”

  4. А. А. Самарский, А. В. Гулин “Численные методы”

1

2

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]