87808

Сгущение сеток

Лекция

Информатика, кибернетика и программирование

Конечно разностная схема (5) содержит два временных слоя: верхний и текущий T. Задача состоит в переходе от известной функции Т к искомой на верхнем слое. КРС (5) является явной потому что ее решение вычисляется по явным формулам Распишем СЛАУ в неявную схему, заменив производную по времени назад.

Русский

2015-04-23

195.04 KB

0 чел.

Сгущение сеток

  1.  Введение.

Рассмотрим сгущение сетки с помощью решения диф. ур-я.

             (1)

t=0 : T=0    (2)

x=0 : T[0]=0            (3)

x=1 : T[N]=   (4)

Уравнения (1)-(4) составляют систему , которая на каждом временном слое j представляет собой СЛАУ.

Распишем СЛАУ

   ,    (5)

.

Конечно разностная схема (5) содержит два временных слоя : верхний  и текущий T.

Задача состоит в переходе от известной функции Т к искомой  на верхнем слое.

КРС (5) является явной потому что ее решение вычисляется по явным формулам  

Распишем СЛАУ в неявную схему, заменив производную по времени назад.

, где  ;  ;

   T[0]=0;      T[N] = .

Ее можно переписать в матричном виде AT=F, где А матрица коэффициентов, Т искомая сеточная функция , F заданный вектор краевой задачи. .

AT=F

Видим, что получили 3ехдиагональную матрицу, решаем ее методом прогонки(Томаса).

Он основывается на предположении, что искомые неизвестные связаны рекуррентным соотношением:

 где  i=n-1…1

Где α,β – прогоночные коэффициенты:


  1.  Результаты

N=20 – кол-во узлов

Зеленый график – алгебраический способ сгущения

Синий график – сгущение с помощью решения ДУ


N=51 – кол-во узлов

α=2 сгущение вокруг точки 0.4

Зеленый график – алгебраический способ сгущения

Синий график – сгущение с помощью решения ДУ


N=51 – кол-во узлов

α=2 сгущение вокруг точки 0.2

Зеленый график – алгебраический способ сгущения

Синий график – сгущение с помощью решения ДУ


  1.  Приложение

Код программы в С++:

#include <iostream>

#include <fstream>

using namespace std;

const double pi=3.1415926535;

const int n=51;

double h=1.0/(n-1);

double x[n],y[n]; //y=f(x) - д.у.

double a[n],b[n]; //прогоночные коэф

double alpha=2; //показатель алгебр. сгущения/разряжения

double k(double x)

{

 if(x>=0)

 if(x<0.3)

 return 1;

 if(x>=0.3)

 if(x<=0.4)

 return 1;

 if(x>0.4)

 if(x<0.9)

 return 5;

 if(x>=0.9)

 if(x<=1)

 return 1;

}

double A(double x,double y)//x=x[i] y=x[i-1]

{

 return (k(x)+k(y))/(2*h*h);

}

double B(double x,double y)//x=x[i] y=x[i+1]

{

 return (k(x)+k(y))/(2*h*h);

}

double C(double x,double y,double z)//x=x[i+1] y=x[i] z=x[i-1]

{

 return -(k(y)+k(x))/(2*h*h) - (k(y)+k(z))/(2*h*h);

}

void progonka()

{

y[0]=0;

a[0]=0;

b[0]=0;

 for(int i=0;i<n-2;i++)

{

 a[i+1]=-B(x[i],x[i+1])/(A(x[i],x[i-1])*a[i]+C(x[i+1],x[i],x[i-1]));

 b[i+1]=(-A(x[i],x[i-1])*b[i])/(A(x[i],x[i-1])*a[i]+C(x[i+1],x[i],x[i-1]));

}

y[n-1]=1;

 

 for(int i=n-2;i>0;i--)

 y[i]=a[i]*y[i+1]+b[i];

}

void al(double z)

{

 for(int i=0;i<n;i++)

 if(x[i]<z)

  y[i]=z*(1-pow((z-x[i])/z,alpha));

 else

  y[i]=z+pow((x[i]-z)/(1-z),alpha)*(1-z);

}

void main()

{

 ofstream fd("1.txt");

 ofstream fa("2.txt");

 for(int i=0;i<n;i++)

 x[i]=i*h;

progonka();

 for(int i=0;i<n;i++) //запись ду

 fd<<h*i<<"\t"<<y[i]<<endl;

al(0.2);

 for(int i=0;i<n;i++) //запись ал

 fa<<h*i<<"\t"<<y[i]<<endl;

 system("pause");

}


Код программы в Matlab:

A = load('1.txt'); % считываем данные

x1 = A(:,1); % первый столбец

y1 = A(:,2); % второй столбец

 

B = load('2.txt'); % считываем данные

x2 = B(:,1); % первый столбец

y2 = B(:,2); % второй столбец

 

plot(x1,y1,x2,y2) % рисуем

%axis([0  1  0  1])


 

А также другие работы, которые могут Вас заинтересовать

85670. Исследования проблемы дифференциации товаров 184.5 KB
  Целью данной работы является исследования проблемы дифференциации товаров. С экономической точки зрения она предполагает всесторонний подход и состоит в системном взгляде на данное явление. Данный подход предполагает выявление взаимосвязей в рамках экономической системы
85671. Тепловой расчет котельного агрегата Е-400-13, 8-560 КДТ (ТПЕ-429) 247.23 KB
  Задание на курсовое проектирование должно содержать следующие данные: а тип парогенератора; б месторождение и марку топлива его зольность влажность и способ сжигания; в производительность парогенератора давление и температуру перегретого пара на выходе из пароперегревателя; г температуру питательной воды...
85674. Разработка способов восстановления, технологического оборудования на основе широкого использования достижений науки и техники 283 KB
  Создание парка грузовых автомобилей в нашей стране потребовало организовать их ремонт для поддержания работоспособного состояния. До конца 70-х годов преобладало направление – выполнение КР полнокомплектных автомобилей. Однако это шло в ущерб экономики, увеличились простои автомобилей в ремонт
85675. Организация ремонта и расчет себестоимости ремонта буферных комплектов переходных площадок пассажирских вагонов 263 KB
  Краткая характеристика буферных комплектов переходных площадок пассажирских вагонов. Подбор оборудования и запасных частей для ремонта буферных комплектов переходных площадок пассажирских вагонов. Расчет себестоимости ремонта буферных комплектов переходных площадок пассажирских вагонов18 7.31 Введение Основной задачей курсового проекта Организация ремонта и расчет себестоимости ремонта буферных комплектов переходных площадок пассажирских вагонов является определение себестоимости ремонта буферных комплектов...