请教一下一个积分的问题。

设f1=exp(-(a^2-2abcos(t)+b^2)/2);
f2=cos(t)*exp(-(a*cos(t)^2)/2)*erfc((b-a*cos(t))/sqrt(2));
q(a,b)=1/pi*int(f1,t,0,pi)+a/sqrt(2*pi)*int(f2,t,0,pi);
在这里q(a,b)=1-u2,u2=rand(1,N),即q(a,b)算是已知,a是已知,现在我想求的是b,请问表达出b的代码该怎么写?

 采纳的回答

xojaj
xojaj 2022-11-22

0 个投票

你这里的积分是不能够符号积分出来。所以不能够计算。
可以使用数值积分。特别对于积分里面以及积分上下限都有未知数的方程。
function y=myfun3(b,a,u2)
f1=@(t,b,a)exp(-(a^2-2*a*b*cos(t)+b^2)*(1/2));
f2=@(t,b,a)exp(-(a*cos(t).^2)/2).*erfc((2^(1/2)*(b - a*cos(t)))/2).*cos(t);
y=1/pi*integral(@(t)f1(t,b,a),0,pi)+a/sqrt(2*pi)*integral(@(t)f2(t,b,a),0,pi)+u2-1;
end
选择你需要的a 以及u2
如a=2,u2=0.9
b=fsolve(@(b,a,u2)myfun3(b,2,0.9),-2)
b= -3.3377

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Symbolic Math Toolbox 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!