您如何在 MATLAB 中找到最接近 3 维数据的平面方程?
How do you find an equation of a plane that best approximates 3 dimensional data in MATLAB?
我在 MATLAB 中有以下 3 维数据:
tau = [6e-9 30e-12 6e-9 30e-12];
E=[1e-3 50e-6 .01 1e-3];
k=[6.93774E-08 1.23666E-08 4.45261E-08 1.90789E-08];
plot3(tau, E, k,'*'); xlabel('tau (s)'); ylabel('Energy (J)'); zlabel('k');
你可以看到情节是这样的:
你如何找到近似此数据的平面方程(即 k 是 tau 和 E 的函数,所以我正在寻找最适合数据的 k(tau,E) = 的公式在最小二乘意义上。)。
有没有在 MATLAB 中执行此操作的简单方法?
你可以做一个简单的最小二乘法求解:
tau = [6e-9 30e-12 6e-9 30e-12];
E = [1e-3 50e-6 .01 1e-3];
k = [6.93774E-08 1.23666E-08 4.45261E-08 1.90789E-08];
A = [tau; E; ones(size(E))]';
b = k';
beta = A\b;
[X, Y] = meshgrid(linspace(min(tau), max(tau), 20),...
linspace(min(E), max(E), 20));
Z = beta(1)*X + beta(2)*Y + beta(3);
plot3(tau, E, k,'o', 'markerfacecolor', 'b');
xlabel('tau (s)'); ylabel('Energy (J)'); zlabel('k'); hold on;
mesh(X, Y, Z, 'edgecolor', 'k');
我在 MATLAB 中有以下 3 维数据:
tau = [6e-9 30e-12 6e-9 30e-12];
E=[1e-3 50e-6 .01 1e-3];
k=[6.93774E-08 1.23666E-08 4.45261E-08 1.90789E-08];
plot3(tau, E, k,'*'); xlabel('tau (s)'); ylabel('Energy (J)'); zlabel('k');
你可以看到情节是这样的:
你如何找到近似此数据的平面方程(即 k 是 tau 和 E 的函数,所以我正在寻找最适合数据的 k(tau,E) = 的公式在最小二乘意义上。)。
有没有在 MATLAB 中执行此操作的简单方法?
你可以做一个简单的最小二乘法求解:
tau = [6e-9 30e-12 6e-9 30e-12];
E = [1e-3 50e-6 .01 1e-3];
k = [6.93774E-08 1.23666E-08 4.45261E-08 1.90789E-08];
A = [tau; E; ones(size(E))]';
b = k';
beta = A\b;
[X, Y] = meshgrid(linspace(min(tau), max(tau), 20),...
linspace(min(E), max(E), 20));
Z = beta(1)*X + beta(2)*Y + beta(3);
plot3(tau, E, k,'o', 'markerfacecolor', 'b');
xlabel('tau (s)'); ylabel('Energy (J)'); zlabel('k'); hold on;
mesh(X, Y, Z, 'edgecolor', 'k');