1. Not finding help here? Sign up for a free 30min tutor trial with Chegg Tutors
    Dismiss Notice
Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Differentiation in MATLAB

  1. Dec 16, 2009 #1
    1. The problem statement, all variables and given/known data

    How do i differentiate a sum in MATLAB?

    So for an example, if I have:
    [tex]y = x^2 + \sum^{n}_{j=1}3x_{j}^4[/tex]

    I want to differentiate it with respect to x.
    It should return: [tex]2x + \sum^{n}_{j=1}12x_{j}^3[/tex]

    2. Relevant equations



    3. The attempt at a solution

    If I want to differentiate y = x^3+2x, this is what i would do:
    >> syms x
    >> y = x^3+2*x
    >> diff(y,x,1)

    this gives:

    ans =

    3*x^2+2


    which is correct but how would i do differentiation if i have a sum?

    thank you.
     
  2. jcsd
  3. Dec 16, 2009 #2

    Päällikkö

    User Avatar
    Homework Helper

    First of all, your problem is laid out wrong. If you differentiate xi with respect to x, you ought to end up with 0, I think. If your sum consists of x's rather than xi's, then sum x = Nx, and you needn't worry about the sums anymore.

    I don't think the Matlab symbolic toolbox is too advanced, but I suppose you could "hack" it, e.g.:
    z = sum(repmat(x, 1, 10));

    Hope this answers your question.
     
  4. Dec 16, 2009 #3
    sorry, it should be:

    [tex]y_n = x_n^2 + \sum^{n}_{j=1}3x_{j}^4+x_n^2[/tex]

    so the derivative is:

    [tex]y' = 2x_n + \sum^{n}_{j=1}3x_{j}^4+2x_n[/tex]

    What does z = sum(repmat(x, 1, 10)); do?

    thank you
     
  5. Dec 16, 2009 #4

    Päällikkö

    User Avatar
    Homework Helper

    repmat just makes multiple instances of its input, e.g.
    repmat(x, 1, 2) = [x, x]

    I'm still a bit unclear as to what you're doing.
    If you're differentiating yn with respect to xn, the sum reduces to 12xn^3, i.e.
    [tex]
    y_n' = 2x_n + 12x_n^3 + 2x_n
    [/tex]

    Do you then sum over the different y'n or what? That way you'd get
    [tex]
    y' = \sum_{i=1}^n y_i'= 2x_n + \sum_{i=1}^n 12x_i^3 + 2x_n
    [/tex]

    EDIT: This would be the same as taking the divergence, if I'm not mistaken.
     
  6. Dec 16, 2009 #5
    I want to defferentiate:

    [tex]y_n = x_n^2 + \sum^{n}_{j=1}(3x_{j}^4+x_n^2)[/tex]

    with respect to xn

    I know that this should give:

    [tex]2x_n + \sum^{n}_{j=1}(3x_{j}^4+2x_n)[/tex]

    but i want to try to get this result using matlab.
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook