Problem with the evaluation of the product of triple integral
5 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
DIMITRIS GEORGIADIS
le 4 Nov 2021
Commenté : DIMITRIS GEORGIADIS
le 4 Nov 2021
Consider a set of positive values
,
and
.
,
.How can I compute q passing the integrand function as a function handle ? With the followind code an error occurs...
% Inputs:
t = 15;
sigma = 0.25;
y = [1.0 1.2]';
h = @(x1,x2,x3) x1.*(t - x2).^x3;
g = @(x1,x2,x3) exp(-0.5.*((y - h(x1,x2,x3))./sigma).^2 );
q = prod(integral3(@(x1,x2,x3) g(x1,x2,x3), 0, 1, 0, t, 0.3, 1));
0 commentaires
Réponse acceptée
Yongjian Feng
le 4 Nov 2021
y is an array. You can't use it directly in integral3. Do the product yourself as a for loop.
t = 15;
sigma = 0.25;
y = [1.0 1.2]';
accu = 1;
for i = 1:length(y)
h = @(x1,x2,x3) x1.*(t - x2).^x3;
g = @(x1,x2,x3) exp(-0.5.*((y(i) - h(x1,x2,x3))./sigma).^2 );
q = integral3(@(x1,x2,x3) g(x1,x2,x3), 0, 1, 0, t, 0.3, 1);
accu = accu * q;
end
accu
3 commentaires
Yongjian Feng
le 4 Nov 2021
Use arrayfun
y = [1.0 1.2];
result = prod(arrayfun(@(x) int3(x), y));
function q = int3(y)
t = 15;
sigma = 0.25;
h = @(x1,x2,x3) x1.*(t - x2).^x3;
g = @(x1,x2,x3) exp(-0.5.*((y - h(x1,x2,x3))./sigma).^2 );
q = integral3(@(x1,x2,x3) g(x1,x2,x3), 0, 1, 0, t, 0.3, 1);
end
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Numerical Integration and Differentiation dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!