Función dsolve
Publicado por Carlos (39 intervenciones) el 20/06/2017 19:04:11
Hola, Buenas.
Estoy creando un solver para EDO's de segundo orden. Deseo que el usuario escoja entre 2 condiciones de frontera especificas: T(x1)=a y DT(x2)=b. Pero tengo el siguiente Detalle, que "dsolve" solo me está solucionando para la condición de T(x1)=a, pero para DT(x2)=b no me da la solución completa.
Anexo dos ejemplos y sus resultados
Ejemplo 1:
>> syms T(x) DT(x)
>> C1='T(0)==1'; %C1 y C2 son entradas del Usuario
>> C2='D(0)==0';
>> dsolve(diff(diff(T))==-T,C1,C2)
ans = cos(x) + C14*sin(x)
Ejemplo 2:
>> dsolve(diff(diff(T))==-T,C1,DT(0)==0)
ans = cos(x)
Si se dan cuenta, aquí si me soluciona cuando introduzco la C2 de manera directa, pero no me conviene hacerlo porque la idea es que el usuario las introduzca por medio de un edittext.
En el peor de los casos me he encontrado con estas soluciones:
piecewise([DT(0) == 0, {cos(x) + C11*sin(x)}], [DT(0) ~= 0, {}])
Para resumir, estoy intentando que C1 y C2 sean unas variables, pero no sé que tipo de variables son las que puedo usar para guardar las condiciones de frontera.
Agradezco, de todo corazón cualquier ayuda que puedan prestar. Gracias.
Estoy creando un solver para EDO's de segundo orden. Deseo que el usuario escoja entre 2 condiciones de frontera especificas: T(x1)=a y DT(x2)=b. Pero tengo el siguiente Detalle, que "dsolve" solo me está solucionando para la condición de T(x1)=a, pero para DT(x2)=b no me da la solución completa.
Anexo dos ejemplos y sus resultados
Ejemplo 1:
>> syms T(x) DT(x)
>> C1='T(0)==1'; %C1 y C2 son entradas del Usuario
>> C2='D(0)==0';
>> dsolve(diff(diff(T))==-T,C1,C2)
ans = cos(x) + C14*sin(x)
Ejemplo 2:
>> dsolve(diff(diff(T))==-T,C1,DT(0)==0)
ans = cos(x)
Si se dan cuenta, aquí si me soluciona cuando introduzco la C2 de manera directa, pero no me conviene hacerlo porque la idea es que el usuario las introduzca por medio de un edittext.
En el peor de los casos me he encontrado con estas soluciones:
piecewise([DT(0) == 0, {cos(x) + C11*sin(x)}], [DT(0) ~= 0, {}])
Para resumir, estoy intentando que C1 y C2 sean unas variables, pero no sé que tipo de variables son las que puedo usar para guardar las condiciones de frontera.
Agradezco, de todo corazón cualquier ayuda que puedan prestar. Gracias.
Valora esta pregunta


0