Info

This question is closed. Reopen it to edit or answer.

Need advise: Is my implementation good ?

1 view (last 30 days)
Oscar
Oscar on 23 Jan 2014
Closed: MATLAB Answer Bot on 20 Aug 2021
Hi, is my MATLAB code (please look below in my EDIT) good for solving this problem?
________________________________________________________________________________
This was the original question:
Hello, I have a question concerning differentiation and integration of multivariate functions. I am tryling to implement this in MATLAB:
1) We have a function in two variables, for example f(x,y):= x^2 exp( -(x-y)^2 )
2) First I want to differentiate it several times wrt to the second variable, lets say g(x,y) := (d/dy)^5 f(x,y)
3) Afterwards I fix y and integrate wrt to x. For example integrate g(x,0) over (-\infty,\infty)
My approach was to calculate the function g by hand and do the integration wrt to x with quadgk. Due to the fact that I need many different orders of derivatives this is really ineffective ... Can anyone please help me out ? Thanks !!
______________________________________________________________________
EDIT: The way I think it should work. MATLAB-Code:
syms x y;
fun = x.^2 exp( -(x-y).^2 );
for j=0:10;
FUNC = inline(diff(fun,y,j));
L = @(x) FUNC(x,0);
quadgk(L, -inf, inf,'RelTol',1e-8,'AbsTol',1e-12)
end;
Is this a good way? Any opinions of advanced MATLAB users ? Thanks

Answers (1)

Alan Weiss
Alan Weiss on 23 Jan 2014
Do you have Symbolic Math Toolbox?
If not, are you supposed to differentiate and integrate numerically or symbolically?
Alan Weiss
MATLAB mathematical toolbox documentation
  1 Comment
Oscar
Oscar on 23 Jan 2014
Edited: Oscar on 24 Jan 2014
Hello,
I have MATLAB 7.8.0 ... I only used symbolic differentiation in this way A=inline(diff(f,z,4)). Due to the fact that I bought a MATLAB version from my university, I think that it is only a standard student edition.
In my case, the derivative of the function is not hard to calculate by hand. The function f(x,y):= x^2 exp( -(x-y)^2 ) serves as a good example. The case that I am working has a similar structure, but it is not possible to find a recursion formula for the derivatives. So lets stick to the function f as defined above.
I have to integrate the y-derivatives (of order 1 to N ) evaluated at y=0 over the whole real line. That is why I thougt it would be better to do symbolic differentiation at first. I want to proceed like this:
1) We put: f = @(x,y) x.^2 exp( -(x-y).^2 )
2) We put: g_k(x,y) := (d/dy)^k f(x,y)
3) We define the integrad like this: INTk = @(x) g_k(x,0)
4) We do the integration: quadgk(INTk, -inf, inf,'AbsTol',1e-12)
This is all really informal and I just can't get a working code ... Is the idea ok, or would you do it differently? Due to the fact that I have very little experience in using MATLAB I would be very thankful, if anyone could help me to implement this procedure.
With best regards, Oscar

Community Treasure Hunt

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

Start Hunting!