如何通过一个函数作为参数
问题描述:
我使用Scilab的,我试图让像下面这样的函数:如何通过一个函数作为参数
function p = binary_search(myf,a,b)
目标是让binary_search找到这样的p即:山羊myf( p)= 0 in [a,b]。
我想做些事情是这样的:
root = binary_search("x^3 - 10",1,2)
当第一个字符串是一个函数的定义。
我发现是定义一个函数调用X3的唯一方法:
函数x = X 3(P)
x = p^3 - 10;
endfunction这样
,然后里面binary_search,做这样的事情:
fa = x3(a);
任何想法?
谢谢!
答
我找到了一个解决方案: 在主窗口(翻译),我定义的功能等:
deff('[y] = square(x)','y=x^2')
然后,我打电话
bi(square,0,2)
在功能方面,我只是做'f(x)':
function [x] = bi(f,a,b)
fa = f(a);
答
Scilab中的函数可以作为参数传递给其他函数离子。因此,如果你有一个函数f:
function y=f(x)
y = x^3 - 10
endfunction
你可以自由地传递到另一个函数,
root = binary_search("x^3 - 10",1,2)
DEFF是一个简单的方法来对解释快速定义功能 - 通常内嵌。
或者,你也可以传递一个表达式作为字符串的函数,有使用evstr命令评价:
function p = binary_search(expression, a, b)
evstr expression
//Rest of your code
endfunction
你会实现这个在解释这样的:
expression = "a^3 - 10"
root = binary_search(expression, 1, 2)