Matlab - solucion exacta de una funcion de 2 variables

 
Vista:
sin imagen de perfil
Val: 43
Ha disminuido su posición en 13 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

solucion exacta de una funcion de 2 variables

Publicado por wil (26 intervenciones) el 18/06/2020 02:36:42
Hola , digite el siguiente codigo para ver la solucion exata en cada paso de espacio y tiempo, pero no corre.
Donde esta el error?

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
M=10; N=10;
h=0.1;k=0.1;
m=M+1; n=N;
D=0.05;
alf=5;
bet=4;
 
x=(0:M)*h ;t=(0:n)*k;
 
u=@(x,t) (2*D*bet*pi*sin(pi*x)*exp(-D*pi*pi*t))./(alf+bet*cos(pi*x)*exp(-D*pi*pi*t)) ; %solucion exata
 
 
for it=1:m-1
%fprintf('\n t x  u(anal) err\n');
for i=1:n
u(it,i)=(2*D*bet*pi*sin(pi*x(it))*exp(-D*pi*pi*t(i)))./(alf+bet*cos(pi*x(it))*exp(-D*pi*pi*t(i)));
end
end
 
for it=1:m-1
    fprintf('\n t \t  x  \t u  \n');
for i=1:n
fprintf('%6.2f %6.1f %15.6f  \n',t(it),x(i),u(it,i));
end
end
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 JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

solucion exacta de una funcion de 2 variables

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 18/06/2020 04:31:43
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
clear
M=10; N=10;
h=0.1;k=0.1;
m=M+1; n=N;
D=0.05;
alf=5;
bet=4;
x=(0:M)*h ;t=(0:n)*k;
u=@(x,t) (2*D*bet*pi*sin(pi*x)*exp(-D*pi*pi*t))./(alf+bet*cos(pi*x)*exp(-D*pi*pi*t)) ; %solucion exata
 
for it=1:m-1
%fprintf('\n t x u(anal) err\n');
    for i=1:n
    uu(it,i)=(2*D*bet*pi*sin(pi*x(it))*exp(-D*pi*pi*t(i)))./(alf+bet*cos(pi*x(it))*exp(-D*pi*pi*t(i)));
    end
end
 
 
for it=1:m-1
fprintf('\n t \t x \t u \n');
for i=1:n
fprintf('%6.2f %6.1f %15.6f \n',t(it),x(i),uu(it,i));
end
end



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
>> comparar_soluciones
 
 t 	 x 	 u
  0.00    0.0        0.000000
  0.00    0.1        0.000000
  0.00    0.2        0.000000
  0.00    0.3        0.000000
  0.00    0.4        0.000000
  0.00    0.5        0.000000
  0.00    0.6        0.000000
  0.00    0.7        0.000000
  0.00    0.8        0.000000
  0.00    0.9        0.000000
 
 t 	 x 	 u
  0.10    0.0        0.044106
  0.10    0.1        0.042875
  0.10    0.2        0.041653
  0.10    0.3        0.040442
  0.10    0.4        0.039243
  0.10    0.5        0.038058
  0.10    0.6        0.036888
  0.10    0.7        0.035733
  0.10    0.8        0.034596
  0.10    0.9        0.033476
 
 t 	 x 	 u
  0.20    0.0        0.089683
  0.20    0.1        0.087011
  0.20    0.2        0.084370
  0.20    0.3        0.081762
  0.20    0.4        0.079191
  0.20    0.5        0.076659
  0.20    0.6        0.074167
  0.20    0.7        0.071718
  0.20    0.8        0.069314
  0.20    0.9        0.066955
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
sin imagen de perfil
Val: 43
Ha disminuido su posición en 13 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

solucion exacta de una funcion de 2 variables

Publicado por wil (26 intervenciones) el 18/06/2020 14:25:43
Muy bien gracias, pero cuando cambie de datos para h=0.05 ; k=0.05; M=20 y N=40;
me sale valores duplicados para x y t, por ejemplo si x=0.5 y t=0.9 da u(0.5,0.9)=0.1552 y u(0.5,0.9)=0.1611 valores distintos , a que se deve esos valores duplicados?



Captura-de-pantalla-de-2020-06-18-090533
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
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

solucion exacta de una funcion de 2 variables

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 18/06/2020 15:36:00
El problema es en el formato de impresión de resultados.

1
fprintf('%7.3f %7.3f %15.6f \n',t(it),x(i),uu(it,i));


Saludos
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Servicios de programación matlab
Servicio de Asesoría Online Personalizada en Matlab
[email protected]


http://matlabcaballero.blogspot.com
https://www.facebook.com/matlabcaballero
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 43
Ha disminuido su posición en 13 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

solucion exacta de una funcion de 2 variables

Publicado por wil (26 intervenciones) el 18/06/2020 15:49:14
muchas gracias, era eso mismo. :)
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