来自用户输入的函数定义

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 个字符串:

  1. function_statement:答案应该是"x=a+b"

  2. input_varaible_list(以逗号隔开):答案应该是"a,b"

  3. 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 帮助中的 derivativenumdiff 函数。