如何在MATLAB中找到最能逼近3维数据的平面方程?

问题描述

我在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'); 

您可以看到情节如下:

enter image description here

您如何找到近似于该数据的平面方程(即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');

enter image description here