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
Répondre
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)
Merci @ nikaltipar Le programme est correct. Mais j'ai besoin d'entrer la fonction f ainsi que le paramètre. –
J'ai mis à jour ma réponse, vérifiez-la. – nikaltipar
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)
Avez-vous avez la boîte à outils symbolique? Il existe deux approches très différentes selon que vous l'utilisez ou non. –
Assurez-vous de me faire savoir si la réponse que j'ai fournie fonctionne pour vous. – nikaltipar
@ 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. –