我为Newton Raphson方法编写了这段代码,我遇到了一个问题:
首先:
function [k] = ex2_b(a,b,e)
clc
syms x;
df= @(x) diff(exp((sin(x))^3) + x^6 - 2*(x^4) - (x^3) - 1);
df2 =@(x) diff(df);
我想找到df和df2是否介于-2和2之间。我无法弄清楚如何使用fzero。还有其他解决方案吗?
答案 0 :(得分:1)
你想解决函数f'(x)= 0还是只想知道[-2,2]之间是否存在根?不要在diff
中使用fzero
。实际上获得f'(x):
df= @(x) (3*sin(x).^2.*cos(x).*exp((sin(x)).^3) + 5*x.^5 - 8*(x.^3) - (3*x.^2) );
fzero(df,-2)
>>-1.0634
fzero(df,2)
>>1.3895
f'(x)的根源在[-2,2]之间。
f''(x)有点复杂,但如果将sin(x).^2
更改为1-cos(x).^2
,仍然不会很难。
如果您只想检查根的存在,可以绘制曲线:
df= @(x) diff(exp((sin(x)).^3) + x.^6 - 2*(x.^4) - (x.^3) - 1);
x=[-3:0.1:3];
plot(x(2:end),df(x))
和
df2= @(x) diff(3*sin(x).^2.*cos(x).*exp((sin(x)).^3) + 5*x.^5 - 8*(x.^3) - (3*x.^2) );
x=[-1:0.01:1];
plot(x(2:end),df2(x))
或只是,
plot(x(3:end),diff(df(x)))
df
和df2
都来自[-2,2]。