Getting error in this code.
1 次查看(过去 30 天)
显示 更早的评论
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 个评论
Jan
2022-6-2
编辑:Jan
2022-6-2
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.
采纳的回答
Jan
2022-6-2
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 个评论
Image Analyst
2022-6-2
If Jan solved the problem, then please click the "Accept this Answer" link to award Jan his "Reputation points." Thanks in advance. 🙂
Jan
2022-6-3
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.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Function Creation 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!