早教吧 育儿知识 作业答案 考试题库 百科 知识分享

matlab中能否用fzero求导函数零点,请来看一下我的代码就是已知一个函数的表达式,想利用fzero函数来求出其导函数在给定区间内的零点.>> syms x>> y=cos(3*x)*exp(-x);>> yy=diff(y);>> fzero(yy,0)—————

题目详情
matlab中能否用fzero求导函数零点,请来看一下我的代码
就是已知一个函数的表达式,想利用fzero函数来求出其导函数在给定区间内的零点.
>> syms x
>> y=cos(3*x)*exp(-x);
>> yy=diff(y);
>> fzero(yy,0)
——————————————————
回车后显示如下信息:
Error using ==> fzero at 169
If FUN is a MATLAB object,it must have an feval method.
我把syms x换成x=[0:pi/10:pi];就更不行了.
请问正确的步骤是怎样的?刚开始学matlab,问题估计有点幼稚,弄懂的话保证补分~
▼优质解答
答案和解析
你前面声明是符号变量..所以yy是符号变量,不能用fzero,fzero是对字符串变量的式子而言的..
syms x
y=cos(3*x)*exp(-x);
yy=diff(y);
yy=char(yy);
fzero(yy,0)
或者你用solve函数,他是对符号变量的
>> syms x
>> y=cos(3*x)*exp(-x);
>> yy=diff(y);
>> solve(yy,0)
得到 ans =
-1/3*atan(1/3)
然后 vpa(ans,4) 即可