来自用户输入的函数定义
Function definition from user input
我想制作一个程序,它会要求用户输入一个函数,例如 cos(x) + 2
。我的问题是,我不知道如何使输入的函数成为一个真正的函数的语法或代码,我可以在其中对其进行操作,例如获取它的导数,绘制它,诸如此类。谁能教我怎么做?谢谢!
要创建 "real" 函数,您可以使用 2 种不同的语法:
function [x]=myfct(a,b)
x=a+b;
endfunction
或
deff("[x]=myfct(a,b)","x=a+b");
注意:如果你只有一个return变量,你可以省略方括号。
后一种形式在这里更直接,因为您只需要向用户询问 2 或 3 个字符串:
function_statement:答案应该是"x=a+b"
input_varaible_list(以逗号隔开):答案应该是"a,b"
output_varaible_list(逗号隔开):答案应该是"x"
然后拼成一个deff
:
deff("["+output_varaible_list+"]=myfct("+input_varaible_list+")",function_statement);
如果您将输出变量名固定为x
,那么您就不必要求它了,用户只需输入函数语句的右侧(在[=之后19=]).于是就变成了:
deff("[x]=myfct("+input_varaible_list+")","x="+function_statement);
对于导数,请参阅 Scilab 帮助中的 derivative
和 numdiff
函数。
我想制作一个程序,它会要求用户输入一个函数,例如 cos(x) + 2
。我的问题是,我不知道如何使输入的函数成为一个真正的函数的语法或代码,我可以在其中对其进行操作,例如获取它的导数,绘制它,诸如此类。谁能教我怎么做?谢谢!
要创建 "real" 函数,您可以使用 2 种不同的语法:
function [x]=myfct(a,b)
x=a+b;
endfunction
或
deff("[x]=myfct(a,b)","x=a+b");
注意:如果你只有一个return变量,你可以省略方括号。
后一种形式在这里更直接,因为您只需要向用户询问 2 或 3 个字符串:
function_statement:答案应该是
"x=a+b"
input_varaible_list(以逗号隔开):答案应该是
"a,b"
output_varaible_list(逗号隔开):答案应该是
"x"
然后拼成一个deff
:
deff("["+output_varaible_list+"]=myfct("+input_varaible_list+")",function_statement);
如果您将输出变量名固定为x
,那么您就不必要求它了,用户只需输入函数语句的右侧(在[=之后19=]).于是就变成了:
deff("[x]=myfct("+input_varaible_list+")","x="+function_statement);
对于导数,请参阅 Scilab 帮助中的 derivative
和 numdiff
函数。