フィルターのクリア

Problem with the evaluation of the product of triple integral

3 ビュー (過去 30 日間)
DIMITRIS GEORGIADIS
DIMITRIS GEORGIADIS 2021 年 11 月 4 日
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));

採用された回答

Yongjian Feng
Yongjian Feng 2021 年 11 月 4 日
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 件のコメント
Yongjian Feng
Yongjian Feng 2021 年 11 月 4 日
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
DIMITRIS GEORGIADIS
DIMITRIS GEORGIADIS 2021 年 11 月 4 日
Thank you again @Yongjian Feng!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeSpline Construction についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by