查看: 127|回复: 1|关注: 0

[已答复] 关于matlab积分结果和积分下限已知,求解积分上限

[复制链接]

新手

5 麦片

财富积分


050


1

主题

2

帖子

0

最佳答案
发表于 2019-11-5 10:55:56 | 显示全部楼层 |阅读模式
本帖最后由 岁的老顾客 于 2019-11-9 15:33 编辑

需要计算的积分如图所示,其中N1=N2=100,积分结果为0.1,积分下限为-100,求积分上限p的值

我写的初始代码如下,存在问题,经过多日努力,问题已解决,正确代码见回答的一楼,供后人参考
N1=100;
N2=100;
mmm=0.1;
m1=@(T) (N2*T+N1)./sqrt(N2*T.*T+N1);
m2=@(T) sqrt(N1*N2)*(N2*T.*T+N1);
m3=@(m1) exp(1/2*(m1.*m1-N1-N2));
f=@(u) (1/sqrt(2*pi))*exp(-u.*u/2);
Q=@(T) integral(f,-inf,m1(T));
f1=@(T) N1*N2*m1(T).*m3(m1(T))./(sqrt(2*pi)*m2(T)).*(2*Q(T)-1)+(1./(pi*m2(T)))*exp(-1/2*(N1+N2));
f2=@(p) integral(f1,-inf,p)-mmm;
s=fsolve(f2,1)
u=integral(f1,-100,s)%验证积结果的正确性

微信图片_20191105104638.png
微信图片_20191105150404.png
微信图片_20191105154138.png

新手

5 麦片

财富积分


050


1

主题

2

帖子

0

最佳答案
 楼主| 发表于 2019-11-6 20:44:38 | 显示全部楼层
本帖最后由 岁的老顾客 于 2019-11-9 15:31 编辑

问题已解决,这里我给出正确程序clear all;clc;
N1=100;
N2=100;
mmm=0.1;%积分结果
Lmada=1;
m1=@(T) (N2*T/Lmada+N1)./sqrt(N2*T.*T/Lmada+N1);
m2=@(T) Lmada*(N2*T.*T/Lmada+N1)./sqrt(N1*N2);
m3=@(m1) exp(1/2*(m1.*m1-N1-N2));
f=@(u) (1/sqrt(2*pi))*exp(-u.*u/2);
% Q=@(T) integral(f,-inf,T);
f1=@(T) m1(T).*m3(m1(T))./(sqrt(2*pi)*m2(T)).*(2*arrayfun(@(h) integral(f,-inf,m1(h)),T)-1)+(1./(pi*m2(T)))*exp(-1/2*(N1+N2));
f2=@(p) integral(f1,-inf,p)-mmm;
s=fsolve(f2,2)
u=integral(f1,-inf,s)

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

快速回复 返回顶部 返回列表