MATLAB Answers


how to solve a system of equations with n equation and m unknown (m>n)?

Asked by nasrin
on 25 Jul 2012
Latest activity Commented on by MJTHDSN
on 12 Apr 2018
to solve this equation "f = a+b θs + c θv cos(φ)" : unknowns are : f, a, b & c i am working on space image and can calculate θs, θv & φ for all pixel of image so i can write a lot of equation. and there are 2 constraint :
How do I solve this system of equations?


Show 1 older comment
to solve this equation "y = a+b x" : unknowns are : y, a & b i can calculate x for all points of interest so i can write a lot of equation...
Do you see a problem here?
Dear nasrin, of course we cannot access the files on your harddisk. Imagine what this would mean!

Sign in to comment.

1 Answer

Answer by Sargondjani on 25 Jul 2012

i think fmincon (constrained optimization) will work best... if you try to minimize some error use as the objective: objective=error^2.
if you dont have the optimization toolbox you can try fminsearchcon from the file exchange (but this only works properly for a couple of variables at most)
note that fmincon can only find one local solution and it requires a continuous function + continuous derivate. if not continuous, then you should try genetic algorithm


my system of equation have n equation and (n+3) unknown (because f vary in each equation) and my constraints are just for "f" and one of two constraint is about the sum of the values obtained for "f" there is not exist "fminsearchcon". and "fminsearch" is unconstrainted function method.
fminsearchcon does exist in the 'file exchange', ie. you have to download it.
Dear Matlabers,
I have a similar question but a little bit confusing. Let`s assume we have 6 equations as below:
EQ1:a{{(L^2)*(Z^2)+(L^2)*(M^2)-2*L*(Z^2)+(Z^2)}}=(L^2)*(T^2)-2*L*(T^2)+ (T^2)-(2*L*T*B)+(T*B)+(B^2)
EQ2: b{{(L^2)*(Z^2)+(L^2)*(M^2)-2*L*(Z^2)+(Z^2)}}=(L^2)*(T^2)+(2*L*T*B)+(B^2)
EQ3: c{{(L^2)*(Z^2)+(L^2)*(M^2)-2*L*(Z^2)+(Z^2)}}=(T^2)+(2*T*B)+(B^2)
EQ4:d{{(L^2)*(Z^2)+(L^2)*(M^2)-2*L*(Z^2)+(Z^2)}}=(L^2)*(T^2)-2*L*(T^2)+ (T^2)-(2*L*T*B)-(T*B)+(B^2)
EQ5: e{{(L^2)*(Z^2)+(L^2)*(M^2)-2*L*(Z^2)+(Z^2)}}=(L^2)*(T^2)-(2*L*T*B)+(B^2)
EQ6: f{{(L^2)*(Z^2)+(L^2)*(M^2)-2*L*(Z^2)+(Z^2)}}=(T^2)-(2*T*B)+(B^2)
in the equations above a,b,c,d,e and f are the numerical known values (0.543 for example). So we have 6 equations with 5 unknowns as L, Z, M, T and B.
Can you please give me cues how to solve the equations to find these unknowns using MATLAB.
Best Regards,

Sign in to comment.