- #1
adeeyo
- 20
- 0
Hi,
Please I need your assistance in solving this MATLAB problem. 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,Newtonphasemolefraction2,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,Newtonphasemolefraction2,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.
adeeyo
Please I need your assistance in solving this MATLAB problem. 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,Newtonphasemolefraction2,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,Newtonphasemolefraction2,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.
adeeyo