MATLAB拟合矩阵
我得到的例子是p(t)=a*a(t)-b*b(t),每个17281x1都是双倍的 现在,我想使用曲线拟合来获取变量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
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
。我在答案中添加了测试代码。太好了,很高兴我能帮上忙!