【发布时间】:2015-10-04 20:37:18
【问题描述】:
我需要创建一个名为 newsign 的函数来输入一个
函数句柄(f)和
一个实数、正数和小数 (d)。
我可以假设 f(0) 不是 0,f(x) 在 [0,∞) 上是连续的,并且 f(x) 在 x > 0 处穿过 x 轴
例如
9-x-x^2
我的函数需要使用while循环来计算
f(x) at x=0,x=d,x=2d,x=3d.....x=
以此类推,直到 f(x) 和 f(0) 符号相反的第一个 x 值,然后返回 x 的值
这是我目前所拥有的
function r=newsign(f,d)
for i = 1:1000
while (f(i*d) and f(0) ARE DIFFERENT SIGNS)
%I don't know how to do this
f=f(i*d)
r=(i*d)
end
end
end
理想情况下,我希望 i 从 1:infinity 开始计数,只计算整数,但我不确定如何执行此操作,或者我什至是否需要 for 循环。
谢谢! 例如,如果您插入
newsign(@(x) 9-x-x^2,0.1)
答案是
2.600000000000001
【问题讨论】:
-
我的回答有帮助吗?
标签: matlab for-loop while-loop logic