MATLAB拟合矩阵

MATLAB拟合矩阵,matlab,curve-fitting,function-fitting,Matlab,Curve Fitting,Function Fitting,我得到的例子是p(t)=a*a(t)-b*b(t),每个17281x1都是双倍的 现在,我想使用曲线拟合来获取变量a和b 装配箱,此处a和b为1和1 我知道fit和fittype,但在这种情况下它们似乎不起作用 有什么想法,如何解决这个问题 用最小二乘法怎么样?如果我理解正确,你的问题可以表述为 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; 在Matla

我得到的例子是p(t)=a*a(t)-b*b(t),每个17281x1都是双倍的

现在,我想使用曲线拟合来获取变量
a
b

装配箱,此处a和b为1和1

我知道
fit
fittype
,但在这种情况下它们似乎不起作用

有什么想法,如何解决这个问题


用最小二乘法怎么样?如果我理解正确,你的问题可以表述为
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中,对于这种情况,也可以使用“反斜杠运算符”:

x = Y\P;
为此,您可以在此处找到文档:

作为参考:

我希望这有帮助

编辑:

以下是我的测试代码:

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)

对不起,我调整了我的答案并在我的电脑上尝试了一个小例子,用这种方法我想你应该得到你的解决方案thx,但是如何做
[a;-b]=x
,因为有多个左手边,你可以复制你的代码吗请我刚才用
[a;-b]=x
,这样我就可以替换
[a;-b]
在公式中使用
x
,作为简化,并且因为最小二乘法的解是一个列向量,所以我刚刚命名为
x
。我在答案中添加了测试代码。太好了,很高兴我能帮上忙!