Студопедия — Часть 2. Численное решение явным методом Эйлера
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Часть 2. Численное решение явным методом Эйлера






Разобьём [0;l] xj=Δx(j+0.5) Δx=l/Nx

– вектор-столбец, состоящий из

Из граничных условий доопределим

Задача 5-6-7 аппроксимируется системой дифференциальных уравнений (13)

Приближенное решение этой системы можно найти явным методом Эйлера, последовательно применяя формулу (14)

Текст программы:

#include <math.h>

#include <fstream>

#include <iostream>

 

using namespace std;

 

const double PI=3.1415926535897932384626433832795;

const double l=1, tau=1, k=2;

double X=2*l/3;

double T=k*tau;

double D=l*l/tau;

 

int main()

{

const int Nx=100;

double dx=l/Nx;

unsigned int Nt=2000000;

double dt=5*tau/Nt;

int NT=(int)(k/5*Nt);

double a11=-2+(2*l-dx)/(2*l+dx);//элементы матрицы ||А||

double ann=-1;

 

double u[Nx];

for(int p= 0; p < Nx; p++)

{

if(((dx*(p+1))<=((17*l)/30))||(((dx*(p+1))>=((23*l)/30))))

u[p]=0;

else

u[p]=1;

}

 

ofstream out("Tables.txt");//вывод таблиц в файл

out<<" "<<"t"<<" "<<"u[2l/3,t]:"<<'\n';//u при фиксированном х

double r[Nx];//чтобы задать массив u при t=k*tau

 

for (int i=0; i<=Nt;i++)//ключевой, шагаем по t

{

if (i%1000==0) //чтобы в таблице не было слишком много точек

out<<dt*i<<" "<<'\t'<<u[(int)(X/l*Nx)]+exp(-(i*dt/tau))-1<<'\n';

 

double q=exp(-i*dt/tau)/tau; //

double v[Nx];//чтобы не портить массив u при решении системы при фиксированном t

 

v[0]=u[0]+(D*(a11*u[0]-u[1])/(dx*dx)+q)*dt;

 

for (int j=1;j<Nx-1;j++)

{

v[j]=u[j]+(D*(u[j-1]-2*u[j]+u[j+1])/(dx*dx)+q)*dt;//система уравнений в явном виде

}

 

v[Nx-1]=u[Nx-1]+(D*(u[Nx-2]+ann*u[Nx-1])/(dx*dx)+q)*dt;

 

for (int j=1;j<Nx-1;j++) //заход на следующий шаг

u[j]=v[j];

if(i==NT)

{

for (int j=0;j<Nx;j++) //чтобы построить u(x,t*)

r[j]=u[j];

}

}

out<<'\n'<<" "<<"x"<<" "<<"u[x,T]:"<<'\n';//u при фиксированном t

for (int j=0;j<Nx-1;j++)

out<<(j+0.5)*dx<<" "<<'\t'<<r[j]-(1-exp(-(T/tau)))<<'\n';

return 0;

}

График при x*=2l/3

Nx=100; Nt=2000000 - количество точек на отрезке [0;τ] (взяли с запасом количество точек разбиения, больше которого изменение графика становится незаметным для данного Nx, то есть для которого явно прослеживается устойчивость решения).

 

 

 

При фиксированном Nx=100 подберем такое количество точек на отрезке [0;τ], что решение начинает терять устойчивость. Мы получили Nt=100000. Отсюда, кстати, можно примерно оценить λmax≈200000 (tau=1). Как можно видеть, на этом этапе график становится негладким.

 

Увеличенная область, в которой решение начинает терять устойчивость







Дата добавления: 2015-09-15; просмотров: 442. Нарушение авторских прав; Мы поможем в написании вашей работы!



Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

Дренирование желчных протоков Показаниями к дренированию желчных протоков являются декомпрессия на фоне внутрипротоковой гипертензии, интраоперационная холангиография, контроль за динамикой восстановления пассажа желчи в 12-перстную кишку...

Деятельность сестер милосердия общин Красного Креста ярко проявилась в период Тритоны – интервалы, в которых содержится три тона. К тритонам относятся увеличенная кварта (ув.4) и уменьшенная квинта (ум.5). Их можно построить на ступенях натурального и гармонического мажора и минора.  ...

Понятие о синдроме нарушения бронхиальной проходимости и его клинические проявления Синдром нарушения бронхиальной проходимости (бронхообструктивный синдром) – это патологическое состояние...

Ученые, внесшие большой вклад в развитие науки биологии Краткая история развития биологии. Чарльз Дарвин (1809 -1882)- основной труд « О происхождении видов путем естественного отбора или Сохранение благоприятствующих пород в борьбе за жизнь»...

Этапы трансляции и их характеристика Трансляция (от лат. translatio — перевод) — процесс синтеза белка из аминокислот на матрице информационной (матричной) РНК (иРНК...

Условия, необходимые для появления жизни История жизни и история Земли неотделимы друг от друга, так как именно в процессах развития нашей планеты как космического тела закладывались определенные физические и химические условия, необходимые для появления и развития жизни...

Studopedia.info - Студопедия - 2014-2024 год . (0.01 сек.) русская версия | украинская версия