Solving a system of equations without "syms"

Hello!
I have been given the following system of equations that I should solve:
2x1 + 4x2 + 7x3 = 64
3x1 + x2 + 8x3 = 71
-2x = -4
Now, the problem is that I'm on the MatLab Grader platform and it doesn't seem to have this Symbolic Math Tool (i.e. "syms") in it. It only returns the error "Undefined function 'syms' for input arguments of type 'char'."
My code looks like this:
syms x1 x2 x3
equation1 = 2*x1 + 4*x2 + 7*x3 == 64;
equation2 = 2*x1 + 1*x2 + 8*x3 == 71;
equation3 = -2*x1 == -4;
solutionX = solve([equation1, equation2, equation3], [x1, x2, x3]);
SolutionX1 = solution.x1
SolutionX2 = solution.x2
SolutionX3 = solution.x3
Is there any other method I could use instead of using "syms"?
Thank you in advance!

 Réponse acceptée

jeewan atwal
jeewan atwal le 11 Oct 2019

2 votes

A*x = b;
for your case
A = [2 4 7; 2 1 8; -2 0 0];
b = [64;71;-4];
where x = [x1;x2;x3]
solution x can be found using either of two methods as follows:
x = inv(A)*b;
or
x = linsolve(A,b)

4 commentaires

Daniel Miller
Daniel Miller le 11 Oct 2019
Modifié(e) : Daniel Miller le 11 Oct 2019
Hey and thank you for the reply! I'm still fairly new with Matlab so it's not very easy for me to understand, but this seems familiar to me.
So first, I got the three values by writing:
A = [2 4 7; 2 1 8; -2 0 0];
b = [64;71;-4];
x1 = linsolve(A,b)
But now, I should store these values in a column vector. I want the vector to be called x. How should I do this? I tried the following:
A = [2 4 7; 2 1 8; -2 0 0];
b = [64;71;-4];
x1 = linsolve(A,b);
x = [x1]
Does this mean that the solutions of linsolve are now stored in the column vector "x"?
EDIT: I managed to solve this, it was correct! Once again, thank you so much for the help!
Steven Lord
Steven Lord le 11 Oct 2019
DON'T use inv. I know that may be how you were told to solve a linear system in school. In theory, that may be fine. In practice, use the backslash operator (\) instead.
jeewan atwal
jeewan atwal le 11 Oct 2019
If you have any doubt, you are free to ask. Happy to help.
Thankyou Steven Lord for the info.
Daniel Miller
Daniel Miller le 11 Oct 2019
Alright, thanks for the additional heads-up. Don't know how I would've solved this without your help so big appreciations for it!

Connectez-vous pour commenter.

Plus de réponses (2)

GAGANDEEP KAUR
GAGANDEEP KAUR le 2 Nov 2020

0 votes

I also need to determine some variables using syms with solve command but find some issue with syms itself.
Code is like this:
for i=1:9
syms a b c d e ;
%calculating mole fractions of ionic species
x1=[0.5096 0.5092 0.5087 0.4852 0.4847 0.4834 0.4804 0.4805 0.4803];
x2=[0.0963 0.0964 0.0965 0.1163 0.1161 0.1158 0.1275 0.1266 0.1253];
x3=[0.3941 0.3944 0.3948 0.3985 0.3992 0.4008 0.3921 0.3929 0.3943];
T=[394.15 399.15 404.15 375.15 390.15 405.15 374.15 392.15 406.15];
%Equilibrium constant for reaction 1 (Solvation reaction)
K1=exp((-8.549)+(6692/T(i)));
%Equilibrium constant for reaction 2(Ionization of water)
K2=10^(-14);
%Equilibrium constant for reaction 3(Dissociation of HI)
K3=exp((16.93565)+((1250)/T(i))+(-2.575*log(T(i))));
%Equilibrium constant for reaction 4(Polyiodide formation a)
K4=exp((-936.28)+((40216.27)/T(i))+(151.983*(log(T(i))))+(-0.1675*(T(i))));
%Equilibrium constant for reaction 5(Polyiodide formation b)
K5=exp((1044.78)+(-45171.42/T(i))+(-165.20*log(T(i)))+(0.1511*(T(i))));
eqns=[((d*(c-e))/((x1(i)-a-b-c-d)^5)*(x2(i)-d-b-c))==K1,((a+b+c)*a)/((x1(i)-a-b-c-d)^2)==K2,(((a+b+c)*(d+b))/((x1(i)-a-b-c-d)*(x2(i)-d-b-c-e)))==K3,(((a+b+c)*(c-e))/((x1(i)-a-b-c-d)^4*(x2(i)-d-b-c-e)))==K4,(((e)*(x1(i)-a-b-c-d)^3)/((c-e)*(x3(i)-e)))==K5];
S=solve(eqns,a, b, c, d, e)
S.a(S.a<0)=[];
S.b(S.b<0)=[];
S.c(S.c<0)=[];
S.d(S.d<0)=[];
S.e(S.e<0)=[];
S.a=double(S.a);
S.b=double(S.b);
S.c=double(S.c);
S.d=double(S.d);
S.e=double(S.e);
end
A positive response is awaited

Communautés

Plus de réponses dans  Distance Learning Community

Catégories

En savoir plus sur Financial Toolbox dans Centre d'aide et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by