2010-05-08 44 views
1

我使用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); 

任何想法?

谢谢!

回答

0

我找到了一个解决方案: 在主窗口(翻译),我定义的功能等:

deff('[y] = square(x)','y=x^2') 

然后,我打电话

bi(square,0,2) 

在功能方面,我只是做'f(x)':

function [x] = bi(f,a,b) 
    fa = f(a); 
0

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) 
相关问题