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


 

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

20125. Логометрическая схема соединения звеньев. Погрешность 115.5 KB
  Логометрическая схема делителя тока. Логометрическая схема делителя напряжения. Эта схема удобна для включения низкоомных резистивных преобразователей.
20126. Структурные схемы приборов для измерения линейных и угловых величин. Чувствительные и отсчетные устройства приборов 462.5 KB
  В ШОУ значение измеряемой величины представляется в виде взаимного смещения подвижных элементов шкалы и указателя. Если учесть что а принимают как десятую долю интервала деления шкалы то интервал на практике принимается равным 1 мм. Принятый метод определения интервала деления шкалы происходил из практики отсчета десятой доли интервала. Хотя оценка доли деления шкалы не увеличивает точность измерения т.
20127. Дифференциальный метод отыскания коэффициентов влияния 48 KB
  Коэффициент влияния – это отношение изменения сигнала на выходе измерительного устройства к вызвавшей его первичной погрешности. Коэффициент влияния определяет долю влияния конкретной погрешности на суммарную. Ti = ðS ðqi Дифференциальный метод применяют для определения влияния отклонений различных составляющих величин на выходной сигнал математически выраженный через величины входящие в передаточную функцию.
20128. Отыскание коэффициентов влияния методом преобразованной цепи 73 KB
  Для анализа действия первичной погрешности и разработки системы компенсации ошибок и регулирования механизма требуется именно аналит. влияния первичной погрешности отыскивается как передаточное отношение преобразованного механизма. Преобразованный механизм назся механизм с точно выполненными звеньями у крого ведущие звенья закреплены неподвижно а звенья имеющие погрешность преобразованы в ведущие звенья с направлением движения совпадающим с направлением рассматриваемой первичной погрешности. Если обозначить через I передаточное...
20129. Отыскание коэффициентов влияния методом фиктивной нагрузки 72.5 KB
  Суть метода: исследуемый механизм нагружается единичной фиктивной нагрузкой причем эта нагрузка прикладывается к выходному ведомому звену механизма таким образом чтобы она увеличивала значение вых. В качестве единичной фиктивной нагрузки принимается сила Φ если звено движется поступательно или же единичный фиктивный момент М если звено вращается. Где Fi – проецируемые реакции от действующей фиктивной нагрузки или приравненных действующих первичных погрешностей.
20130. Сравнение различных методов отыскания коэффициентов 45.5 KB
  Существуют следующие методы отыскания коэффициентов влияния и конечных погрешностей: Методика академика Бруевича методика проф.Калашникова дифференциальный метод отыскания коэффициентов влияния метод преобразованной цепи метод фиктивной нагрузки метод планов малых перемещений геометрический метод метод относительных погрешностей метод плеча и линии действия. Метод рассмотрения первичных погрешностей механизма предложенная академиком Бруевичем позволяет строго определить возможное число первичных погрешностей каждого звена и...
20131. Понятие о векторной первичной погрешности 25.5 KB
  Векторные первичные погрешности ВПП погрешности характеризуемые некоторым направлением и некоторым числовым знем называемым модулем. ВПП могут возникнуть в плоскости движения механизма ПП эксцентриситета или плоского перекоса и не в плоскости движения ПП пространственного перекоса. ВПП образуются из ошибок в технических условиях на изготовление и сборку механизма. Эти погрешности: профиля элементов звеньев в высших парах; несоосность; радиальное и торцевое биение; Все ВПП можно свести к двум видам: 1.
20132. ОТНОСИТЕЛЬНЫЕ ЧИСЛОВЫЕ ХАРАКТЕРИСТИКИ РАСПРЕДЕЛЕНИЯ ПЕРВИЧНЫХ ПОГРЕШНОСТЕЙ 50 KB
  размера вала а по оси ординат плотность вероятности рассеяния этих погрешностей определяемые опытным путем. α и λ зависят только от вида закона распределения погрешностей Δq = α δ Δо σ[Δq] = λ δ На практике данные коэффиценты α и λ берутся из таблицы. Законы распределения технологических погрешностей.
20133. Способы уменьшения ожидаемой погрешности 23.5 KB
  Недостатки обоих способов : Невозможность воздя на систематическую составляющую суммарной погрешности. уменьшить в обоих случаях значение конечной погрешности.