рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Model_graph.m

Model_graph.m - раздел Математика, Численные методы решения краевых задач для уравнений математической физики. %решение Модельной Задачи %параметры N1, N2 - Количество Узлов По Ос...

%Решение модельной задачи

%Параметры N1, N2 - количество узлов по осям x и t

function [U,U_n] = fun(N1,N2)

%Задание границ области дискретного изменения аргумента

L_const=1;

T_const=2^(3/2)/3;

x_begin=0;

x_end=L_const;

t_begin=0;

t_end=T_const;

%Определение шага по осям x и t

h=L_const/N1;

tau=T_const/N2;

gamma=tau/h;

%Определение координат узлов сетки

X=x_begin:h:x_end;

T=t_begin:tau:t_end;

N=length(X);

M=length(T);

%Сеточная функция внешней силы f(x,t)

for i=1:N

for j=1:M

f(i,j)=-81/4*X(i)-27/4;

end;

end;

%------------------------------------------------------------------------------------------

%--------------Сеточный аналог теоретического решения----------------------

%------------------------------------------------------------------------------------------

for i=1:N

for j=1:M

U_a(i,j)=27/8*X(i)^3-27/8*T(j)^2;

end;

end;

figure;

mesh(T,X,U_a);

title('Teoretic function');

xlabel('t');

ylabel('x');

zlabel('U(x,t)');

figure;

contour(U_a,20);

%---------------------------------------------------------------------------------------------------

%-------Решение краевой задачи с применением явной разностной схемы--------

%---------------------------------------------------------------------------------------------------

%Сеточная функция U(x,t)

U=zeros(N,M);

%Задание первого начального условия U(x,0)

for i=1:N

U(i,1)=27/8*X(i)^3;

end;

%Задание первого граничного условия U(L,t)

for j=1:M

U(N,j)=27/8-27/8*T(j)^2;

end

%Задание второго начального условия Ut(x,0) - по известным U(i,0)

%определяем значения U(i,1) для i=1,...,N-1

for i=2:N-1

U(i,2)=(1-gamma^2)*U(i,1)+gamma^2*U(i-1,1)/2+gamma^2*U(i+1,1)/2+tau^2*f(i,1)/2;

end

%Определение значения U(0,1) из начальных и граничных условий

U(1,2)=gamma^2*U(2,1)-(gamma^2-1)*U(1,1)+tau^2*f(1,1)/2;

%Вычисление значения функции в узлах

for j=2:M-1

%Из второго граничного условия находим U(0,j) для j=2,...,M

U(1,j+1)=2*gamma^2*U(2,j)+2*(1-gamma^2)*U(1,j)-U(1,j-1)+tau^2*f(1,j);

%Находим значения сеточной функции во внутренних узлах сетки

for i=2:N-1

U(i,j+1)=2*(1-gamma^2)*U(i,j)+gamma^2*(U(i-1,j)+U(i+1,j))-U(i,j-1)+tau^2*f(i,j);

end

end

%Построение сеточной функции с использованием явной схемы

figure;

mesh(T,X,U);

title('Evident scheme');

xlabel('t');

ylabel('x');

zlabel('U(x,t)');

figure;

contour(U,20);

%---------------------------------------------------------------------------------------------------

%------Решение краевой задачи с применением неявной разностной схемы-------

%----------------------------------------------------------------------------------------------------

%Сеточная функция U(x,t)

U_n=zeros(N,M);

%Задание первого начального условия U(x,0)

for i=1:N

U_n(i,1)=27/8*X(i)^3;

end;

%Задание первого граничного условия U(L,t)

for j=1:M

U_n(N,j)=27/8-27/8*T(j)^2;

end

%Вычисление значений сеточной функции U(i,1) методом прогонки

%Определение прогоночных коэффициентов

A=zeros(N-1,1);

B=zeros(N-1,1);

ALPHA=zeros(N-1,1);

F=zeros(N,1);

C=zeros(N,1);

BETA=zeros(N,1);

for i=1:N-2

A(i)=gamma^2/2;

B(i+1)=gamma^2/2;

C(i+1)=1+gamma^2;

F(i+1)=U_n(i+1,1)+tau^2*f(i+1,2)/2;

end;

A(N-1)=0;

B(1)=gamma^2;

