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

Using multiple functions in matlab Errors

  1. May 12, 2012 #1
    Dear All,

    Please I need your assistance in solving this matlab problem. I will be glad to hear from you as early as possible. Thanks for your anticipated help

    I have three functions

    First one


    function f_PR_W=newtonphasemolefraction1(W_PR, z,C,K_PR )
    f_PR=0;
    for c=1:C

    f_PR_W=f_PR+z(c).*(1-K_PR(c))./(1+W_PR.*(K_PR(c)-1));
    end


    Another function


    function fdot_PR_W=newtonphasemolefraction2(W_PR, z,C,K_PR )
    fdot_PR=0;

    for c=1:C
    fdot_PR_W=fdot_PR+z(c).*(K_PR(c)-1).^2/(W_PR.*(K_PR(c)-1)+1).^2;

    end

    The third function

    function [W_PR,err,k,f_PR_W]=newton1(newtonphasemolefraction1,newtonphasemolef raction2,W_PR,Tol_W_PR,Tol_f_PR,maxIter)


    for k=1:maxIter
    p1=W_PR-newtonphasemolefraction1(W_PR)/newtonphasemolefraction2(W_PR);
    err=abs(p1-W_PR);
    relerr=2*err/(abs(p1)+Tol_W_PR);
    W_PR=p1;
    f_PR_W=newtonphasemolefraction1(W_PR);
    if (err<Tol_W_PR)|(relerr<Tol_W_PR)|(abs(f_PR_W)<Tol_ f_PR),break,end
    end


    I call the three functions using

    [W_PR,err,k,f_PR_W]=newton1(newtonphasemolefraction1,newtonphasemolef raction2,W_PR,Tol_W_PR,Tol_f_PR,maxIter)

    I received the following error

    "Error using newtonphasemolefraction1 (line 3)
    Not enough input arguments."

    And all input arguments were defined: K_PR=[0.01546,0.5,1.432],W_PR=0.25,Tol_W_PR=10^-6, Tol_f_PR=10^-10, maxIter=100, z=[0.1 0.3 0.6],C=3

    Please assist.

    Best regards,
    adeeyo
     
  2. jcsd
  3. May 13, 2012 #2

    Stephen Tashi

    User Avatar
    Science Advisor



    I don't know Matlab, but in most computer languages your would have to write something like:

    [W_PR,err,k,f_PR_W]=newton1(newtonphasemolefraction1(a,b,c,d),
    newtonphasemolefraction2(e,f,g,h),.. etc.

    because you can't assume the compiler knows what arguments you want to pass to the functions newtonphasemolefraction1 and newtonphasemolefraction2 if you don't tell it. It looks like the compiler is objecting that you didn't supply any arguments to those functions.
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook




Similar Discussions: Using multiple functions in matlab Errors
  1. Error function (Replies: 5)

Loading...