Matlab区分内联函数

时间:2014-12-01 03:04:07

标签: matlab newtons-method differentiation

如何区分我的功能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);

2 个答案:

答案 0 :(得分:1)

Marcin是对的。不要使用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

祝你好运!

答案 1 :(得分: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