Integral3 with vector-valued function

조회 수: 10 (최근 30일)
Alexander Ruderer
Alexander Ruderer 2020년 10월 21일
댓글: Walter Roberson 2020년 10월 21일
Hi, I have a qustion regarding the predefined matlab-function integral3.
Is it possible to do a vector-valued 3D integration?
With the one-dimensional function integral it is very easy:
Example:
fun = @(x)sin((1:5)*x);
q = integral(fun,0,1,'ArrayValued',true)
Yet the same syntax is not possible for integral 3.
Example:
fun = @(x,y,z) x.^(1:100) .* y .* z ;
q_array = integral3(fun,0,1,0,1,0,1,'ArrayValued',true);
This throws the error ''ArrayValued' is not a recognized parameter. For a list of valid name-value pair arguments, see the
documentation for this function.''
So is there a way to circumvent this behaviour?
In the moment, I solved it with a simple for-loop. But unfortunately the run-time is quite bad. So I hoped to lower the run-time with an vector-valued 3Dintegration.
  댓글 수: 1
Ameer Hamza
Ameer Hamza 2020년 10월 21일
@Analyst BugB, why are you posting the same image (which opens a pop-up window in the browser), using different account names. Is this some sort of website testing, or are you trying to find a bug?

댓글을 달려면 로그인하십시오.

답변 (1개)

Ameer Hamza
Ameer Hamza 2020년 10월 21일
Not possible with integral3(). Following shows an alternative
fun = @(x,y,z,n) x.^n .* y .* z ;
q_array = arrayfun(@(n) integral3(@(x,y,z) fun(x,y,z,n),0,1,0,1,0,1), 1:100)
  댓글 수: 2
Alexander Ruderer
Alexander Ruderer 2020년 10월 21일
Thank you very much, for your answer.
Your code works and makes my for loop unnecessary. So I will switch on your lines to make my code simpler. Yet, unfortunately it does not really lower the run-time. The for loop and your code had nearly the same run-time in a short-test.
I also tested the 1D example. There the array-valued option is able to more than half the run-time.
So I hoped, that this is also possible with integral3, but proabably the functions have different implementations regarding vector-valued functions.
Walter Roberson
Walter Roberson 2020년 10월 21일
https://www.mathworks.com/matlabcentral/fileexchange/47919-integraln-m might give ideas

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 MATLAB Coder에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by