Matlab - La integral no termina el proceso una vez comenzado

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

La integral no termina el proceso una vez comenzado

Publicado por Diego Gutiérrez (1 intervención) el 26/05/2021 00:43:06
Hola a todos/as

Estoy calculando la siguiente integral:

1
funnnn = integral(@(yi) E_theta(yi).*sin_theta(yi),min(double(dirs)), max(double(dirs)),'ArrayValued',true,'RelTol', 1e-4, 'AbsTol', 1e-6);

Pero al comenzar, matlab queda calculando y no termina nunca (pueden pasar horas y no pasa nada). ¿Alguien sabe cuál puede ser el problema?

En cambio, al calcular la siguiente integral:
1
m0=quad2d(interpZ,min(double(f)),max(double(f)),min(double(dirs)),max(double(dirs)));
Todo anda súper bien, demora unos segundos

Saludos y desde ya agradecido

###### Adjunto mi código completo: ######
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
f=ncread('ww3.n1_1989_spec.nc','frequency');
dir=ncread('ww3.n1_1989_spec.nc','direction');
time=ncread('ww3.n1_1989_spec.nc','time');
E1=ncread('ww3.n1_1989_spec.nc','efth');
E=permute(squeeze(E1),[2 1 3]); % (freq,theta,time)
%%
dirs=deg2rad(dir); % radians [rad]
[df,ddir]=meshgrid(f,dirs);
%%
FRE=reshape(df',[size(df(1,:),2)*size(df(:,1),1),1]); % 1 dimention vector
DIR=reshape(ddir',[size(ddir(1,:),2)*size(ddir(:,1),1),1]); % 1 dimention vector
FRE=double(FRE); DIR=double(DIR);
%%
EE=reshape(E(:,:,1000),[size(E(1,:,1000),2)*size(E(:,1,1000),1),1]); % 1 dimention vector
EE=double(EE);
 
interpZ = @(xi,yi) griddata(FRE,DIR,EE,xi,yi); % defino función mapeada
%m0=quad2d(interpZ,min(double(f)),max(double(f)),min(double(dirs)),max(double(dirs))); % FUNCIONA y toma unos segundos.
%%
E_theta = @(yi) integral(@(xi) interpZ(xi,yi) , min(double(f)),max(double(f)),'ArrayValued',true);
sin_theta = @(yi) sin(yi);
funnnn = integral(@(yi) E_theta(yi).*sin_theta(yi),min(double(dirs)), max(double(dirs)),'ArrayValued',true,'RelTol', 1e-4, 'AbsTol', 1e-6);
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