利用MATLAB求方程5*(x.^2)*sin(x)-exp(-x)在区间[0,10]中的全部解

sanwanjie 1年前 已收到1个回答 举报

假装懂你 幼苗

共回答了13个问题采纳率:92.3% 举报

以下仅作参考,若大家有更好的方法,欢迎交流
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);
for i=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-001 3.140715698599913e+000 6.283194767636995e+000 9.424777779067769e+000
y =
4.371324557883582e-008 -8.416878305439468e-015 -1.502465686586962e-014 3.462214239260963e-013

1年前

9
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 0.901 s. - webmaster@yulucn.com