Empty sym: 0-by-1 : Don't understand why

44 views (last 30 days)
Benoît
Benoît on 11 Nov 2024 at 15:43
Commented: Benoît on 11 Nov 2024 at 19:29
Hi,
I have the following problem :
I would like to solve this equation system but matlab doesn't find any solutions by sending the following message : Empty sym: 0-by-1
Do i need to adapt the code in a certain way or this system really doesn't have any solutions ?
Thank you for your help.
Regards,
Benoit
  2 Comments
Bruno Luong
Bruno Luong on 11 Nov 2024 at 16:09
Edited: Bruno Luong on 11 Nov 2024 at 18:31
Why there is the comma?
3,981
Post your code (using Insert a Line of Code button) not the screen shot
Walter Roberson
Walter Roberson on 11 Nov 2024 at 18:15
The comma is causing the problem. You are effectively creating four equations,
3
981==EXPRESSION
10*pi==EXPRESSION
6283185.307==EXPRESSION
The first of those expressions, 3, cannot be solved to be equal to zero, so the solve() fails.

Sign in to comment.

Accepted Answer

Torsten
Torsten on 11 Nov 2024 at 18:56
Edited: Torsten on 11 Nov 2024 at 19:20
I multiplied by the denominators and squared to get rid of the square roots.
Your system seems to have 4 (complex-valued) solutions.
syms Cs C2 Rl
R1 = 1000;
gm = 10;
eqns = [3.981*(gm*(2*Rl*C2+R1*Cs)+Cs) == gm*Rl*Cs*(1-gm*R1),...
(10*pi*(gm*(2*Rl*C2+R1*Cs)+Cs))^2==2*gm*Rl*C2*Cs*(gm*R1+1),...
6283185.307^2*(Rl*C2*Cs*(1+R1*gm))==2*gm];
S = solve(eqns,[Cs C2 Rl]);
format long
double(S.Cs)
ans =
1.0e-09 * 0.005065552626999 + 0.318237745447037i -0.005065552626999 - 0.318237745447037i 0.005065552626999 - 0.318237745447037i -0.005065552626999 + 0.318237745447037i
double(S.C2)
ans = 4×1
1.0e-04 * -0.125571466971436 0.125571466971436 -0.125571466971436 0.125571466971436
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
double(S.Rl)
ans =
-0.000201720156037 + 0.012672845866091i -0.000201720156037 + 0.012672845866091i -0.000201720156037 - 0.012672845866091i -0.000201720156037 - 0.012672845866091i
eqns_orig = [3.981 == gm*Rl*Cs*(1-gm*R1)/(gm*(2*Rl*C2+R1*Cs)+Cs),...
10*pi==(2*gm*Rl*C2*Cs*(gm*R1+1))^(1/2)/(gm*(2*Rl*C2+R1*Cs)+Cs),...
6283185.307==(2*gm/(Rl*C2*Cs*(1+R1*gm)))^(1/2)];
for i = 1:4
double(subs(eqns_orig,[Cs C2 Rl],[S.Cs(i) S.C2(i) S.Rl(i)]))
end
ans = 1×3
0 0 0
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
ans = 1×3
0 0 0
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
ans = 1×3
0 0 0
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
ans = 1×3
0 0 0
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
  1 Comment
Benoît
Benoît on 11 Nov 2024 at 19:29
Thank for your answer.
It is now solving the system but i shouldn't be obtaining complex solutions so i think there is a problem in my equations.
But thanks for the correction.

Sign in to comment.

More Answers (0)

Products


Release

R2024b

Community Treasure Hunt

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

Start Hunting!