I have a non linear equation with many variables that run through a column array. I am trying to backcalulate the value of one of the variable that would produce a value of zero at each output of the column array. I am using root2d function, which is working fine, but I am only getting the last value. I am not sure how to save the output at each increment of j because the function runs througha for loop and doesn't stop till the last value. I would like the output of my variable rd to be spit out as a column or row array for each increment. Here is what I am doing:
%Calling the function
fun =@root2d;rd0 = [0.05];rd = fsolve(fun,rd0)
%loading input and defining variables
function F=root2d(rd)load 'S71'depr1=S71.Depth;qdynr=S71.qdyn;Velr=S71.velr;dec2r=S71.dec;phicv=34;Q=6;R=1;V50=1;Nkt=12;c0=300;c1=0.46;c2=2.96;gammap=8; %in kN/m3
k0=0.5;chmin=0.031; %for loop inside the function
for j=9:numel (depr1) pm(j)=gammap*((1+2*k0)/3)*depr1(j); V(j)=(Velr(j)*0.04375)/chmin; strainterm(j)=1/(1+(V(j)/V50)); pm (j) strainterm(j) V(j) qdynr(j)F= qdynr(j)-(((Nkt*0.5*((6*sin(phicv))/(3-sin(phicv)))*exp(Q-1/rd)))+strainterm (j)*((((c0*(pm(j)^c1)*exp(rd*c2))-(Nkt*0.5*((6*sin(phicv))/(3-sin(phicv))))*exp(Q-1/rd)))));endend
Best Answer