来自董宏斌的问题
利用MATLAB求方程5*(x.^2)*sin(x)-exp(-x)在区间[0,10]中的全部解
利用MATLAB求方程5*(x.^2)*sin(x)-exp(-x)在区间[0,10]中的全部解
1回答
2020-05-31 19:59
利用MATLAB求方程5*(x.^2)*sin(x)-exp(-x)在区间[0,10]中的全部解
利用MATLAB求方程5*(x.^2)*sin(x)-exp(-x)在区间[0,10]中的全部解
以下仅作参考,若大家有更好的方法,欢迎交流
1.若手动挑选方程的解,可以这样写
fx=inline('5*x.^2.*sin(x)-exp(-x)');
x0=fsolve(fx,0:10)
y=subs(fx,'x',x0)
从x0的结果中可以知道,方程在[0,10]有四个解
2.可以自动只显示方程在[0,10]内的所有解
fx=inline('5*x.^2.*sin(x)-exp(-x)');
x0=fsolve(fx,0:10);
j=2;a(1)=x0(1);
fori=1:9
if(abs(x0(i+1)-x0(i)>10^(-5)))
a(j)=x0(i+1);
j=j+1;
end
end
a%方程在[0,10]内的四个解
y=subs(fx,'x',a)%方程在a处对应的值,近似为0
运行结果:
a=
5.017630305147549e-0013.140715698599913e+0006.283194767636995e+0009.424777779067769e+000
y=
4.371324557883582e-008-8.416878305439468e-015-1.502465686586962e-0143.462214239260963e-013