如果一共就4*4矩阵呢
时间: 2023-10-07 13:14:17 浏览: 25
如果是 $4\times 4$ 的矩阵,可以使用以下代码进行求解泊松方程:
```matlab
clear all;clc;
% 定义问题参数
N = 4; % 离散点数
h = 1/(N-1); % 离散步长
x = linspace(0, 1, N); % 网格点坐标
y = linspace(0, 1, N);
[X,Y] = meshgrid(x,y);
f = sin(pi*X).*sin(pi*Y); % 右端项
u_exact = -1/(2*pi^2)*sin(pi*X).*sin(pi*Y); % 精确解
u = zeros(N,N); % 数值解
% 进行迭代求解
tol = 1e-6; % 收敛精度
err = tol + 1; % 初始误差
while err > tol
u_old = u; % 保存上一次的数值解
% 迭代计算数值解
for i = 2:N-1
for j = 2:N-1
u(i,j) = (u(i+1,j) + u(i-1,j) + u(i,j+1) + u(i,j-1) - h^2*f(i,j))/4;
end
end
% 计算误差
err = max(max(abs(u - u_old)));
end
% 绘制数值解和精确解
figure(1);
surf(X,Y,u);
xlabel('X');
ylabel('Y');
zlabel('U');
title('Numerical solution');
figure(2);
surf(X,Y,u_exact);
xlabel('X');
ylabel('Y');
zlabel('U');
title('Exact solution');
% 计算数值解和精确解的误差
err = max(max(abs(u - u_exact)));
fprintf('The maximum error between numerical solution and exact solution is %.6f.\n', err);
```
该程序与上面的程序类似,只是将离散点数改为了 $4$,并且省略了边界条件的处理。程序运行后可以得到数值解和精确解的图像,以及两者的误差。