x=1;
f=@(x) x^3 - (5/x^2)-4*sin(x)-2;
fzero(f,x)
ans =
1.9227
我应该找到等式的根,x ^ 3 - (5 / x ^ 2)-4 * sin(x)-2,上面的代码就是它的解。
我不了解此代码的一般机制。
(1)@运营商做什么?
我知道它的功能句柄,但我不明白函数句柄是什么。
(2)当括号中包含x时,它是如何工作的?
(3)当我没有为fzero()编写脚本时,怎么能有一个函数fzero()?
(4)为什么fzero()里面有两个变量? 我不明白变量' f'那里有
(5)为什么在开头声明x = 1?
请注意我对MATLAB很新,并且不太了解。
答案 0 :(得分:1)
f = @(x) ...
是在MATLAB中声明匿名函数的方法,实际上与在MATLAB中正常创建函数(例如function output = f(input) ...
)没什么不同。这只是一种实用的方式,特别是当您使用数学函数时。
@(x)
定义x
的变量与数学中的f(x)相同。 fzero()
是MATLAB现有的函数,用于计算f(x)= 0的x
值,这意味着计算定义的函数的根。在开头给你的x一个真实值确实意味着找到根的起点。在你的情况下,它会找到大于1的根。当你阅读MATLAB的existing documentation时,你会非常清楚。
修改强>
如果你给出x = [0 1]
而不是x = 1
的间隔,fzero(f,x)
会尝试在给定的时间间隔内计算f函数的根,如果在该时间间隔内没有根则woud返回NaN
值。