对于 matlab 问题,我需要整合
fun2 = @(x) 1/(sigma2*(2*pi)^(.5))*exp(-.5*((x-xbar2)/sigma2)^2)
, where sigma2=50
, xbar2=1500
.
曲线下的面积应为 0.05,因此我将其设置为solve(integrate(fun2,-inf,u)==.05,u)
但出现错误“未定义的函数或变量 'u'”。
我能做些什么来完成这项工作?
对于 matlab 问题,我需要整合
fun2 = @(x) 1/(sigma2*(2*pi)^(.5))*exp(-.5*((x-xbar2)/sigma2)^2)
, where sigma2=50
, xbar2=1500
.
曲线下的面积应为 0.05,因此我将其设置为solve(integrate(fun2,-inf,u)==.05,u)
但出现错误“未定义的函数或变量 'u'”。
我能做些什么来完成这项工作?
So here we go:
syms x u
fun = int(1./(50.*(2.*pi).^(.5)).*exp(-.5.*((x-1500)./50).^2),-Inf,u) - .05;
double(solve(fun,u))
这是一个不需要符号工具箱的解决方案;Matlab的标准寻根算法:
>> f = @(u) quadgk(fun2, -inf,u) - 0.05;
>> fzero(f,xbar2)
ans =
1.417757318652430e+003
(我使用quadgk
是因为我在没有integrate
. 的 R2010 上。无论如何都是一样的)。
求根算法fzero
找到匿名函数的零通道f
,它只是你的原始fun2
值减去你想要的值——当原始积分的值达到你选择的值时,它正好通过零。