Can anyone help me to solve the s in this non-linear equation? 1 + ((24.63/(1​5*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)
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

Accepted Answer

Walter Roberson
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
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))
[-0.066666666666666666666666666666667; -0.00075576078659582664737801303133263]

Sign in to comment.

More Answers (2)

Paul
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
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)?

Sign in to comment.


Ameer Hamza
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.

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!