definite integral w/o using symbolic variable

I am trying to integrate a function, then store that value, then change a value in the function, integrate again, store that value, and so on.
here is the idea
x=0:10;
x1 = 2;
x2 = 5;
m = 1;
i = 1;
if m < 5
F = inline('m*x');
AUC(i) = quadl(F,x1,x2);
m = m+1;
i = i+1;
end
M=1:4;
plot(M,AUC)
obviously this code does not work. I need to update the line F=inline for every value of m. How do I do this, or is there another way?

 Akzeptierte Antwort

Andrei Bobrov
Andrei Bobrov am 11 Nov. 2011

1 Stimme

m = 1:4;
x1 = 2;
x2 = 5;
AUC = arrayfun(@(i1)quad(@(x)i1*x,x1,x2),m)
loop
n = numel(m);
AUC = zeros(n,1);
for i1 = 1:n
AUC(i1) = quad(@(x)m(i1)*x,x1,x2);
end
ADD
k = 3+4i; % e.g.
q = 6-4i; % e.g.
I = @(x)abs((exp(-((1i*k)/(2*q))*x.^2).^2))/2;
quadgk(I,2,-3*1i)

4 Kommentare

Randy
Randy am 11 Nov. 2011
This works nicely, Thank you. Can someone breakdown how this works. I do not have a good understanding of functions.
Andrei Bobrov
Andrei Bobrov am 11 Nov. 2011
please read: about "@(x)..." http://www.mathworks.com/help/techdoc/ref/function_handle.html
and doc arrayfun
Randy
Randy am 11 Nov. 2011
here is how I understand what is happening:
m = 1:4;
x1 = 2;
x2 = 5;
AUC = arrayfun(@(i1)quad(@(x)i1*x,x1,x2),m);
% @(i1) gets the value of m
% quad operates on @(x) which is il*x which is m*x
% arrayfun stores that value into AUC as an array
n = numel(m);
AUC = zeros(n,1);
for i1 = 1:n
AUC(i1) = quad(@(x)m(i1)*x,x1,x2);
end
% for il = 1 we get AUC(1) = quad(@(x)m(1)*x,x1,x2)
% quad operates on @(x) which is 1*x
% that value is stored in AUC(1)
Now what I am trying to do is a bit more complicated.
I have a Gaussian function:
E = exp(-((i*k)/(2*q))*x.^2);
I = abs((E.^2))/2;
I want to integrate I from x1 to x2, store that value, change q, then integrate I again and store that value. q is a complex number that is calculated from code that is not shown. Can you give me some advice for how to implement this?
Andrei Bobrov
Andrei Bobrov am 11 Nov. 2011
see ADD

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Function Creation finden Sie in Hilfe-Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by