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

UptoLike

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

Рубрика: 

% Определение размерности СЛАУ
N=s*n*m;
% Задание матрицы коэффициентов СЛАУ размерностью N x N,
% все элементы которой равны 0
a=zeros(N,N);
% Задание матрицы-строки свободных членов СЛАУ размерностью 1 x N,
% все элементы которой равны 0
b=zeros(1,N);
% Определение коэффициентов и свободных членов СЛАУ,
% соответствующих начальным и граничным условиям, и проверка
% корректности значений параметров vt1, vt2, v1, v2, v3, v4
for i=1:n
for j=1:m
b(m*(i-1)+j)=GT1(x(i),y(j));
if vt1==1
a(m*(i-1)+j,m*(i-1)+j)=1;
elseif vt1==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 vt1 have incorrect value');
end
b(n*m*(s-1)+m*(i-1)+j)=GT2(x(i),y(j));
if vt2==1
a(n*m*(s-1)+m*(i-1)+j,n*m*(s-1)+m*(i-1)+j)=1;
elseif vt2==2
a(n*m*(s-1)+m*(i-1)+j,n*m*(s-1)+m*(i-1)+j)=1/dt;
a(n*m*(s-1)+m*(i-1)+j,n*m*(s-2)+m*(i-1)+j)=-1/dt;
else
error('Parameter vt2 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;
26