Matlab中复变量的曲线拟合

Curve fitting of complex variable in Matlab

我想解如下图所示的方程组,

矩阵系统

其中矩阵 A 的分量是复数,角度 (theta) 从具有 m 个分区的 0 to 2*pin = 9 开始。已知值z = x + iy.假设矩阵z的x和y为

z =

     0    1.0148
0.1736    0.9848
0.3420    0.9397
0.5047    0.8742
0.6748    0.8042
0.8419    0.7065
0.9919    0.5727
1.1049    0.4022
1.1757    0.2073
1.1999         0
1.1757   -0.2073
1.1049   -0.4022
0.9919   -0.5727
0.8419   -0.7065
0.6748   -0.8042
0.5047   -0.8742
0.3420   -0.9397
0.1736   -0.9848
     0   -1.0148

你如何迭代解决它们?请注意,所需常量的第一个分量的值必须等于 1。我正在使用 Matlab。

您可以为复杂值数据申请simple multilinear regression

第 1 步。为线性回归准备好矩阵

你的线性系统

不用矩阵写成

重新排列的结果

如果你用矩阵重写它你会得到

步骤 2. 应用多元线性回归

设上面的系统为

哪里

现在您可以应用线性回归,当

时returns最适合α

其中

共轭转置


在 MATLAB 中

Y = Z - A(:,1);             % Calculate Y subtracting the first col of A from Z
R = A(:,:); R(:,1) = [];    % Calculate R as an exact copy of A, just without first column
Rs = ctranspose(R);         % Calculate R-star (conjugate transpose of R)
alpha = (Rs*R)^(-1)*Rs*Y;   % Finally apply multiple linear regression
alpha = cat(1, 1, alpha);   % Add alpha1 back, whose value is 1

或者,如果您更喜欢 built-ins,请查看 regress 函数:

Y = Z - A(:,1);             % Calculate Y subtracting the first col of A from Z
R = A(:,:); R(:,1) = [];    % Calculate R as an exact copy of A, just without first column
alpha = regress(Y, R);      % Finally apply multiple linear regression
alpha = cat(1, 1, alpha);   % Add alpha1 back, whose value is 1