Symbolic solution of Transcendental equation

7 Ansichten (letzte 30 Tage)
Andrea Monfredini
Andrea Monfredini am 24 Mär. 2019
Kommentiert: John D'Errico am 24 Mär. 2019
Matlab symbolic toolbox can't seem to solve a "simple" equation in the form of
Cattura.PNG
Here is my code:
syms g l k t;
eq = cos(g*l) + k/t/g*sin(g*l);
[sol, param, cnd] = solve(eq, g, 'ReturnConditions', true);
Even if i substitute numbers to those constants, it can't solve. Is there really impossible to avoid numerical solution?

Antworten (2)

John D'Errico
John D'Errico am 24 Mär. 2019
Bearbeitet: John D'Errico am 24 Mär. 2019
Sorry. Not every equation you might choose to write down on paper has an analytical solution. Some forms arise sufficiently often that someone decides to create a special function that embodies the solution. I can think of a few special functions that fall into that category.
But I don't know of anyone who has done that for your equation, which can be simply rewritten using tan(g*l), nor do I know of an analytical solution. And neither MATLAB or Wolfram Alpha sees a solution, so they agree.
There will be infinitely many solutions in general, depending on the value of those parameters, and if they are real or not. (I assume so.) And you can reduce the problem to something of the general form
tan(x)/x + c = 0
for some fixed value of c. So even though there will be infinitely many solutions, they will not be obtained by adding some simple multiple of pi to gain the next solution. In general, the best you can do in that respect is to show that the consecutive solutions will differ by an amount that approaches pi as a limit.
In fact, I might even wonder if a proof might exist that the problem cannot have an analytical solution involving purely radicals - this due to the trancendental nature of pi. Just a wild guess there.
Lets see, what else? We could probably do something along the lines of a series expansion.
Does this mean you should not publish a paper on the subject? Go for it. ;-)
  2 Kommentare
Andrea Monfredini
Andrea Monfredini am 24 Mär. 2019
Thank you John, you guessed right and probably there is no easy way to get the solution, even simplifying the equation like you suggested. while i wait some pious mathematical soul that drops the analytical solution, i will go for the taylor and numerical way :D
John D'Errico
John D'Errico am 24 Mär. 2019
Personally, I think the name Monfredini/D'Errico for this special function has a nice ring to it. I'll even take second billing on the name. Its been a while since I published, but perhaps The Mathematics of Computation might be a good journal choice for this?
The funny thing is I have seen other people asking for a solution to the same equivalent problem on this site. I'm not sure if it has been homework at times or not.

Melden Sie sich an, um zu kommentieren.


Stephan
Stephan am 24 Mär. 2019
Hi,
try with assumptions:
syms g l k t;
eq = cos(g*l) + k/t/g*sin(g*l) == 0;
assume([g l k t],'real')
assumeAlso([g l k t],'positive')
assumptions
[sol, param, cnd] = solve(eq, 'ReturnConditions', true)
gives:
ass =
[ in(t, 'real'), 0 < g, 0 < k, 0 < l, 0 < t, in(g, 'real'), in(k, 'real'), in(l, 'real')]
sol =
-(k*sin(g*l))/(g*cos(g*l))
param =
Empty sym: 1-by-0
cnd =
~in((g*l)/pi, 'integer') & ~in((g*l)/pi - 1/2, 'integer') & cos(g*l)*sin(g*l) < 0
Best regards
Stephan
  1 Kommentar
Andrea Monfredini
Andrea Monfredini am 24 Mär. 2019
Dear Stephan,
I am not sure how to interpret this result, but unfortunatelly is not exactly what i was looking for. As D'Errico said it seems that the problem is ill-stated to be solved in this manner.
Still i have to thank you for showing me how to restrict the solution space by imposing some assumptions, and you guessed well that all these quantities are real and positive.

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

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

Start Hunting!

Translated by