Ergebnis enthält "oder"

Ich erhalte
eqn(x) = y(x) == 0 | y(x)*diff(y(x), x, x) + diff(y(x), x)^2 == 0
Wie kann ich auf zweite Bedingung zugreifen?

3 comentarios

Dyuman Joshi
Dyuman Joshi el 8 de Nov. de 2023
How do you get this particular expression?
Artur Walter
Artur Walter el 10 de Nov. de 2023
I typed
f = y(x)^2 * (diff(y(x), x))^2
eqn = functionalDerivative(f,y) == 0
Dyuman Joshi
Dyuman Joshi el 22 de Nov. de 2023
@Artur Walter, see my answer below.

Iniciar sesión para comentar.

Respuestas (2)

Dyuman Joshi
Dyuman Joshi el 16 de Nov. de 2023

1 voto

syms y(x)
f = y(x)^2 * (diff(y(x), x))^2;
eqn = functionalDerivative(f,y) == 0;
%Get the equation mentioned in the question description by using simplify()
eqn = simplify(eqn)
eqn(x) = 
%Children of the expression
z = children(eqn)
z = 1×2 cell array
{[y(x) == 0]} {[y(x)*diff(y(x), x, x) + diff(y(x), x)^2 == 0]}
%Access the second condition
condition2 = z{2}
condition2 = 
Aiswarya
Aiswarya el 16 de Nov. de 2023

0 votos

Hallo, ich würde die Frage auf Englisch beantworten.
(Hi,
I would be answering the question in English)
I understand that on equating a differential expression to zero, you obtained a conditional expression as a result.
The result obtained from the 'functionalDerviative' is a symbolic function and there is no direct way to just extract the second part of the "or" expression. However you can access the second condition by assuming condition for 'y' as shown in the following image.
You can use the assume function (https://www.mathworks.com/help/symbolic/sym.assume.html) to set non zero condition for y. And then simplify the equation to obtain just the second condition.

Productos

Versión

R2023b

Etiquetas

Preguntada:

el 8 de Nov. de 2023

Comentada:

el 22 de Nov. de 2023

Community Treasure Hunt

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

Start Hunting!