Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Problem in triplequad in matlab

  1. Nov 16, 2012 #1
    Hi friends

    I wanna get 3variable integral from a function which is in terms of x,y,z,m,a
    but I know that a=0.01 and m=3
    and want to integrate over x ,y,z
    Code (Text):

    >> triplequad((4 .*((-2.* a + m).^2 .*(4 .*a + m) +4 .*a.^2 .*(2.*(2.*a - m).* cos(z) + cos(y) .*(4.* a - 2.* m + 4 .*a.* cos(z) - m .*cos(z)) + cos(x) .*(4.* a - 2.* m + 4 .*a.* cos(z) - m .*cos(z) +  cos(y) .*(4 .*a - m + 4 .*a.* cos(z))))))./(m.^4 + 64 .*a.^3 .*m .*(1 + cos(x)) .*(1 + cos(y)) .*(1 + cos(z)) - 8 .*a.^2 .*m.^2 .*(3 + 2 .*cos(z) + cos(y) .*(2 + cos(z)) + cos(x) .*(2 + cos(y) + cos(z))) + 16 .*a.^4 .*(-3 + cos(x).^2 .*(cos(y) - cos(z)).^2 - 4 .*cos(z) + cos(y) .*(-4 + cos(z) .*(-6 + cos(y) .*cos(z))) - 2 .*cos(x) .*(2 + 3 .*cos(z) +  cos(y) .*(3 + cos(z).* (6 + cos(y) + cos(z)))))),-pi,pi,-pi,pi,-pi,pi)

     
    but when I run it matlab tells:
    ??? Error using ==> fcnchk at 103
    If FUN is a MATLAB object, it must have an feval method.

    Error in ==> triplequad at 45
    intfcn = fcnchk(intfcn);


    So what should I do?

    and also I used .* and ./ and .^ because I think x, y, z are matrix

    however if I used * and / and ^ ,still Matlab give the same errors


    thanks for your help
     
  2. jcsd
  3. Nov 19, 2012 #2

    uart

    User Avatar
    Science Advisor

    You really should consider using an "m" file instead of trying to type a function that long in one line. Anyway, it should work if you make it a function of just x,y,z (that's all triplequad expects).
    For example:
    Code (Text):

    a=0.01
    m=3
    myfun = @(x,y,z) (4 .*((-2.* a + m).^2 .*(4 .*a + m) +4 .*a.^2 .*(2.*(2.*a - m).* cos(z) + cos(y) .*(4.* a - 2.* m + 4 .*a.* cos(z) - m .*cos(z)) + cos(x) .*(4.* a - 2.* m + 4 .*a.* cos(z) - m .*cos(z) +  cos(y) .*(4 .*a - m + 4 .*a.* cos(z))))))./(m.^4 + 64 .*a.^3 .*m .*(1 + cos(x)) .*(1 + cos(y)) .*(1 + cos(z)) - 8 .*a.^2 .*m.^2 .*(3 + 2 .*cos(z) + cos(y) .*(2 + cos(z)) + cos(x) .*(2 + cos(y) + cos(z))) + 16 .*a.^4 .*(-3 + cos(x).^2 .*(cos(y) - cos(z)).^2 - 4 .*cos(z) + cos(y) .*(-4 + cos(z) .*(-6 + cos(y) .*cos(z))) - 2 .*cos(x) .*(2 + 3 .*cos(z) +  cos(y) .*(3 + cos(z).* (6 + cos(y) + cos(z))))))
    triplequad("myfun",-pi,pi,-pi,pi,-pi,pi)
     
     
  4. May 31, 2013 #3
    symbolic triple quad

    I wanna get 3variable integral from a function which is in terms of x,y,z,L,T
    but I"T" and "L" are just symbols
    and want to integrate over x ,y,z
    How can I take triple integration from a symbolic function??
    thanks alot
     
  5. May 31, 2013 #4

    kreil

    User Avatar
    Gold Member

    What version of MATLAB are you using? Do you have access to Symbolic Math Toolbox?

    You can solve this numerically using INTEGRAL3 and either loops or sub-functions in the m-file.

    Symbolically, the integration function is int(). This attempts to find the antiderivative so that diff(F) = f, int(f) = F.

    For ex,

    Code (Text):
    syms x y n
    f = x^n + y^n;
    int(f, y)
    ans =
    x^n*y + (y*y^n)/(n + 1)
     
    Last edited: May 31, 2013
  6. Jun 1, 2013 #5
    thanks but my function is very complex and in this way matlab cannot do anything.In fact it said that the integral cannot be calculated
    How can I do the integral numerically but with 2 symbols?
    I mean that integrate over x ,y,z with a numerical method but with 2 symbols of t and m .
    thanks for your kind attention
     
  7. Jun 1, 2013 #6

    kreil

    User Avatar
    Gold Member

    That cannot be done as far as I know. You could probably do a totally symbolic integration and
    then evaluate x,y,z leaving the expression in terms of t and m.
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook




Similar Discussions: Problem in triplequad in matlab
  1. Matlab problem (Replies: 4)

  2. Matlab problem (Replies: 0)

  3. MATLAB problem (Replies: 5)

  4. MATLAB problem (Replies: 1)

Loading...