Getting error in this code.
1 view (last 30 days)
Show older comments
betasqr=0.2;
gamma=0.3;
psi = 0.001;
mu = 1.0;
sbar = 50;
A = @(x) (4+sbar)-(sbar*betasqr*gamma).*(x.*(1-x)).^0.5;
B = @(x) (1-(betasqr)*((x.*(1-x)).^(0.5)));
E = @(x) ((6*(2+sbar))-((2*betasqr*sbar*gamma)*((x.*(1-x)).^(0.5))));
G = @(x) (12*psi*(1+sbar)) + A/B;
C = @(x) E/G;
IntEbyG = integral(C,0,1)
1 Comment
Jan
on 2 Jun 2022
Edited: Jan
on 2 Jun 2022
A simpler version - note that sqrt(x) is much cheaper than x^0.5:
betasqr = 0.2;
gamma = 0.3;
psi = 0.001;
mu = 1.0;
sbar = 50;
A = @(x) 4 + sbar - sbar*betasqr*gamma .* sqrt(x .* (1-x));
B = @(x) 1 - betasqr * sqrt(x .* (1-x));
E = @(x) 12 + 6 * sbar - 2*betasqr*sbar*gamma * sqrt(x .* (1-x));
G = @(x) 12 * psi * (1 + sbar) + A/B; % ERROR
C = @(x) E/G; % ERROR
IntEbyG = integral(C,0,1)
I've displayed the error message. This is very useful, if you ask a question, because solving a problem is much easier than guessing, what the problem is. Whenever you mention an error in the forum, attach a copy of the complete message.
Accepted Answer
Jan
on 2 Jun 2022
A simpler version - note that sqrt(x) is much cheaper than x^0.5:
betasqr = 0.2;
gamma = 0.3;
psi = 0.001;
mu = 1.0;
sbar = 50;
A = @(x) 4 + sbar - sbar*betasqr*gamma .* sqrt(x .* (1-x));
B = @(x) 1 - betasqr * sqrt(x .* (1-x));
E = @(x) 12 + 6 * sbar - 2*betasqr*sbar*gamma * sqrt(x .* (1-x));
G = @(x) 12 * psi * (1 + sbar) + A(x) ./ B(x); % <-- bug fix
C = @(x) E(x) ./ G(x); % <-- bug fix
IntEbyG = integral(C,0,1)
The error message tells you, that / does not work for function handles. Append the argument.
3 Comments
Image Analyst
on 2 Jun 2022
If Jan solved the problem, then please click the "Accept this Answer" link to award Jan his "Reputation points." Thanks in advance. 🙂
Jan
on 3 Jun 2022
I have more reputation points than I need for my daily living. I'd prefer cookies: 🍪
For other readers it is useful to mark a question as solved by accepting an answer.
More Answers (0)
See Also
Categories
Find more on Function Creation 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!