Suprising results using matlabs quad to solve a simple double definite integral.

1 Ansicht (letzte 30 Tage)
Hi everyone, i have a complex function which i have written a matlab function to execute, but before that i did a simple example of definite integral of the form
int_0^1 log int_0^1 x+y dxdy .(here 'int' is the integral sign, underscore 0 hat 1 are the limits of integration, done w.r.t x and y)
doing this by pen and paper gives me -1.33333... but using this code below.i get a wrong answer.
function z1=intlog(y)
%intlog is a function executing the inner integral with respect to %x.
n=length(y);
z=zeros(size(y));
for j=1:n
a=0;b=1;
h=@(x) (x+y(j));
z(j)=quad(h,a,b);
z1=log(z);
end
to run this write in command window:
q=quad(@intlog,0,1)
which gives me a wrong answer. any explanation for this. I am using matlab release 2009a.
Thanks in anticipation.
  3 Kommentare
Jan
Jan am 1 Aug. 2011
Can you explain the similarities to http://www.mathworks.com/matlabcentral/answers/12775-matlab-quad-function-results-wrong ?
Silibelo Kamwi
Silibelo Kamwi am 1 Aug. 2011
Jan, i posted the question twice and once i was in the office the other one i was at home and i was not sure of whether i did post the first question.
Thanks

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

the cyclist
the cyclist am 31 Jul. 2011
Your pen and paper solution is incorrect. The correct analytic answer is 3*ln(3)/2 - ln(2) - 1 ~= -0.0452, which is spot-on with your code. [Here "ln" is natural log.]

Weitere Antworten (0)

Kategorien

Mehr zu Programming finden Sie in Help 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