Matlab - Duda sobre función

   
Vista:

Duda sobre función

Publicado por José Manuel (2 intervenciones) el 07/03/2014 20:01:15
Buenas tardes a todos, tengo una duda con un problemilla que me proponen, es el siguiente:

Dado el problema de Cauchy :

y' = y - 100 cos(t);
y (0) = 1:

Usando el comando dsolve hallar la única solución del problema. Crear el vector
t = (0; 1:01; 1:02; :::; 4:98; 4:99; 5):
Calcular el vector y con los valores de la primera solución en los puntos de t: Crear una matriz
de dos columnas que contenga la solución (en la primera columna el vector de tiempos t y en la
segunda el vector con la solución y). Extraer de ella la submatriz que contiene las …las 1, 5 y 10 y
mostrarlas en formato long.


Se que para calcular la solucion general del sistema es usando el comando: y=dsolve('Dy=y-100*cos(t)','y(0)=1')
Tambien se que para sacar el vector t es: t=0: 0.01: 5
Mi duda esta en cómo calcular y(t), es decir, la solucion que obtengo de usar el comando dsolve, resolverla con el valor t, no se si me explico, un saludo y gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Jorge De Los Santos

Duda sobre función

Publicado por Jorge De Los Santos (212 intervenciones) el 07/03/2014 21:28:51
Hola José.

Como verás el comando "dsolve" devuelve una solución simbólica, para sustituir valores numéricos debes utilizar el comando "subs", cuya forma es la siguiente:

1
subs(expresion, valor anterior, valor nuevo)


Donde expresión sería la función solución devuelta por dsolve, valor anterior sería la variable simbólica que habrás de sustituir, que en este caso por defecto es "t", y valor nuevo sería el valor numérico dado por cada uno de los elementos del vector tiempo... Vamos, en resumen una forma de hacerlo sería la siguiente:

1
2
3
4
5
clear all;clc;
y=dsolve('Dy=y-100*cos(t)','y(0)=1');
t=0:0.01:5;
Y=subs(y,'t',t);
M=[t',Y']; % Matriz solución


En la matriz M se guardan ambos vectores (tiempo y solución).

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO

Duda sobre función

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3433 intervenciones) el 09/03/2014 11:21:08
1
2
3
4
5
6
7
clear all;
y=dsolve('Dy=y-100*cos(t)','y(0)=1');
T=0:0.01:5;
f=vectorize(inline(y));
Y=f(T);
M=[T',Y']
plot(T,Y)



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
>> dsolve3
 
M =
 
  1.0e+003 *
 
         0    0.0010
    0.0000    0.0000
    0.0000   -0.0010
    0.0000   -0.0020
    0.0000   -0.0030
    0.0001   -0.0041
    0.0001   -0.0051
    0.0001   -0.0062
    0.0001   -0.0072
    0.0001   -0.0083
    0.0001   -0.0094
    0.0001   -0.0105
    0.0001   -0.0116
    0.0001   -0.0127
    0.0001   -0.0138
    0.0001   -0.0150
    0.0002   -0.0161
    0.0002   -0.0173
    0.0002   -0.0184
    0.0002   -0.0196
    0.0002   -0.0208
    0.0002   -0.0220
    0.0002   -0.0232
    0.0002   -0.0244
    0.0002   -0.0256
    0.0003   -0.0268
    0.0003   -0.0281
    0.0003   -0.0293
    0.0003   -0.0306
    0.0003   -0.0319
    0.0003   -0.0332
    0.0003   -0.0344
    0.0003   -0.0357
    0.0003   -0.0371
    0.0003   -0.0384
    0.0004   -0.0397
    0.0004   -0.0411
    0.0004   -0.0424
    0.0004   -0.0438
    0.0004   -0.0451


Saludos.
JOSE JEREMÍAS CABALLERO
Asesorías en Matlab
programador en matlab
Servicios de programación matlab
jjcc94@hotmail.com


http://matlabcaballero.blogspot.com

http://www.lawebdelprogramador.com/foros/Matlab/1371532-FORMA_DE_APRENDER_MATLAB.html
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar