Solving equations involving specific elements of matrices. Is this possible on MATLAB?

1 view (last 30 days)
So lets say I have 2 matrices A and B. I need to solve 2 eqns involving specific elements of each matrix. e.g. A(1)+B(2)=4; A(1)-B(2)=2.
Is there any way to do this? My efforts with Fsolve and solve have failed. Here's what I've done so far:
function F=myfun(A,B)
F=[A(1)-B(2)-2;
A(1)+B(2)-4];
end
In the command window I typed:
>>A=ones(2,2);
>> B=ones(2,2);
>> [A,B]=fsolve(@myfun,A,B)
I even tried
[A(1),B(1)]=fsolve(@myfun,A(1),B(1))
Neither attempt worked.

Answers (1)

Matt J
Matt J on 24 Mar 2014
Edited: Matt J on 24 Mar 2014
Since the equations are linear, you should just use MLDIVIDE
x = [1 -1; 1 +1]\[2;4]
A(1)=x(1);
B(2)=x(2);
  2 Comments
Yagnaseni Roy
Yagnaseni Roy on 24 Mar 2014
This is just a simplified version (kind of a schematic representation) of the set of equations I'm trying to solve which are actually extremely complicated and non-linear!
Matt J
Matt J on 24 Mar 2014
Edited: Matt J on 24 Mar 2014
If you were to solve the linear equations in your example with FSOLVE, it would look like this
function F=myfun(z)
F = [1 -1; 1 +1]*z(:) - [2;4]
end
and then something like,
z=fsolve(@myfun,[1,1]);
If you then want the solution variables, z(i), placed inside specific matrix entries, you are free to do so by direct assignment, e.g.,
A(1,1)=z(1);
B(2,1)=z(2);

Sign in to comment.

Categories

Find more on Systems of Nonlinear Equations 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!