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])


 

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

11726. Редактирование Web-страниц 23.31 KB
  Лабораторная работа №12 Редактирование Webстраниц. Цели работы: закрепить навыки и умения: ввода и форматирования текста постарения таблиц и списка настройки гиперссылок и закладок оформления страниц специальными объектами повышающими их привлекательность. Выпо
11727. Проводники. Сложной проводники 11.88 KB
  Лабораторная работа № 17 Проводники. Сложной проводники. Цели работы: закрепить умения и навыки формирования простых и сложных проводок. Выполнил: Романов П. Н. Группа: 091ПО Преподаватель: Афанасьева Г. Ю. Дата: 16.01.13 Ход работы: ...
11728. Ввод типовых операций 12.1 KB
  Лабораторная работа №16 Ввод типовых операций Цели работы: закрепить умения и навыки создания типовой операции работы с управляющими элементами типовой операции ввода типовой операции. Выполнил: Романов П. Н. Группа: 091ПО Преподаватель: Афана...
11729. Проектирование структуры. Нормализация таблиц 162.76 KB
  Лабораторная работа №1 Проектирование структуры. Нормализация таблиц. Цель: формирование практических умений и навыков логического проектирования базы данных: структуры базы данных; структуры таблиц входящих в состав базы данных; связей между таблицами. Закреплен
11730. Создание серверной части приложения: Файлы базы данных, таблицы 14.8 KB
  Лабораторная работа №2 Создание серверной части приложения: Файлы базы данных таблицы. Цель: формирование практических умений и навыков применения языка TransactSQL для создания объектов базы данных собственно самой базы данных таблиц входящих в состав базы данных; р
11731. Визуальное проектирование структуры базы данных: таблицы, индексы 36.07 KB
  Лабораторная работа №3 Визуальное проектирование структуры базы данных: таблицы индексы. Цель: формирование практических умений и навыков работы с SQL Server в графическом режиме через SQL Manager: создание структуры таблицы наложение ограничений на поля просмотр таблиц ...
11732. Визуальное проектирование базы данных: условие ссылочной целостности, взаимосвязи 25.23 KB
  Лабораторная работа №4 Визуальное проектирование базы данных: условие ссылочной целостности взаимосвязи. Цель: закрепить практические умения и навыки установления условий ссылочной целостности взаимосвязей между таблицами один к одному один ко многим многие ко м...
11733. Клиентская часть: размещение не визуальных компонентов соединения с базой данных 17.34 KB
  Лабораторная работа №5 Клиентская часть: размещение не визуальных компонентов соединения с базой данных. Цель: закрепить практические умения и навыки управления не визуальными компонентами отображения соединения с базой данных. Закрепление навыков работы в среде п...
11734. Клиентская часть: размещение визуальных компонентов отображения таблиц 16.53 KB
  Лабораторная работа № 6 Клиентская часть: размещение визуальных компонентов отображения таблиц Цель: закрепить практические умения и навыки управления визуальными компонентами отображения таблиц организации запроса. Закрепление навыков работы в среде программир...