Tutorial:JMathLab/Equations (Nonlinear)
From HandWiki
Nonlinear Equations
"Equation" in the following means the equation expression = 0. Equations are solved for a symbolic variable x by the function solve(expression, x). If expression is a quotient, then nominator = 0 is solved. It uses the following strategy to solve equations:
- Unordered List ItemFirst, all occurrences of the variable x in expression
- are counted, both as free variable and embedded inside functions. Example:
- In x occurs three times: as free
- variable, in and in .
- Unordered List ItemIf this count is one, then we are dealing with a
- polynomic equation, which is solved for the polynomial's main variable,
- e.g. z. This works always, if the polynomial's degree is 2 or of it is
- biquadratic, otherwise only, if the coefficients are constant. In the next
- step the solution is solved for the desired variable x. As an example:
- One can solve for "x". It first solves
- for $z$ and then for "x". Examples with free
- variables:
<jc lang="math"> syms x,b a=solve(x^2-1,x) printf('%f\n',a) a=solve(x^2-2*x*b+b^2,x) printf('%f\n',a) </jc>
An example with function variable ():
<jc lang="math"> syms x a=float( solve(sin(x)^2+2*cos(x)-0.5,x) ) printf('%f\n',a) </jc>
- Unordered List ItemIf count is 2, only one case is further considered: The
- variable occurs free and inside squareroot. This squareroot is then
- isolated, the equation squared and solved. This case leads to additional
- false solutions, which have to be sorted out manually.
<jc lang="math"> syms x y=x^2+3*x-17*sqrt(3*x^2+12); a=solve(y,x) printf('%f\n',a) </jc>