Error in ==> mu at 44 if nargin < 1 | nargin > 4 Warning: usage: [bnds,rowd,sens,rowp,rowg] = mu(matin,blk,opt)
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hi,
I am writing code for some ODE's. I successfully got the plot. But when I type in
[T,V]= ode15s(@myfunc, [0.0018,100], [1.2005084e9, 1.0001628e9, 1.674764e8, 100], [],mu,DOBu,OBu,BLTGFB,...
lambdaLTGFB,KTGFBa1,KTGFBa2,lambdaTGFB,KARANK,Kres,DOBp,KTGFBr1,AOBa,DOCp,OCp,PRLd,BRANKL,...
KAOPG,R,row,lambdaRANKL,PTHtotal,KPTHtotala1,KPTHtotalr1,AOCa,KRANKLa1,Kform,POPGd,BOPG,OPGmax,lambdaOPG)
in the command window, it gives me this error:
Error in ==> mu at 44
if nargin < 1 | nargin > 4
Warning: usage: [bnds,rowd,sens,rowp,rowg] = mu(matin,blk,opt)
I wonder if someone could please help solve this problem.
Here is the code:
function main
figure(1)
OCp = 2.003456e9;
OBu = 5.118204e6;
Kform = 2.139651664708985e-11;
DOBu = 1.096776794643166e4;
DOBp = 0.252243443705397;
DOCp = 1.131894369544156;
mu = 1.00;
lambdaLTGFB = 11.4089;
BLTGFB = 0.480000192;
KTGFBa1 = 4.28e-4;
KTGFBa2 = 4.28e-4;
lambdaTGFB = 375.6523;
Kres = 1.277791975466394e-10;
KTGFBr1 = 2.49e-4;
AOBa = 3e-1;
PRLd = 0;
BRANKL = 2.153079478660874e-7;
KAOPG = 5.68e-2;
KARANK = 7.19e-2;
R = 1.28e1;
row = 1.9167e-6;
lambdaRANKL = 4.16;
KPTHtotala1 = 2.09e2;
KPTHtotalr1 = 2.21e-1;
AOCa = 1.2;
BPTH = 9.74e2;
lambdaPTH = 3.84e2;
KRANKLa1 = 4.79e1;
POPGd = 0;
BOPG = 2.0700e-6;
OPGmax = 7.98e2;
lambdaOPG = 4.16;
PTHrP = 0;
PTH = BPTH / lambdaPTH;
PTHtotal = PTH + PTHrP;
[T,V]= ode15s(@myfunc, [0.0018,100], [1.2005084e9, 1.0001628e9, 1.674764e8, 100], [],mu,DOBu,OBu,BLTGFB,...
lambdaLTGFB,KTGFBa1,KTGFBa2,lambdaTGFB,KARANK,Kres,DOBp,KTGFBr1,AOBa,DOCp,OCp,PRLd,BRANKL,...
KAOPG,R,row,lambdaRANKL,PTHtotal,KPTHtotala1,KPTHtotalr1,AOCa,KRANKLa1,Kform,POPGd,BOPG,OPGmax,lambdaOPG);
BoneT = V(:,4);
OCa = V(:,3);
OBa = V(:,2);
OBp = V(:,1);
subplot(1,2,1)
hold on
plot(T, OBp, 'c')
plot(T, OBa, 'b')
plot(T, OCa, 'r')
legend('OB_p', 'OB_a', 'OC_a');
ylabel('')
xlabel('Time t (days)')
title('Bone Cell Populations','FontSize',12)
hold off
subplot(1,2,2)
hold on
plot(T, BoneT, 'g')
ylabel('')
xlabel('Time t (days)')
title('Bone Volume','FontSize',12)
hold off
function dV = myfunc(t,V,mu,DOBu,OBu,BLTGFB,lambdaLTGFB,KTGFBa1,KTGFBa2,lambdaTGFB,KARANK,Kres,DOBp,...
KTGFBr1,AOBa,DOCp,OCp,PRLd,BRANKL,KAOPG,R,row,lambdaRANKL,PTHtotal,KPTHtotala1,KPTHtotalr1,AOCa,...
KRANKLa1,Kform,POPGd,BOPG,OPGmax,lambdaOPG)
BoneT = V(4);
OCa = V(3);
OBa = V(2);
OBp = V(1);
OPG = (BOPG .* (KPTHtotalr1 ./ (KPTHtotalr1 + PTHtotal)) .* OBa + POPGd) ./ ((BOPG ./ OPGmax) .* ...
(KPTHtotalr1 ./ (KPTHtotalr1 + PTHtotal)) .* OBa + lambdaOPG);
RANKL = (PRLd + BRANKL .* OBp) ./ ((1 + KAOPG .* OPG + KARANK .* R) .* ((BRANKL ./ (row .* (PTHtotal ./ ...
(PTHtotal + KPTHtotala1)))) + lambdaRANKL));
LTGFB = (mu .* Kres .* OCa) ./ (lambdaLTGFB + BLTGFB);
TGFB = (BLTGFB .* LTGFB) ./ (lambdaTGFB);
dOBp = DOBu .* OBu .* (TGFB ./ (TGFB + KTGFBa1)) - DOBp .* OBp * (KTGFBr1 ./ (TGFB + KTGFBr1));
dOBa = DOBp .* OBp .* (KTGFBr1 ./ (TGFB + KTGFBr1)) - AOBa .* OBa;
dOCa = DOCp .* OCp .* (RANKL ./ (RANKL + KRANKLa1)) - AOCa .* OCa .* (1+(TGFB ./ (TGFB + KTGFBa2)));
dBoneT = (Kform .* OBa) - (Kres .* OCa);
dV = [dOBp; dOBa; dOCa; dBoneT];
Thank you very much Pazzo
3 commentaires
dpb
le 4 Août 2013
What does
which mu
at the command line return?
Also
whos mu*
might be informative; then again maybe not...
Use the debugger--set a
dbstop on error
and see where it is. Somehow and it's impossible to see precisely from the code posted, Matlab indeed thinks mu is a function.
I don't understand the humongeous argument list to ode15s -- the doc here (R2012b) has only
ODEFUN,TSPAN,Y0,OPTIONS
as the argument list. It would certainly make it easier to debug if you could simplify somewhat...using named variables instead of the numeric vectors and such would be a start.
Réponses (0)
Voir également
Catégories
En savoir plus sur Logical dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!