Can anyone help me to solve the s in this non-linear equation? 1 + ((24.63/(15*s+1))*(2.73+(2.73/1338.17*s))*(1.797/(1323.17*s+1))*(0.123*exp(-50*s))) = 0
1 view (last 30 days)
Show older comments
Eunice Ho
on 4 Nov 2020
Commented: Walter Roberson
on 6 Nov 2020
Can anyone help me to solve the s in this non-linear equation in matlab?
1 + ((24.63/(15*s+1))*(2.73+(2.73/1338.17*s))*(1.797/(1323.17*s+1))*(0.123*exp(-50*s))) = 0
0 Comments
Accepted Answer
Walter Roberson
on 4 Nov 2020
There is no solution.
There is a discontinuity to zero at about -0.0667. To the left of that it drops and then rises quickly again, but the minima at about -0.0901 is about +32 -- no zero crossing
Between about -0.0667 and -0.001 it rises from below zero to a maximum and descends again, but the peak at -0.01516188444 is -1.153822286 -- no zero crossing
There is a discontinuity at about -0.001 . To the right of that it descends from infinity, but the limit at infinity is about +1 -- no zero crossing.
4 Comments
Walter Roberson
on 5 Nov 2020
Edited: Walter Roberson
on 5 Nov 2020
f = @(s) 1 + ((24.63./(15*s+1)).*(2.73+(2.73/1338.17*s)).*(1.797./(1323.17*s+1)).*(0.123*exp(-50*s)));
fplot(f, [-1/10 1/10]); grid on; ylim([-10 50])
syms s
[n, d] = numden(f(s));
poles = vpa(solve(d)); disp(char(poles))
More Answers (2)
Paul
on 5 Nov 2020
Are complex values of s allowed? If so, there might be some solutions. For example:
>> f
f =
function_handle with value:
@(x)1+((24.63./(15*x+1)).*(2.73+(2.73./1338.17*x)).*(1.797./(1323.17*x+1)).*(0.123*exp(-50*x)))
>> z{:}(end-1:end)
ans =
-8.492914026674890e-03 + 1.721400052033992e-02i
-8.492914026674890e-03 - 1.721400052033992e-02i
>> f(z{:}(end-1:end))
ans =
-8.881784197001252e-16 + 1.110223024625157e-15i
-8.881784197001252e-16 - 1.110223024625157e-15i
These solutions were generated by replacing exp(-50*s) with an approximation. Are they close enough to zero? There might be other approximate solutions, but I didn't do an exhaustive search.
4 Comments
Paul
on 6 Nov 2020
Eunice,
Here's the code I used.
>> s=tf('s');
>> sys = 1 + ((24.63/(15*s+1))*(2.73+(2.73/1338.17*s))*(1.797/(1323.17*s+1))*(0.123*exp(-50*s)));
>> [z,p,k]=zpkdata(pade(sys,8));
>> f = @(x) 1 + ((24.63./(15*x+1)).*(2.73+(2.73./1338.17*x)).*(1.797./(1323.17*x+1)).*(0.123*exp(-50*x)));
>> z{:}
ans =
-4.2930e-01 + 1.8755e-01i
-4.2930e-01 - 1.8755e-01i
-1.7052e-01 + 2.9528e-01i
-1.7052e-01 - 2.9528e-01i
-8.4850e-02 + 2.4004e-01i
-8.4850e-02 - 2.4004e-01i
-6.0551e-02 + 1.1728e-01i
-6.0551e-02 - 1.1728e-01i
-8.4929e-03 + 1.7214e-02i
-8.4929e-03 - 1.7214e-02i
>> f(z{:})
ans =
-4.8720e+06 - 6.6330e+06i
-4.8720e+06 + 6.6330e+06i
3.6292e+01 + 2.9730e+00i
3.6292e+01 - 2.9730e+00i
1.5887e-01 - 1.2871e-01i
1.5887e-01 + 1.2871e-01i
-1.2327e-05 + 3.7401e-06i
-1.2327e-05 - 3.7401e-06i
-8.8818e-16 + 1.1102e-15i
-8.8818e-16 - 1.1102e-15i
If you increase the order of Pade approximant, the next two zeros start to converge. Having said that vpasolve is defniitely the better way to go. I was just trying to easily demonstrate that complex solutions exist.
Walter,
Did vpasolve find the solutions I posted? Does vpasolve not return conjugate solutions (I checked your first answer; it is a solution and so is its conjugate)?
Ameer Hamza
on 4 Nov 2020
Your equation does not have a solution (atleast for real numbers). You can look at its plot
f = @(s) 1 + ((24.63/(15*s+1))*(2.73+(2.73/1338.17*s))*(1.797/(1323.17*s+1))*(0.123*exp(-50*s)));
sv = 0:0.1:10000;
fv = zeros(size(sv));
for i = 1:numel(sv)
fv(i) = f(sv(i));
end
plot(sv, fv)
It seems to have an asymptotic value of 1.
See Also
Categories
Find more on Loops and Conditional Statements in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!