Solving system of 3 non-linear equations.

84 次查看(过去 30 天)
Hello, I'm trying to solve a system of equations using matlab.
The three variables are: xo2, xo, xar
I've entered the equations in as follows:
syms xo2 xo xar
eq1 = xo2 +xo +xar = 1
eq2 = 2*xo2 +xo -4*xar = 0
eq3 = 2.063E-4*xo2 = xo^2
Then, to solve the system for the variable xo I typed:
solve('eq1', 'eq2', 'eq3', xo)
and I get this message: Warning: Explicit solution could not be found.
What am I doing wrong? I'm fairly ceratain that this system is solvable.
is it because I am using symbolic algebra? For hte problem that I am solving, I dont need a general expression for the value, I just need a number.
  2 个评论
YARA NABA
YARA NABA 2019-3-10
移动:Dyuman Joshi 2024-4-4
syms x y z
eq1=exp(x)+sqrt(y)-z.^3-2
eq2=x.^2-y-z-5
eq3=x+exp(y-1)+z-7
sol=solve(eq1,eq2,eq3)
sol
how can i rewrite it
darova
darova 2019-3-10
移动:Dyuman Joshi 2024-4-4
What it is wrong with it?

请先登录,再进行评论。

采纳的回答

Oleg Komarov
Oleg Komarov 2011-2-13
Rewrite as:
syms xo2 xo xar
eq1 = xo2 +xo +xar - 1;
eq2 = 2*xo2 +xo -4*xar;
eq3 = 2.063E-4*xo2 - xo^2;
sol = solve(eq1,eq2,eq3);
sol.xo
Oleg
  3 个评论
Adithya Valavi
Adithya Valavi 2020-3-24
Plz tell me if you knew how to solve this equations
Christopher Creutzig
Adithya Valavi, did you try vpasolve?
It's usually a good idea to post a new problem in a new question, rather than adding a comment to something related.

请先登录,再进行评论。

更多回答(3 个)

Pierce Brady
Pierce Brady 2011-3-30
the output class will be syms, so try casting the answer to a double
class(ans)
double(ans)
class(ans)

Pier Giorgio Petrolini
I hope it can be already helpfull...
syms x y z
eq1=exp(x)+sqrt(y)-z.^3-2
eq2=x.^2-y-z-5
eq3=x+exp(y-1)+z-7
eqs = [eq1, eq2, eq3]
[x,y,z]=vpasolve(eqs,[x,y,z])
% Reported results
x = -2.8;
y = 3.33;
z = -0.48;
  1 个评论
Stephen Ofori
Stephen Ofori 2023-1-13
This is also working, but the approximations makes it unsuitable for solutions where very small errors are required. If your work require minimal error then it is better to use the solve or fsolve.

请先登录,再进行评论。


Tushar
Tushar 2011-2-13
Ah thanks, excellent.
Now the only problem is that when I use your code, matlab spits out a crazy number like this:
ans =
- 2995371679198674497313343284804110513^(1/2)/147573952589676412928 - 12685211008020935/147573952589676412928
how do I get it to something more readable.. like scientific notation or something

类别

Help CenterFile Exchange 中查找有关 Symbolic Math Toolbox 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by