Solving system of equations
現在この質問をフォロー中です
- フォローしているコンテンツ フィードに更新が表示されます。
- コミュニケーション基本設定に応じて電子メールを受け取ることができます。
エラーが発生しました
ページに変更が加えられたため、アクションを完了できません。ページを再度読み込み、更新された状態を確認してください。
古いコメントを表示
Hi expert,
May I ask your suggestion on how to solve the following matrix system,

where the component of the matrix A is complex numbers with the angle (theta) runs from 0 to 2*pi, and n = 9. The known value z = x + iy = re^ia, is also complex numbers as such, r = sqrt(x^2+y^2) and a = atan (y/x)
Suppose matrix z is as shown below,
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
How do you solve the system of equations above i.e. to find the coefficient of matrix alpha. I tried using a simple matrix manipulation X = inv((tran(A)*A))*tran(A)*z, but I cannot get a reasonable result.
I would expect the solution i.e. components of matrix alpa to be a real numbers.
採用された回答
What do the two columns of z mean? Is the 2nd column supposed to be the imaginary part of z? If so,
Z=complex(z(:,1),z(:,2));
X = A\Z
11 件のコメント
Hi Matt,
The column of z means the x and y component of the z = x + i*y i.e. z is a complex numbers.
I tried the same approach as you suggested, but somethow when I back calculate z from the (now) known A and matrix alpha, I could not get it even close to z.
In that, I expext the solution of X could gives a minimum error to z.
X is definitely the minimum least square fit of Z (assuming there are no other constraints that you haven't yet mentioned). It might be a bad fit, but it is the best fit, given your data.
John BG
2018 年 1 月 2 日
to 'give a minimum error to z' you may want to consider
abs(z)
instead.
Matt J
why is this answer accepted if BeSet writes not yet agreeing with result?
@John BG: After your many discussions about accepting answers, you should know, that only the OP can do this in the first week after asking. Therefore there is no reason to ask Matt J, why the OP BeSet has accepted the answer.
@John BG:
As Jan said, I have no control over the accept-status of the answer. It is conceivable, however, that the OP posted initial doubts about the answer, but later resolved them and accept-clicked.
BeeTiaw
2018 年 2 月 16 日
Hi All,
Sorry for my delayed response. I mistakenly and did not realize that I have clicked "accept" earlier which apparently has caused confusion in this thread. Sorry. I have unchecked the "accept".
Back to my earlier post.
Suppose now I want to set the value of "alpha_0", i.e. the first component of the desired constants, equals 1, how do I solve the problem iteratively? Can we use the "fit" function within Matlab?
Matt J
2018 年 2 月 16 日
Why iteratively when you can do it analytically?
Thanks for your prompt response.
Because the first component must equal to 1, then I would expect the problem can only be solved iteratively? Isn't it?
Unless you know how to solve them analytically, I would be happy to use the method.
Below is the system that I want to solve (slightly modified from the original post)

Where the angle (theta) runs from 0 to 2*pi which has m divisions, and n = 9.
Notice that the value of the first component of the desired constants must equal 1.
The known value z = x + iy = re^ia, is also complex numbers as such, r = sqrt(x^2+y^2) and a = atan (y/x)
Suppose matrix z is as shown below,
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
I am trying to use the following function,
https://uk.mathworks.com/help/optim/ug/lsqlin.html#inputarg_C
but it seems that it only works for integer while my case involves complex number.
Matt J
2018 年 2 月 17 日
If the first value is 1, then this just leads to a mild modification of my initial proposal,
zc=complex(z(:,1),z(:,2));
alpha=A(:,2:end)\(zc-A(:,1))
This solves for the unknown alpha (alpha2,...,alphaN).
Jan
2019 年 4 月 25 日
@BeeTiaw: Which code do you consider as correct? What does "it seems that I have not got the right answer" mean? Which answer from which code to which input is meant here?
その他の回答 (0 件)
カテゴリ
ヘルプ センター および File Exchange で Linear Algebra についてさらに検索
参考
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
