Hi there, I am trying to solve a differentiation of long equation. The system shoot me the warning that cannot find a explicit solution. I need the value of X in terms C.

1 Ansicht (letzte 30 Tage)
clc,clear
syms X C
I0=besseli(0,X)
I1=besseli(1,X)
I2=besseli(2,X)
A=(X.*(I1./I0).*((X.^2)-1))+(X.*(I2/I1).*X.^2)
B=(((X.^2)/2).*(I2./I0)).*((2.*((X.^2)-1).*X.^2)-((C./4).^2))
F= 1/2.*((-A) + sqrt((A.^2)-(4.*B)))
Y=diff(F,X)
Y == 0
s=solve(Y)

Akzeptierte Antwort

John D'Errico
John D'Errico am 1 Jun. 2023
I want world peace. Does that mean I can have it? I even need world peace. Still, no good. How about you? You need to solve an equation. The same thing applies. Not every problem has a solution.
In fact, there are infinitely many mathematical problems you can write down that have no solution, and this is surely one of them.
You can use a rootfinder. For example vpasolve or even fzero to find a specific solution for any specific numeric value of C. It may work. It will not find all solutions, since there are likely multiple solutions. But based on your starting value, it should work. However that does not give you a simple formulaic solution, for x as a function of C, and very likely, that is simply not possible.
(Note: In your code, the line Y==0, on its own does NOTHING, except waste CPU cycles.)
  2 Kommentare
Vimal
Vimal am 2 Jun. 2023
Thank you so much for your reply, John. I am very new to Matlab and still in the ealry stages of learning. Thank you for your note as well.
Walter Roberson
Walter Roberson am 2 Jun. 2023
Interestingly you can solve for C in terms of X which is the opposite of what you want.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Bessel functions finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by