Matlab 使用带有负值的fzero()时出错

Matlab 使用带有负值的fzero()时出错,matlab,Matlab,我有以下功能: function f = graph1(x) f = sqrt(x) - cos(sqrt(x)); end 通过以下方式呼叫fzero: >> x1 =fzero(@graph1, [-1.0,1.0]) 并有一个错误: Error using fzero (line 242) Function values at interval endpoints must be finite and real. 正值时一切正常,怎么了 p.S我是matlab新

我有以下功能:

function f = graph1(x)
     f = sqrt(x) - cos(sqrt(x));
end
通过以下方式呼叫fzero:

>> x1 =fzero(@graph1, [-1.0,1.0])
并有一个错误:

Error using fzero (line 242)
Function values at interval endpoints must be finite and real.
正值时一切正常,怎么了


p.S我是matlab新手。

正如我上面所说,错误或多或少是不言自明的。你的函数在你的区间端点处不是有限的和实的,因为
sqrt(x)
对于负
x
值不是实的。

这个错误是不言自明的,在你的边界(
[-1.0,1.0]
)上的
f
的值必须是有限的和实的
sqrt(x)
对于负数是不真实的。谢谢,我理解我的错误,数学问题不在代码中:)如何将您的评论标记为答案?不客气,我马上发布答案。