Matlab中复变量的曲线拟合
Curve fitting of complex variable in Matlab
我想解如下图所示的方程组,
矩阵系统
其中矩阵 A 的分量是复数,角度 (theta) 从具有 m 个分区的 0 to 2*pi
和 n = 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最适合α
%5E%7B-1%7D&space;%5Cmathbf%7BR%7D%5E*&space;%5Cmathbf%7BY%7D)
其中

是共轭转置。
在 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
我想解如下图所示的方程组,
矩阵系统
其中矩阵 A 的分量是复数,角度 (theta) 从具有 m 个分区的 0 to 2*pi
和 n = 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