0

我得到了 x、y 和 z 的数据。我正在尝试将一组数据拟合到功能形式的模型中,如下所述:

z(x, y) = c0*x^o*y2 + c1*x^1*y^1 + c2 *x^2*y^1

其中 c0, c1, c2 是要找到的系数。我的尝试是使用 nlinfit 函数来解决它。

到目前为止我已经尝试过

x= [ 0.001, .. 0.011];

y = [1, .. 10];

z = [ -.304860225 .. .379710865]; 

my_model= c0 * x^0 * y^2 + c1 * x^1 * y^1 + c2 * x^2 * y^0

[c0 c1 c2] = [1 2 3];

C= nlinfit( [x,y], z, @ my_model, [1 2 3])

这里xy是自变量,z是因变量。如何为系数设置这些初始值?我不确定如何在nlinfit函数中传递参数。帮助!!!

4

1 回答 1

2

您的模型是 LINEAR wrtc0和。没有理由在这里使用。c1c2nlfit

您需要为您的数据构造一个Vandermonde 矩阵x y并使用反斜杠来恢复系数。

从您的问题来看,模型是什么并不是 100% 清楚,所以我假设:

z(x,y) = c0 * x^nx0 * y^ny0 + c1 * x^nx1 * y^ny1 + c2 * x^nx2 * y^ny2

, nx0, nx1, nx2,ny0和给定的ny1ny2已知的先验。

给你m点,即一个m-vectors xy并且z你希望对这三个-vectors 进行优化c0 c1和给出。c2m

该模型的 Vandermonde 矩阵为

V = [ ( x(:).^nx0 ).*( y(:).^ny0 ),  ( x(:).^nx1 ).*( y(:).^ny1 ),  ( x(:).^nx2 ).*( y(:).^ny2 ) ];

现在请注意,您的模型是 LINEAR: V*c = zfor the right c = [c0; c1; c2]

恢复c(在最小二乘意义上)

c = V \ z
于 2013-10-06T07:00:20.727 回答