谢谢!请问这怎么解决呢?matlab

t=linspace(0,1);F=@(x)expcdf(x,10);q=zeros(size(t));funq=@(q,t)F(q)-0.4+0.45*t-(0.6+0... t = linspace(0,1);F = @(x)expcdf(x, 10);q = zeros(size(t));funq = @(q,t) F(q) - 0.4+0.45*t-(0.6+0.45*t).* F(0.6*q*(1+0.75*t)-2); for i = 1:length(t) q(i) = fzero(@(q)funq(q,t(i)), [0,15]);endplot(t, q);legend('q(t)');错误使用 fzero (line 285)区间端点处的函数值必须具有不同的符号。 展开
 我来答
lhmhz
高粉答主

2018-09-11 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7263 获赞数:16994

向TA提问 私信TA
展开全部

对于复杂的指数分布的累计密度函数,用 fzero,fsolve,vpasolve等函数是比较难求累计密度函数中的q值

解决的思路:只能用试算法去求得q值。即假定q的范围为【0,0.9】,当t等于某值时,且q等于某值,其 funq 约等于 0。此时的q值就是要求的值。

解决的方法:1、建立指数分布累计密度函数p=F(x),求出p值;2、建立方程函数y=funq(x),求出q值;3、利用for循环语句,将上述两函数联系起来,利用plot绘图函数得到t—q(t)的关系图。

编程后运行得到,如下结果

验算:当t=0.88,q=0.3时,funq≈0,误差|err|=0.00099453

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式