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

1 Ansicht (letzte 30 Tage)
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.

Antworten (1)

Matt J
Matt J am 24 Mär. 2014
Bearbeitet: Matt J am 24 Mär. 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 Kommentare
Yagnaseni Roy
Yagnaseni Roy am 24 Mär. 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 am 24 Mär. 2014
Bearbeitet: Matt J am 24 Mär. 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);

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Systems of Nonlinear Equations finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by