Matlab - Resultados

   
Vista:

Resultados

Publicado por Eduardo (7 intervenciones) el 24/11/2013 04:51:02
Hola, necesito ayuda, tengo un programa en Matlab, ya me hace lo que debe de hacer y todo, pero al momento de que me da los resultados no me los muestra como yo quisiera. Les dejo el código de mi programa, y una imagen para que vean como me aparecen los datos y como deberían de aparecer, muchas gracias por su atención.


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
clc;
syms x xi yi yimenos2 yimenos1 ximenos2 ximenos1 ximas1 ximas2 yimas1 yimas2;
funcion=input('Introduce la función: ');
y=input('Introduce el punto: ');
h=input('Introduce el paso: ');
%Tabla del Paso X
xi=y;
ximenos1=xi-h;
ximenos2=ximenos1-h;
ximas1=xi+h;
ximas2=ximas1+h;
%tabla del Paso Y
yimenos2=subs(funcion,x,ximenos2);
yimenos1=subs(funcion,x,ximenos1);
yi=subs(funcion,x,xi);
yimas1=subs(funcion,x,ximas1);
yimas2=subs(funcion,x,ximas2);
format long;
%Diferencias Divididas Hacia adelante
disp('Diferencias Divididas Hacia adelante');
div_adelante=((yimas1)-(yi))/h;
disp(div_adelante);
%Diferencias Divididas Hacias atrás
disp('Diferencias Divididas Hacia atrás');
div_atras=((yi)-(yimenos1))/h;
disp(div_atras);
%Diferencias Divididas Centrales
disp('Diferencias Divididas Centrales');
div_central=((yimas1)-(yimenos1))/(2*h);
disp(div_central);
%Segundas Diferencias Centrales
disp('Segundas Diferencias Centrales');
segundas_centrales=(-(yimas2)+(8*yimas1)-(8*yimenos1)+(yimenos2))/(12*h);
disp(segundas_centrales);

Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
1
Responder
Imágen de perfil de JOSE JEREMIAS CABALLERO

Diferencias Divididas

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3440 intervenciones) el 24/11/2013 09:21:24
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
clear all
 syms x xi yi yimenos2 yimenos1 ximenos2 ximenos1 ximas1 ximas2 yimas1 yimas2
 funcion=input('Introduce la función: ');
 y=input('Introduce el punto: ');
 h=input('Introduce el paso: ');
 %Tabla del Paso X
 xi=y;
 ximenos1=xi-h;
 ximenos2=ximenos1-h;
 ximas1=xi+h;
 ximas2=ximas1+h;
 %tabla del Paso Y
 yimenos2=subs(funcion,x,ximenos2);
 yimenos1=subs(funcion,x,ximenos1);
 yi=subs(funcion,x,xi);
 yimas1=subs(funcion,x,ximas1);
 yimas2=subs(funcion,x,ximas2);
 format long;
 %Diferencias Divididas Hacia adelante
 disp('Diferencias Divididas Hacia adelante');
 div_adelante=double(((yimas1)-(yi))/h);
 disp(div_adelante);
 %Diferencias Divididas Hacias atrás
 disp('Diferencias Divididas Hacia atrás');
 div_atras=double(((yi)-(yimenos1))/h);
 disp(div_atras);
 %Diferencias Divididas Centrales
 disp('Diferencias Divididas Centrales');
 div_central=double(((yimas1)-(yimenos1))/(2*h));
 disp(div_central);
 %Segundas Diferencias Centrales
 disp('Segundas Diferencias Centrales');
 segundas_centrales=double((-(yimas2)+(8*yimas1)-(8*yimenos1)+(yimenos2))/(12*h));
 disp(segundas_centrales);



1
2
3
4
5
6
7
8
9
10
11
12
13
14
>> diferencias_divididas1
Introduce la función: -x^4-2*x^3-5*x^2+sin(1)
Introduce el punto: 0.5
Introduce el paso: 0.5
Diferencias Divididas Hacia adelante
 -12.875000000000000
 
Diferencias Divididas Hacia atrás
  -3.125000000000000
 
Diferencias Divididas Centrales
    -8
 
Segundas Diferencias Centrales

1
2
3
4
5
6
7
8
9
10
11
>> clear all,  a=sym('2*sin(1)-2*sin(1/2)-103/8')
 
a =
 
2*sin(1) - 2*sin(1/2) - 103/8
 
>> double(a)
 
ans =
 
 -12.150909107592613






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

Diferencias Divididas

Publicado por Eduardo (7 intervenciones) el 24/11/2013 20:54:13
Va muchísimas gracias, si me salio, enserio agradezco tu respuesta :), la única parte que no te entendí es esta
>> clear all, a=sym('2*sin(1)-2*sin(1/2)-103/8')

a =

2*sin(1) - 2*sin(1/2) - 103/8

>> double(a)

ans =

-12.150909107592613

Agradecería si me pudieras explicar, así como darme una explicación breve de para que sirve el comando "eval", muchísimas gracias de nuevo.
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