C(1)=1+gamma^2;

C(N)=1;

F(1)=U_n(1,1)+tau^2*f(1,1)/2;

F(N)=27/8-27/8*T(1)^2;

%Прямой ход прогонки

ALPHA(1)=B(1)/C(1);

BETA(1)=F(1)/C(1);

for i=2:N-1

ALPHA(i)=B(i)/(C(i)-A(i-1)*ALPHA(i-1));

BETA(i)=(F(i)+A(i-1)*BETA(i-1))/(C(i)-A(i-1)*ALPHA(i-1));

end;

BETA(N)=(F(N)+A(N-1)*BETA(N-1))/(C(N)-A(N-1)*ALPHA(N-1));

%Обратный ход прогонки

U_n(N,2)=BETA(N);

for i=N-1:-1:1

U_n(i,2)=ALPHA(i)*U_n(i+1,2)+BETA(i);

end;

 

%Вычисление значений сеточной функции U(i,j) j=2,...,M методом прогонки

%Определение прогоночных коэффициентов

A=zeros(N-1,1);

B=zeros(N-1,1);

ALPHA=zeros(N-1,1);

F=zeros(N,1);

C=zeros(N,1);

BETA=zeros(N,1);

for i=1:N-2

A(i)=gamma^2;

B(i+1)=gamma^2;

C(i+1)=1+2*gamma^2;

end;

A(N-1)=0;

B(1)=2*gamma^2;

C(1)=1+2*gamma^2;

C(N)=1;

for j=3:M

F=zeros(N,1);

F(1)=2*U(1,j-1)-U(1,j-2)+tau^2*f(1,j-1);

F(N)=27/8-27/8*T(j)^2;

ALPHA=zeros(N-1,1);

BETA=zeros(N,1);

%Прямой ход прогонки

ALPHA(1)=B(1)/C(1);

BETA(1)=F(1)/C(1);

for i=2:N-1

F(i)=2*U(i,j-1)-U(i,j-2)+tau^2*f(i,j-1);

ALPHA(i)=B(i)/(C(i)-A(i-1)*ALPHA(i-1));

BETA(i)=(F(i)+A(i-1)*BETA(i-1))/(C(i)-A(i-1)*ALPHA(i-1));

end;

BETA(N)=(F(N)+A(N-1)*BETA(N-1))/(C(N)-A(N-1)*ALPHA(N-1));

%Обратный ход прогонки

U_n(N,j)=BETA(N);

for i=N-1:-1:1

U_n(i,j)=ALPHA(i)*U_n(i+1,j)+BETA(i);

end;

end;

%Построение сеточной функции с использованием неявной схемы

figure;

mesh(T,X,U_n);

title('Not evident scheme');

xlabel('t');

ylabel('x');

zlabel('U(x,t)');

figure;

contour(U_n,20);

 

– Конец работы –

Эта тема принадлежит разделу:

Численные методы решения краевых задач для уравнений математической физики.

На сайте allrefs.net читайте: "Численные методы решения краевых задач для уравнений математической физики."

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Model_graph.m

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

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

Вычислительные схемы решения сеточных уравнений.
  Применение конечно-разностного метода для решения краевой задачи приводит в общем случае к системе линейных алгебраических уравнений для сеточных функций

Практическая область применимости явной и неявной схем.
Явная схема обеспечивает хорошую точность расчета решений , имеющих непрерывные четвертые производные. Она позволяет рассчитывать менее г

Исследование сходимости решения по сетке.
  При исследовании сходимости решения воспользуемся следующим методом: возьмем начальную сетку и вычислим значения сеточной функции

Решение модельной задачи.
В качестве модельной функции выберем .

Результаты работы программы.
  >>main РЕШЕНИЕ УРАВНЕНИЯ КОЛЕБАНИЙ Решения, полученные с использованием явной и неявной схем при 50 узлах на пространственной и временной осях

Fun_graph.m
%Функция расчета сеточной функции с использованием явной и неявной схем %Параметры N1, N2 - количество узлов по осям x и t function [U,U_n] = fun(N1,N2) %Задание границ о

Model.m
%Решение модельной задачи %Параметры N1, N2 - количество узлов по осям x и t function [U_a,U,U_n] = fun(N1,N2) %Задание границ области дискретного изменения аргумента

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги