% Очистка ранее сохраненных результатов вычислений.
% из оперативной памяти.
clear all.
% Закрытие раннее выведенных графических окон.
close all.
% Очистка экрана.
clc.
% Ввод исходных данных с клавиатуры.
input ('Начальная координата области решения: ');
x0= ans;
input ('Конечная координата области решения: ');
xn=ans;
input ('Число точек координатной сетки: ');
n=ans;
input ('Функция правой части уравнения в одинарных кавычках: ');
f=ans;
input ('Вид ГУ на левой границе (1-Дирихле, 2- Неймана): ');
v1=ans;
input ('Значение ГУ на левой границе: ');
g1=ans;
input ('Вид ГУ на правой границе (1-Дирихле, 2- Неймана): ');
v2=ans;
input ('Значение ГУ на правой границе: ');
g2=ans;
%Задание равномерной координатной сетки с шагом dx.
x=x0:(xn-x0)/(n-1):xn;
dx=x (2)-x (1);
% Вычисление значений функций, заданных символьно,.
% в узлах координатной сетки.
F=inline (f,'x');
FF=F (x);
% Задание матрицы коэффициентов СЛАУ размерностью n x n,.
% все элементы которой равны 0.
a=zeros (n, n);
% Задание матрицы-строки свободных членов СЛАУ размерностью 1 x n,.
% все элементы которой равны 0.
b=zeros (1,n);
% Определение коэффициентов и свободных членов СЛАУ,.
% соответствующих граничным условиям и проверка корректности.
% значений параметров v1, v2.
b (1)=g1;
if v1==1.
a (1,1)=1;
elseif v1==2.
a (1,1)=-1/dx;
a (1,2)=1/dx;
else.
error ('Parameter v1 have incorrect value');
end.
b (n)=g2;
if v2++1.
if v2==1.
a (n, n)=1;
elseif v2==2.
a (n, n)=1/dx;
a (n, n-1)=-1/dx;
else.
error ('Parameter v2 have incorrect value');
end.
% Определение коэффициентов и свободных членов СЛАУ,.
% соответствующих внутренним точкам области.
for i=2:n-1.
a (i, i)=-2/dx2;
a (i, i+1)=1/dx2;
a (i, i-1)=1/dx2;
b (i)=FF (i);
end.
% Решение СЛАУ.
u=b/a';
% Построение графика функции правой части f (x).
plot (x, FF, x, ones (size (x)).*(sum (FF)/length (FF)),'r.','LineWidth', 1.5).
xlabel ('x','FontSize', 13).
ylabel ('f (x)','FontSize', 13).
grid on.
% Построение графика искомой функции u (x).
figure.
plot (x, u, x, ones (size (x)).*(sum (u)/length (u)),'r.','LineWidth', 1.5).
xlabel ('x','FontSize', 13).
ylabel ('U (x)','FontSize', 13).
grid on.
end.