Regularized SVD to find the least square solution

7 ビュー (過去 30 日間)
PNainwal
PNainwal 2023 年 9 月 2 日
コメント済み: Rondall 2024 年 3 月 17 日
Hi all,
I am required to find a least square solution of system of linear equation (Ax = b) where the system is overdetermined. I notice that when i write A= vpa(A, 128) i get the full column rank whereas without vpa it is rank deficient matrix. I have used couple of mehods to solve this e.g
1 - x = A\b
2 - x = (A'*A\A'*b) ( produces the best ans so far but not perfect )
3 - x = pinv(double(A))*double(b)
4 - x = lsqminnorm(double(A'*A), double(A'*b))
but none of them seems to produce the solution i am wishing for. Kindly tell me other efficient ways of producing least square solution or let me know if i am going wrong.
  2 件のコメント
Bruno Luong
Bruno Luong 2023 年 9 月 2 日
The code you cited none of them is regularized.
PNainwal
PNainwal 2023 年 9 月 2 日
So how can i can achieve that ? Is there a matlab function which does so ?Thanks

サインインしてコメントする。

採用された回答

Bruno Luong
Bruno Luong 2023 年 9 月 2 日
移動済み: Bruno Luong 2023 年 9 月 2 日
There is no MATLAB function that I'm aware of, you can build your own or look in file exchange, there are few posted there.
The most basic Tikhonov regularization can be achieve with
lambda = something;
[m,n] = size(A)
x = [A; sqrt(lambda)*eye(n)] \ [b; zeros(n,1)]
  1 件のコメント
PNainwal
PNainwal 2023 年 9 月 2 日
移動済み: Dyuman Joshi 2023 年 9 月 2 日
Okay ! Thank you so much for reply.

サインインしてコメントする。

その他の回答 (1 件)

Rondall
Rondall 2024 年 3 月 16 日
The new routine, ARLS, is for just such problems.
  2 件のコメント
Bruno Luong
Bruno Luong 2024 年 3 月 17 日
編集済み: Bruno Luong 2024 年 3 月 17 日
R2023B
try
ARLS()
catch
arls()
end
Unrecognized function or variable 'arls'.
Rondall
Rondall 2024 年 3 月 17 日
Sorry.... I foolishly misspoke.... ARLS is available from File Exchange.... just seach F.E. for it.
It's NOT a built in function. My apologies.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeSpline Postprocessing についてさらに検索

製品


リリース

R2022a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by