How can I correct the error?

6 views (last 30 days)
Yan Jin
Yan Jin on 22 Feb 2019
%randtool—creating uniform distributions for each paramter
%solve the equation system for 100 times
for i=1:100
%define the variables in the equation system
syms X1 X2 L2
%for each parameter, ask Matlab to randomly choose a number from its own interval
p1=datasample(p1U,i);
p2=datasample(p2U,i);
aH=datasample(aHU,i);
bH=datasample(bHU,i);
m=datasample(mU,i);
Y1=datasample(Y1U,i);
Y2=datasample(Y2U,i);
L=datasample(LU,i);
lamdaH=datasample(lamdaHU,i);
lamdaL=datasample(lamdaLU,i);
AH=datasample(AHU,i);
AL=datasample(ALU,i);
q=datasample(qU,i);
er=datasample(erU,i);
phiH=datasample(phiHU,i);
phiL=datasample(phiLU,i);
%define the equation system
condition1=((1-q).*lamdaL.*exp(-lamdaL.*X1)+q.*lamdaH.*exp(-lamdaH.*X1)).*p1.*(1-aH).*Y1-m==0;
condition2=((1-q).*lamdaL.*exp(-lamdaL.*X2)+q.*lamdaH.*exp(-lamdaH.*X2)).*p2.*(1-bH).*Y2-m==0;
condition3=(bH+(1-bH).*((1-q).*(1-exp(-lamdaL.*X2))+q.*(1-exp(-lamdaH.*X2)))).*p2.*Y2-(aH+(1-aH).*((1-q).*(1-exp(-lamdaL.*X1))+q.*(1-exp(-lamdaH.*X1)))).*p1.*Y1+q.*phiH+(1-q).*phiL+(X1-X2).*m-(q.*AH+(1-q).*AL).*er.*L2.^(er-1)==0;
%solve the equation system
sol = vpasolve([condition1==0, condition2==0, condition3==0],[X1,X2,L2],[20,1,8]) %pay attention to the starting value you choose
rho(i)=sol.L2(i)./L(i) %for each i, calculate the share of planting CRISPR rice rho
end
sol =
struct with fields:
X1: [1×1 sym]
X2: [1×1 sym]
L2: [1×1 sym]
rho =
0.40819543575621442044874323059121
Error using mupadengine/feval (line 187)
More equations than variables is only supported for polynomial systems.
Error in sym/vpasolve (line 172)
sol = eng.feval('symobj::vpasolve',eqns,vars,X0);

Answers (0)

Categories

Find more on Symbolic Math Toolbox in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!