Matlab: How to plot the function $P(x)$ versus $x$, where $P(x)=\int_0^\infty f(y)W(x,y)dy$?

1 view (last 30 days)
In Matlab:
How to plot the function versus x, where
?
I have obtaind the an array of N values for through some (long) numerical calculation, for an array of N values y.
The function has an analytic expression: .
My question is how to plot , which is a function of x defined by this integral over another function of y?
(The ``" is not the problem, of course this can just be set to some large constant, e.g., or , maybe?)
*To emphasize: I know how this can be done using a loop for each value of x : for every x, I can calculate P(x)=trapz(y,f(y)W(x,y)) (~not written in Matlab code).
But, can this be done without a loop?
  5 Comments
Erez
Erez on 13 Jun 2022
@Torsten @Image Analyst@Walter Roberson Guys, thanks for all the ideas, can you show please how to implemet them? -- I haven't been able to understand how to do it myself from the comments :) Maybe it is simple.. but not to me ;)
Torsten
Torsten on 13 Jun 2022
Edited: Torsten on 13 Jun 2022
Follow Walter Roberson's hint :
y = (0:10:100).';
x = 3:6;
W = exp(-x.^2./y);
f = @(y)y.^2;
fy = repmat(f(y),1,numel(x));
result = trapz(y,fy.*W)
result = 1×4
1.0e+05 * 2.9353 2.6553 2.3400 2.0112
Can you take it from here ?

Sign in to comment.

Answers (1)

David Hill
David Hill on 13 Jun 2022
y=1:.01:5;
x=0:.01:7;
[X,Y]=meshgrid(x,y);
W=exp(-X.^2./Y);
f=y.^2;%as an example
I=trapz(W.*f')/.01;%each column of I is the integral at each corresponding x value
  3 Comments

Sign in to comment.

Products


Release

R2020b

Community Treasure Hunt

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

Start Hunting!