0

如何区分我的 Function Fun?当我尝试使用diff它时说

'diff'不支持类'inline'

我使用的代码如下所示:

fprintf('Newton Raphson\n');

Fun=input('\nType a function \n');
xi=input('\nType initial value\n');

def=diff(Fun);

der=inline(def);

dxi=der(xi);
4

2 回答 2

1

马尔辛是正确的。不要使用inline函数。那些不再使用了。如果您想使用符号数学工具箱进行区分,请使用sym为您创建一个函数,然后使用它来区分它。

因此,假设这x是自变量,请执行以下操作:

syms x;
fprintf('Newton Raphson\n');

Fun=input('\nType a function \n');
xi=input('\nType initial value\n');

out = sym(Fun);
def = diff(out);
dxi = subs(def, 'x', xi);

请注意,因为公式是符号,如果您想x用特定值替换,您需要使用subs. 使用subs,我们将替换x为存储在 中的初始值xi


让我们做一个贯穿示例。这是我运行这段代码时得到的结果,包括我的输入和输出:

Newton Raphson

Type a function 
x^2 + x + 3

Type initial value
4

out将是输入的函数:

out =

x^2 + x + 3

xi将是初始值:

xi =

4

函数的导数存储在def

def =

2*x + 1

最后,将我们的初始值代入我们的导数存储在 中dxi,因此给出:

dxi =

9

祝你好运!

于 2014-12-01T05:16:36.003 回答
0

看看这可能对你有帮助。

eq   = input('Write an equation in x','s'); %input a equation
f    = sym(eq);                             %turn the equation into a symbolic one
fin  = inline(char(f));                     %for converting the symbolic function into inline funct
dfin = inline(char(diff(f)));               %for converting the symb diff func into inline diff f
于 2015-01-04T11:18:20.727 回答