Solve an equation and get a solution that depends on a variable
2 views (last 30 days)
Show older comments
Hi everyone! I need some help with getting a solution to a equation. I am trying to solve a equation using solve. However i dont get any solution to the equation, i only get Empty sym: 0-by-1. I can solve the equation manually, the problem is that i have other equation that i cant solve manually and would like a better way to solve them. Is there any good way to solve a equation and get a solution that has a dependent variable in return. Here is what i have tried so far.
syms Nin(t)
% Vin = (sign(t - 200/11)/2 + 1/2)*((11*t)/100000 - 1/500) - (11*t)/100000 + 1/500
eq1 = Nin == Constant * Vin;
sol = solve(eq1, t);
sol -> Empty sym: 0-by-1
Manually
Nin = Constant * Vin;
-> Nin = Constant * (sign(t - 200/11)/2 + 1/2)*((11*t)/100000 - 1/500) - (11*t)/100000 + 1/500
Any guidance is appreciated.
4 Comments
Answers (1)
Walter Roberson
on 28 Mar 2020
syms Nin(t)
% Vin = (sign(t - 200/11)/2 + 1/2)*((11*t)/100000 - 1/500) - (11*t)/100000 + 1/500
eq1 = Nin == Constant * Vin;
sol = solve(eq1, t);
That code requests that an unknown function, Nin(t) be compared to Constant times an expression in t, and that the result be solved for the t that makes the two sides equal. The result would implicitly be of the form
t = some function of Nin(t) and Constant * Vin
except it cannot be, because the right hand side of solving for t cannot contain t, but it must because Nin(t) is an unknown function of t.
Therefore solve() must fail.
Nin = Constant * Vin;
-> Nin = Constant * (sign(t - 200/11)/2 + 1/2)*((11*t)/100000 - 1/500) - (11*t)/100000 + 1/500
That is not a solution for t, it would simply make the two sides of eqn1 the same as each other, in which case solving for t would have to give all t.
0 Comments
See Also
Categories
Find more on Equation Solving 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!