Решение задач математической физики в системе MatLab. Рындин Е.А - 48 стр.

UptoLike

Составители: 

Рубрика: 

% Определение размерности СЛАУ
N=s*n*m;
% Задание матрицы коэффициентов СЛАУ размерности N x N,
% все элементы которой равны 0
a=zeros(N,N);
% Задание матрицы-строки свободных членов СЛАУ размерности 1 x N,
% все элементы которой равны 0
b=zeros(1,N);
% Определение коэффициентов и свободных членов СЛАУ,
% соответствующих граничным условиям, и проверка корректности
% значений параметров v1, v2, v3, v4
for i=1:n
for j=1:m
b(m*(i-1)+j)=GT(x(i),y(j));
if vt==1
a(m*(i-1)+j,m*(i-1)+j)=1;
elseif vt==2
a(m*(i-1)+j,m*(i-1)+j)=-1/dt;
a(m*(i-1)+j,n*m+m*(i-1)+j)=1/dt;
else
error('Parameter vt have incorrect value');
end
end
end
for l=1:s
for j=1:m
b(n*m*(l-1)+j)=G1(y(j));
if v1==1
a(n*m*(l-1)+j,n*m*(l-1)+j)=1;
elseif v1==2
a(n*m*(l-1)+j,n*m*(l-1)+j)=-1/dx;
a(n*m*(l-1)+j,n*m*(l-1)+m+j)=1/dx;
else
error('Parameter v1 have incorrect value');
end
b(n*m*(l-1)+m*(n-1)+j)=G2(y(j));
if v2==1
a(n*m*(l-1)+m*(n-1)+j,n*m*(l-1)+m*(n-1)+j)=1;
elseif v2==2
a(n*m*(l-1)+m*(n-1)+j,n*m*(l-1)+m*(n-1)+j)=1/dx;
a(n*m*(l-1)+m*(n-1)+j,n*m*(l-1)+m*(n-2)+j)=-1/dx;
else
error('Parameter v2 have incorrect value');
end
end
48