Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
97
Добавлен:
17.04.2013
Размер:
144.9 Кб
Скачать

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

Используя описанные выше схемы представляю программу для нахождения решения уравнений.

clc;

disp('*******************************************************');

disp('# Project from George K. Oganjanov #');

disp('# METHODS OF APPLIED MATHEMATICS #');

disp('# -=X-C0der=- Variant[11] (c) 1997 #' );

disp('*******************************************************');

%-------ввод начальных значений----------

disp('Now You must enter requred data...');

N=input('Input X units count: ');

h=1/N;

M=input('Input Time units count: ');

t=1/M;

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

U=zeros(N+1,M+1);

for i=1:N+1,

U(i,2)=4*t*cos(pi/2*i*h); %Начальные условия

end

A=zeros(N+1); %Квадратная матрица для решения методом прогонки

B=zeros(N+1,1); %Столбец коэффициентов

Y=zeros(N+1,1); %Решение системы(значения ф-ии на новом слое)

Alfa=zeros(N+1,1); %Коэффициенты для метода

Beta=zeros(N+1,1); %прогонки

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

fprintf('\n');

disp('Now calculating by run-throught metod...');

disp('Wait, i''m thinking...');

for j=3:M+1,

fprintf('_');

for i=2:N

B(i)=8*( ((j-1)*t)^2 - (i*h)^2 ) + (2*U(i,j-1)-U(i,j-2))/t/t;

end

B(1)=0;

B(N+1)=-4*(j-1)*t;

for i=2:N

A(i,i)=1/t/t+2/h/h;

A(i,i-1)=-1/h/h;

A(i,i+1)=-1/h/h;

end

A(1,2)=-1;

A(N+1,N)=0;

A(1,1)=1;

A(N+1,N+1)=1;

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

Alfa(1)=-A(1,2)/A(1,1);

Beta(1)=B(1)/A(1,1);

for i=2:N

Alfa(i)=-A(i,i+1)/(A(i,i)+A(i,i-1)*Alfa(i-1));

Beta(i)=(B(i)-A(i,i-1)*Beta(i-1))/(A(i,i)+A(i,i-1)*Alfa(i-1));

end

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

Y(N+1)=(B(N+1)-A(N+1,N)*Beta(N))/(A(N+1,N+1)+A(N+1,N)*Alfa(N));

for k=1:N

i=N+1-k;

Y(i)=Alfa(i)*Y(i+1)+Beta(i);

end

U(:,j)=Y;

end

fprintf('\n');

key=1;

%-------вывод результатов----------

while key~=5,

clc;

key=menu('Choice report variant','Automatic time section','Time section','Layer lines','3D graphic','Quit');

if key==1 ,

for k=1:10

plot(U(round(N*k/10),:));

pause;

end;

end;

if key==2 ,

Y=input('Choice time (0.0 -> 1.0) T=');

plot(U(round(N*Y),:));

pause;

end;

if key==3 ,

contour(U,30);

pause;

end;

if key==4 ,

mesh(U);

pause;

mesh(U,[50,35]);

pause;

mesh(U,[120,30]);

pause;

mesh(U,[20,45]);

pause;

end;

end;

return;

Список литературы

  1. Теория разностных схем., Самарский А. А., М., Наука, 1977г.

  2. Численные методы., Калиткин Н. Н., М., Наука, 1978г.

  3. Численные методы решения разностных уравнений мат физики. Долголаптев В. Г., Земсков В. Н., М., МИЭТ, 1987г.

  4. Сборник задач по математике для втузов, т. 4 Методы оптимизации, М., Наука, 1990г.

  5. Методическое пособие по выполнению домашних заданий с использованием ЭВМ “Решение уравнений математической физики методом сеток”, М., МИЭТ, 1976г.

  6. Методы решения сеточных уравнений., Самарский А. А., Николаев Е. С., М., Наука, 1978г.

  7. Прикладные итерационные методы. Хейгеман Л., Янг Л., М., Мир, 1986г.

  8. Матрицы и вычисления., Воеводин В. В., Кузнецов Ю. А., М., Наука, 1984г.

0

Соседние файлы в папке mpm_19a
  • #
    17.04.2013144.9 Кб97Nik.doc
  • #
    17.04.20131.43 Кб91Nik.m
  • #
    17.04.20132.61 Кб90Nik1.m
  • #
    17.04.2013304 б90readme