利用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