%lab1 Для запуска программы нажмите F5 clear all %удалить все переменные clc %очистить экран close all %закрыть графики %-------------------------------------------------------------------------- %ВХОДНЫЕ ПЕРЕМЕННЫЕ: a = 1; h = 0.1; tau = 0.005; lambda = a*tau/(h^2); n=10; m=15; %ЗНАЧЕНИЯ ДЛЯ x,t КОТОРЫЕ МЕНЯЮТСЯ С ШАГОМ h и tau i = 0:n; j = 0:m; x = i*h; %координаты по оси х, от 0 до 1 t = j*tau; %отсчеты времени от 0 до 0.0075 %ОБОЗНАЧЕНИЕ РАЗМЕРА МАТРИЦЫ ЗНАЧЕНИЙ u: u = zeros(n+1,m+1); % 1. u( 0,j ): u(1, j +1) = 1; %граничное условие - температура на левом конце стержня постоянна % 2. u( i,0 ): u(i(1:n) +1, 1) = (sin( x(1:n)-1 )).^2; %начальное условие - температура стержня в начальный момент времени % 3. u( i,j+1 ): for ind2 = 2:(m+1) for ind1 = 2:n u(ind1, ind2) = lambda*u( ind1+1, ind2-1 ) ... + (1-2*lambda)*u( ind1, ind2-1 ) ... + lambda*u( ind1-1, ind2-1 ); end end % 4. u( n,j ): %u(n+1,j+1) = -(u(n,j+1) - ( t(j+1).^3 + 3*t(j+1).^2 - 2*t(j+1) )); u(n+1,j+1) = (u(n,j+1) + h.*( t(j+1).^4 - 3*t(j+1).^3 + 2*t(j+1) ))/(1+h); %вывод результатов: figure('name','fig1');surf(t,x,u);xlabel('t');ylabel('x'); disp('Значения u:'); disp( u ); ch1 = 1; ch2 = ch1+1; figure,plot(x,u(:,ch1),'r.-',x,u(:,ch2),'bs--');legend(num2str(ch1),num2str(ch2));xlabel('x');ylabel('u(i,j=const)'); %________________________________________________________________