im trying to solve a system of 4 nonlinear equations with 4 unknowns

7 ビュー (過去 30 日間)
joshua payne
joshua payne 2022 年 11 月 23 日
コメント済み: Alex Sha 2022 年 11 月 27 日
clc
clear all
f= @(x) [x(1)+.17*x(1)-x(2)-x(3)-x(4); (((x(3)^(1/2))*x(4))/x(2))-.465797; 2*x(1)-2*x(2)-2*x(3)-x(4); 2*(.17*x(1))-x(2)-x(4)]
s=fsolve(f, [2,2,1,1])
it says it stops prematurely.
im also not sure how to plot these equations to see where my geusses should be

回答 (2 件)

Torsten
Torsten 2022 年 11 月 23 日
Equations (1), (3) and (4) give x(2) = 0. Thus it's impossible to satisfy equation (2) where x(2) is in the denominator.
syms x1 x2 x3 x4
f1 = x1+.17*x1-x2-x3-x4 == 0
f1 = 
f2 = 2*x1-2*x2-2*x3-x4 == 0
f2 = 
f3 = 2*0.17*x1-x2-x4 == 0
f3 = 
sol = solve([f1,f2,f3],[x1 x2 x4])
sol = struct with fields:
x1: (100*x3)/83 x2: 0 x4: (34*x3)/83

John D'Errico
John D'Errico 2022 年 11 月 23 日
x = sym('x',[1,4])
x = 
eq1 = x(1)+.17*x(1)-x(2)-x(3)-x(4) == 0
eq1 = 
eq2 = (((x(3)^(1/2))*x(4))/x(2))-.465797 == 0
eq2 = 
eq3 = 2*x(1)-2*x(2)-2*x(3)-x(4) == 0
eq3 = 
eq4 = 2*(.17*x(1))-x(2)-x(4) == 0
eq4 = 
So you have 3 linear equations, and one nonlinear. Does a solution exist? We might ask solve, since this is a pretty simple system.
solve(eq1,eq2,eq3,eq4)
ans = struct with fields:
x1: [0×1 sym] x2: [0×1 sym] x3: [0×1 sym] x4: [0×1 sym]
So solve found no solution.
vpasolve(eq1,eq2,eq3,eq4)
ans = struct with fields:
x1: [0×1 sym] x2: [0×1 sym] x3: [0×1 sym] x4: [0×1 sym]
Even vpasolve fails to find a solution.
Equations 1, 3, and 4 are called a homogeneous linear system, although we only have 3 equations in those 4 unknowns. I'll convert them to a matrix form, thus..
[A,b] = equationsToMatrix([eq1,eq3,eq4])
A = 
b = 
We can recover the original equations by a matrix multiply, thus:
A*x.' == b
ans = 
Clearly x1=x2=x3=x4=0 is a solution to that subset of equations. Does a non-trivial solution exist? Yes. It comes from the function null.
Anull = null(A)
Anull = 
So we have that x = Anull, or any multiple of that vector is a solution to the homogeneous linear part of your problem. Now, return to eq2. Do you see the problem?
eq2
eq2 = 
The ONLY solution to those three equations has x2 == 0. But in eq2, we divide by x2.
Therefore, NO solution can possibly exist for this system of equations.
  1 件のコメント
Alex Sha
Alex Sha 2022 年 11 月 27 日
1: Approximate numerical solution
x1: 4.59039465606019E-13
x2: 1.70124596189725E-20
x3: 4.79191761335149E-13
x4: 1.14474596953164E-14
Feval:
F1 = 4.64369367161173E-14
F2 = 1.11022302462516E-15
F3 = -5.17520851784955E-14
F4 = 1.4462594159827E-13
2: making some transformation for 2nd equation:
(((x3^(1/2))*x4)/x2)-.465797=0
equivalence transformed into:
(((x3^(1/2))*x4))-.465797*x2=0
then the solution will be:
x1: 0
x2: 0
x3: 0
x4: 0

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeMathematics についてさらに検索

タグ

製品


リリース

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by