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

44 次查看(过去 30 天)
Benoît
Benoît 2024-11-11,15:43
评论: Benoît 2024-11-11,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 个评论
Bruno Luong
Bruno Luong 2024-11-11,16:09
编辑:Bruno Luong 2024-11-11,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 2024-11-11,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.

请先登录,再进行评论。

采纳的回答

Torsten
Torsten 2024-11-11,18:56
编辑:Torsten 2024-11-11,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 个评论
Benoît
Benoît 2024-11-11,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.

请先登录,再进行评论。

更多回答(0 个)

产品


版本

R2024b

Community Treasure Hunt

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

Start Hunting!

Translated by