MATLAB 拟合矩阵
MATLAB fitting matrices
我得到了案例P(t) = a * A(t) - b* B(t)
,每个17281x1双打。
现在我想用曲线拟合得到变量a
和b
。
拟合大小写,这里a和b为1和1
我知道 fit
和 fittype
,但在这种情况下它们似乎不起作用。
Any ideas, how to get this solved?
用最小二乘法怎么样?如果我理解正确,您的问题可以表示为
P(t) = [A(t), B(t)] * [a; -b]
.
让[a; -b] = x
、[A(t), B(t)] = Y
和P(t) = P
现在最小二乘解为:
x = ((Y'*Y)^-1)*Y'*P;
在 Matlab 中,您也可以在这种情况下使用 'backslash operator':
x = Y\P;
为此,您可以在此处找到文档:mldivide
作为参考:
希望对您有所帮助。
编辑:
这是我的测试代码:
A = [1;2;3]
B = [4;5;6]
P = [7;8;9]
Y = [A, -B]
disp('------- regular least squares formula -------')
x = ((Y'*Y)^-1)*Y'*P
a = x(1)
b = x(2)
disp('------- mldivide -------')
x = Y\P
a = x(1)
b = x(2)
我得到了案例P(t) = a * A(t) - b* B(t)
,每个17281x1双打。
现在我想用曲线拟合得到变量a
和b
。
拟合大小写,这里a和b为1和1
我知道 fit
和 fittype
,但在这种情况下它们似乎不起作用。
Any ideas, how to get this solved?
用最小二乘法怎么样?如果我理解正确,您的问题可以表示为
P(t) = [A(t), B(t)] * [a; -b]
.
让[a; -b] = x
、[A(t), B(t)] = Y
和P(t) = P
现在最小二乘解为:
x = ((Y'*Y)^-1)*Y'*P;
在 Matlab 中,您也可以在这种情况下使用 'backslash operator':
x = Y\P;
为此,您可以在此处找到文档:mldivide
作为参考:
希望对您有所帮助。
编辑:
这是我的测试代码:
A = [1;2;3]
B = [4;5;6]
P = [7;8;9]
Y = [A, -B]
disp('------- regular least squares formula -------')
x = ((Y'*Y)^-1)*Y'*P
a = x(1)
b = x(2)
disp('------- mldivide -------')
x = Y\P
a = x(1)
b = x(2)