展开全部
如何用MATLAB求解题主给出的超越方程?
第一步,利用函数体创建超越方程函数,即
function y = dichotomy_fun(p)
a=5;s=0.5;T=5;
eq1=exp((p+s-a*p)*T)-a-T*(s-a*p)*(1-a);
eq2=p*exp((p+s-a*p)*T)+s-a*p;
eq3=(1-a)/(p+s-a*p);
eq4=log((p*exp((p+s-a*p)*T)+s-a*p)/((p+s-a*p)*exp((p+s-a*p)*T)));
y=eq1/eq2-eq3+a/(s-a*p)*eq4;
第二步,利用ezplot函数,绘制函数图像,以便我们判断其函数的大概值。即
ezplot(@dichotomy_fun)
我们从图形中可以看到,函数值为p=0.12和p=0.21
第三步,使用数值方法(如二分法,牛顿法等)求解,其较高精度的数值解,即
p1=dichotomy(@dichotomy_fun,0.05,0.2,1e-8)
p2=dichotomy(@dichotomy_fun,0.2,0.25,1e-8)
第四步,执行代码后得到精度为1e-8的数值解。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询