输入数学函数并在matlab中区分它

时间:2017-02-12 20:21:22

标签: matlab differentiation

我是matlab的新手,想要计算像f(x)/ f'(x)这样的东西。我希望用户输入函数f(x),参数x和x的值(假设为5,这样我就可以评估f(5)/ f'(5))。请建议我应该做什么。

2 个答案:

答案 0 :(得分:0)

一种方法是使用符号变量

function [ val ] = func( fun, num )
    symfun = sym(fun);
    dsymfun = diff(symfun);
    y = symfun/dsymfun;
    val = subs(y, num);
end

然后调用它

e.g。

value = func('x^2', 5)

value =

5/2

否则,您可以将输入作为符号变量提供:

function [ val ] = func( fun, num )
    dfun = diff(fun);
    y = fun/dfun;
    val = subs(y, num);
end

然后写

syms x;
func(x^2, 5)

答案 1 :(得分:0)

您可以使用polyderpolyval执行此操作,如下所示:

f = input('Enter f(x): '); %e.g; Enter [1 3 4]  if f(x)= x^2 + 3*x + 4
df = polyder(f);           %f'(x)
x= input('Enter x:  ');    %Enter the value of 'x' e.g 5
fx_dfx= polyval(f,x)/ polyval(df,x)    %f(x)/f'(x) 

如果你有 符号数学工具箱 ,你也可以这样做:

syms x;                      %Creating a symbolic variable x
f = input('Enter f(x): ');   %Enter f(x) e.g: x^2 + 3*x + 4
f(x)= f;                     %Converting sym to symfun
df(x) = diff(f)              %f'(x)
x_val= input('Enter x:  ');  %Enter the value of 'x' e.g 5
fx_dfx = double(f(x_val)/df(x_val)) %f(x)/f'(x)