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

How to correctly code the expression with Ei function?

  1. May 11, 2013 #1
    Hi,

    I am trying to incorporate the following equation into Matlab in the red:

    http://http://www.radikal.ru][PLAIN]http://s018.radikal.ru/i518/1305/16/1cc0d2a72d38.jpg

    The following data is to be used:
    t=3000000
    nr=nx=161
    q=0.02
    k=5e-13
    mu=0.00035
    c=1.5e-8
    phi=0.25
    rw=0.1
    h=4.5


    My code is below:
    st=size(t)
    nr=nx;
    for i=1:1:st(1)
    rd=r(1:nr)/wb
    td=0.0036*k*t(i)/(phi*mu*c*wb^2)
    pd=((pi*h*k)/(1.842*q*1.1*mu))*(IP-p(i,1:nr))
    Ei_from_mfun=mfun('Ei',1,-rd^2/(4*td))
    pd=1/2*Ei_from_mfun
    plot(time,pd,'bo')
    end

    But it gives the following command :
    "??? Index exceeds matrix dimensions."

    Can you please help to fix the problem for every time, t and pressure,p?

    Thanks
     
  2. jcsd
  3. May 12, 2013 #2
    Provide the analytic formulation and tidy your code a little, pls.
    E.g. comments and indentation would not hurt; there a "code tags" button in the editor widget you can use to preserve indentation blanks in the code block.
     
  4. May 12, 2013 #3
    Here is the equation to be solved :

    ff5083bd4721.jpg

    The red equation belowi the analytical solution I want to get solution for.

    The data to be used:
    The following data is to be used:
    t=3000000
    r=nr=nx=161
    q=0.02
    k=5e-13
    mu=0.00035
    c=1.5e-8
    phi=0.25
    rw=0.1
    h=4.5

    My code is below:

    Code (Text):

    st=size(t)
    nr=nx;
    for i=1:1:st(1)
    rd=r(1:nr)/wb
    td=0.0036*k*t(i)/(phi*mu*c*wb^2)
    pd=((pi*h*k)/(1.842*q*1.1*mu))*(IP-p(i,1:nr))
    Ei_from_mfun=mfun('Ei',1,-rd^2/(4*td))
    pd=1/2*Ei_from_mfun
    plot(time,pd,'bo')
    end
     
    But it gives the following command :
    "??? Index exceeds matrix dimensions."
     
    Last edited: May 12, 2013
  5. May 12, 2013 #4

    kreil

    User Avatar
    Gold Member

    t is a constant.

    st=size(t) is then equal to [1 1]

    the for loop runs through for i=1, but then halts on i=2 because you have t(i), and t(2) doesn't exist.
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook




Similar Discussions: How to correctly code the expression with Ei function?
Loading...