2017-02-12 18 views
-1

私はmatlabを初めて使い、f(x)/ f '(x)のような計算をしたいと思っています。私は関数f(x)、パラメータxとxの値を入力するようにします(5を仮定すると、f(5)/ f '(5)を評価することができます)。数学関数を入力してmatlabで微分する

+0

あなたはシンボリックツールボックスを持っていますか?それを使用するかどうかによって、2つの非常に異なるアプローチがあります。 –

+0

私が提供した答えがあなたに役立つかどうか、私に知らせてください。 – nikaltipar

+0

@ Ben Voigt:私は検索して、関数、そのパラメータと値を入力する方法を見つけましたが、差別化ではありません。しかし、私はあなたに私が2つのアプローチについて教えてくれたことに感謝します。 –

答えて

0

一つのアプローチは、シンボリック変数

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

を使用し、それを呼び出すことである

例えば

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

value = 

5/2 

そうしないと、シンボリック変数として、あなたの入力を提供することができます。その後、

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

と、次のようにあなたがpolyderpolyvalを使用してこれを行うことができます

syms x; 
func(x^2, 5) 
+0

ありがとう@ nikaltiparプログラムは正しいです。しかし、私は関数fとパラメータを入力する必要があります。 –

+0

私の答えが更新されました。 – nikaltipar

0

を書く:

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) 
あなたは シンボリック数学ツールボックスは、あなたも使用してこれを行うことができます持っている場合は10

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) 
関連する問題