Solving linear systems in Matlab
3 views (last 30 days)
Show older comments
How do I solve for x in u = A(x+b)? A is a matrix, and the other terms are vectors. Isn't it something like x = A\u - b ? I'm not sure about subtracting the b term, however.
1 Comment
Bruno Luong
on 24 Aug 2023
Edited: Bruno Luong
on 24 Aug 2023
In some sense x = A\u - b is the worse you can pick.
Accepted Answer
Torsten
on 24 Aug 2023
Edited: Torsten
on 24 Aug 2023
x = A\(u-A*b)
But it's the same as
x = A\u - b
1 Comment
Bruno Luong
on 24 Aug 2023
Edited: Bruno Luong
on 24 Aug 2023
Is it?
A=rand(3,4);
b=rand(4,1);
u=rand(3,1);
% 4 different solutions
x1=A\(u-A*b)
x2=A\u-b
x3=lsqminnorm(A,u)-b
x4=lsqminnorm(A,u-A*b)
% All give the same "fitness"
A*x1-u
A*x2-u
A*x3-u
A*x4-u
norm(x1)
norm(x2)
norm(x3)
norm(x4) % always the smallest
More Answers (1)
Steven Lord
on 24 Aug 2023
Define a new variable y such that y = x+b.
Using this new variable simplifies your system to u = A*y.
Solve this simplified system for y using the backslash operator, y = A\u.
Substituing into that solution using the definition of y, we know x+b = A\u.
Subtract b from both sides to get x = (A\u)-b.
0 Comments
See Also
Categories
Find more on Mathematics and Optimization in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!