матриці U (N + 1,:)=feval (fi, x (N + 1), y); % Останній рядок матриці U (:, 1)=feval (fi, y (1), x ); % Перший стовпець матриці U (:, N + 1)=feval (fi, y (N + 1), x ); % Останній стовпець матриці U (2: N, 2: N)=rand (N - 1, N - 1); % Для вирішення нам необхідно початкове наближення. Здійснюємо випадкове початкове наближення! % Власне обчислення ... Застосовується метод Якобі M=E + 0.01; d=0; iter=0; while (M gt; E)% Поки не досягнемо необхідної точності U0=U; for i=2: N% зробимо розрахунки Xb=U (i, :); for j=2: N v=0.25 * (U0 (i + 1, j) + U0 (i - 1, j) + U0 (i, j + 1) + U0 (i, j - 1)); U (i, j)=v; end; d=norm (U (i,:) - Xb); if (M gt; d)% Якщо умови виконується, то знайдено нове значення остігнутой точності! M=d; end; end; iter=iter + 1; end; figure; display ( Всього потурбувалися ітерацій: ); display (iter); surf (x, y, U); % Висновок поверхні!
Elip1.mfunction [x, y, U]=Elip1 (X, N, fi, E)% сітковий метод, ітераційний процес Гаусса-Зейделя% X - Сторона прямокутника% Y - Сторона прямокутника% N- Кількість вузлів по х% K - Кількість вузлів по y% fxy - функція правій частині% fi - функція граничної умови% E - точність h=X/N; % Рівномірна сітка по просторовим змінним x=[0: h: h * N]; % Розбиваємо сітку по змінній х y=[0: h: h * N]; % Розбиваємо сітку по перемінної у U=zeros (N + 1, N + 1); % Матриця значень сіткової функції F=zeros (N + 1, N + 1); % Матриця значень сіткової функції f (x, y)% дискретизація початкових умов і початкове заповнення матриці значень сіткової функції U (1,:)=feval (fi, x (1), y); % Перший рядок матриці U (N + 1,:)=feval (fi, x (N + 1), y); % Останній рядок матриці U (:, 1)=feval (fi, y (1), x ); % Перший стовпець матриці U (:, N + 1)=feval (fi, y (N + 1), x ); % Останній стовпець матриці U (2: N, 2: N)=rand (N - 1, N - 1); % Для вирішення нам необхідно початкове наближення. Здійснюємо випадкове початкове наближення! % Власне обчислення ... Застосовується метод Гаусса-Зейделя M=E + 0.01; d=0; iter=0; while (M gt; E)% Поки не досягнемо необхідної точності for i=2: N% зробимо розрахунки Xb=U (i, :); for j=2: N v=0.25 * (U (i + 1, j) + U (i - 1, j) + U (i, j + 1) + U (i, j - 1)); U (i, j)=v; end; d=norm (U (i,:) - Xb); if (M gt; d)% Якщо умови виконується, то знайдено нове значення остігнутой точності! M=d; end; end; iter=iter + 1; end; % Після завершення розрахунків побудуємо поверхню і повернемо значення сітки і сіткової функції, опредеоенного на ній !. figure; display ( Всього потурбувалися ітерацій: ); display (iter); surf (x, y, U); % Висновок поверхні!
ElipR.mfunction [x, y, U]=ElipR (X, N, fi, t, E)% сітковий метод, ітераційний процес верхньої релаксації% X - Сторона прямокутника% Y - Сторона прямокутника% N - Кількість вузлів по х% K - Кількість вузлів по y% fi - функція граничної умови% E - точність h=X/N; % Рівномірна сітка по просторовим змінним x=[0: h: h * N]; % Розбиваємо сітку по змінній х y=[0: h: h * N]; % Розбиваємо сітку по перемінної у U=zeros (N + 1, N + 1); % Матриця значень сіткової функції F=zeros (N + 1, N + 1); % Матриця значень сіткової функції f (x, y)% дискретизація початкових умов і початкове заповнення матриці значень сіткової функції U (1,:)=feval (fi, x (1), y); % Перший рядок матриці U (N + 1,:)=feval (fi, x (N + 1), y); % Останній рядок матриці U (:, 1)=feval (fi, y (1), x ); % Перший стовпець матриці U (:, N + 1)=feval (fi, y (N + 1), x ); % Останній стовпець матриці U (2: N, 2: N)=rand (N - 1, N #151; 1); % Для вирішення нам необхідно початкове наближення. Здійснюємо випадкове початкове наближення! % Власне обчислення ... Застосовується метод верхньої релаксації M=E + 0.01; d=0; iter=0; while (M gt; E)% Поки не досягнемо необхідної точності for i=2: N% зробимо розрахунки Xb=U (i, :); for j=2: N v=(t/4) * (U (i + 1, j) + U (i, j + 1)) - t * (1-1/t) * U (i, j) + (t/4) * (U (i - 1, j) + U (i, j - 1)); U (i, j)=v; end; d=norm (U (i,:) - Xb); if (M gt; d)% Якщо умови виконується, то знайдено нове значення остігнутой точності! M=d; end; end; iter=iter + 1; end; figure; display ( Всього потурбувалися ітерацій: ); display (iter); surf (x, y, U); % Висновок поверхні!
ElipGauss.mfunction [x, y, U]=ElipGauss (X, N, fi)% X - Сторона прямокутника% N - Кількість вузлів по х% K - Кількість вузлів по y% fi - функція граничної умови% E - точність h=X/N; % Рівномірна сітка по просторовим змінним x=[0: h: h * N]; % Розбиваємо сітку по змінній х y=[0: h: h * N]; % Розбиваємо сітку по перемінної у U=zeros (N + 1, N + 1); % Матриця значень сіткової функції F=zeros (N + 1, N + 1); % Матриця значень сіткової функції f (x, y) Aii=- 4 * eye (N - 1) + diag (ones (1, N - 2), 1) + diag (ones (1, N - 2), - 1 ); % головна блокова діагональ Aij=eye (N - 1, N - 1); % Нижня і верхня діагоналі A=zeros ((N - 1) * (N - 1), (N - 1) * (N - 1)); B=zeros ((N - 1) * (N - 1), 1); % Праві частини pos11=0; ...