2017-02-12 6 views
-1

Je suis nouveau sur matlab et je veux calculer quelque chose comme f (x)/f '(x). Je veux que l'utilisateur entre la fonction f (x), le paramètre x et une valeur de x (supposons que 5, de sorte que je peux évaluer f (5)/f '(5)) .Veuillez suggérer ce que je devrais faire.Saisie d'une fonction mathématique et différenciation dans matlab

+0

Avez-vous avez la boîte à outils symbolique? Il existe deux approches très différentes selon que vous l'utilisez ou non. –

+0

Assurez-vous de me faire savoir si la réponse que j'ai fournie fonctionne pour vous. – nikaltipar

+0

@ Ben Voigt: J'ai cherché autour et trouvé une méthode pour entrer une fonction, son paramètre et la valeur mais pas la différenciation. Cependant, je serais reconnaissant que vous pourriez me parler des deux approches. –

Répondre

0

Une approche consiste à utiliser des variables symboliques

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

puis appeler

par exemple

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

value = 

5/2 

Sinon, vous pouvez fournir votre entrée comme une variable symbolique:

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

puis écrire

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

Merci @ nikaltipar Le programme est correct. Mais j'ai besoin d'entrer la fonction f ainsi que le paramètre. –

+0

J'ai mis à jour ma réponse, vérifiez-la. – nikaltipar

0

Vous pouvez le faire en utilisant polyder et polyval comme suit:

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) 

Si vous avez Symbolic Math Toolbox, vous pouvez aussi le faire en utilisant:

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)