English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
MATLAB fournitdiffLa commande utilisée pour calculer la dérivée symbolique. La forme la plus simple consiste à passer la fonction à différencier en tant que paramètre à la commande diff.
Par exemple, calculons la dérivée de la fonction f(t) = 3t 2 + 2t -2
Créez un fichier de script et saisissez le code suivant-
syms t f = 3*t^2 + 2*t^(-2); diff(f)
Après compilation et exécution du code ci-dessus, le résultat suivant sera produit-
ans = 6*t - 4/t^3
Voici l'équivalent d'Octave pour les calculs ci-dessus-
pkg load symbolic symbols t = sym("t"); f = 3*t^2 + 2*t^(-2); differentiate(f,t)
Octave exécute le code et retourne le résultat suivant-
ans = -(4.0)*t^(-3.0)+(6.0)*t
Laissez-nous brièvement expliquer diverses équations ou règles utilisées pour la differentiation et vérifier ces règles. À cette fin, nous écrirons f'(x) pour la dérivée première et f”(x) pour la dérivée secondaire.
Voici les règles de distinction-
pour toute fonction f et g et pour tout nombre réel a et b est la dérivée de cette fonction-
h(x) = af(x) + bg(x) par rapport à x par-
h'(x) = af'(x) + bg'(x)
sommeetsoustractionLes règles indiquent que si f et g sont deux fonctions, f’et g’respectivement leurs dérivées, alors,
(f + g)' = f' + g'
(f - g)' = f' - g'
produitLes règles indiquent que si f et g sont deux fonctions, alors f' et g' sont respectivement leurs dérivées, alors,
(f.g)' = f'.g + g'.f
quotientLes règles indiquent que si f et g sont deux fonctions, alors f' et g' sont respectivement leurs dérivées, alors,
(f/g)' = (f'.g - g'.f)/g2
polynomialou la règle de base des puissances stipule que si, alorsy = f(x) = xnf' = n. x(n-1)
Le résultat direct de cette règle est que la dérivée de toute constante est nulle, c'est-à-dire siy = k,toute constante, alors
f' = 0
chaîneLes règles indiquent que la dérivée d'une fonction de fonction par rapport à x est :h(x) = f(g(x))
h'(x) = f'(g(x)).g'(x)
Créez un fichier de script et saisissez le code suivant-
syms x syms t f = (x + 2)*(x^2 + 3) der1 = diff(f) f = (t^2 + 3)*(sqrt(t) + t^3) der2 = diff(f) f = (x^2 - 2*x + 1)*(3*x^3 - 5*x^2 + 2) der3 = diff(f) f = (2*x^2 + 3*x)/(x^3 + 1) der4 = diff(f) f = (x^2 + 1))17 der5 = diff(f) f = (t^3 + 3* t^2 + 5*t -9))^(-6) der6 = diff(f)
Lors de l'exécution du fichier, MATLAB affiche le résultat suivant-
f = (x^2 + 3)*(x + 2) der1 = 2*x*(x + 2) + x^2 + 3 f = (t^(1/2) + t^3)*(t^2 + 3) der2 = (t^2 + 3)*(3*t^2 + 1/(2*t^(1/2)) + 2*t*(t^(1/2) + t^3) f = (x^2 - 2*x + 1)*(3*x^3 - 5*x^2 + 2) der3 = (2*x - 2)*(3*x^3 - 5*x^2 + 2) - (- 9*x^2 + 10*x)*(x^2 - 2*x + 1) f = (2*x^2 + 3*x)/(x^3 + 1) der4 = (4*x + 3)/(x^3 + 1) - (3*x^2*(2*x^2 + 3*x))/(x^3 + 1))2 f = (x^2 + 1))17 der5 = 34*x*(x^2 + 1))16 f = 1/(t^3 + 3*t^2 + 5*t - 9))6 der6 = -(6*(3*t^2 + 6*t + 5))/(t^3 + 3*t^2 + 5*t - 9))7
Voici l'équivalent d'Octave pour les calculs ci-dessus-
pkg load symbolic symbols x = sym("x"); t = sym("t"); f = (x + 2)*(x^2 + 3) der1 = differentiate(f,x) f = (t^2 + 3)*(t^(1/2) + t^3) der2 = differentiate(f,t) f = (x^2 - 2*x + 1)*(3*x^3 - 5*x^2 + 2) der3 = differentiate(f,x) f = (2*x^2 + 3*x)/(x^3 + 1) der4 = differentiate(f,x) f = (x^2 + 1))17 der5 = differentiate(f,x) f = (t^3 + 3* t^2 + 5*t -9))^(-6) der6 = differentiate(f,t)
Octave exécute le code et retourne le résultat suivant-
f = (2.0+x)*(3.0+x^(2.0)) der1 = 3.0+x^(2.0)+(2.0)*(2.0+x)*x f = (t^(3.0)+sqrt(t))*(3.0+t^(2.0)) der2 = (2.0)*(t^(3.0)+sqrt(t))*t+((3.0)*t^(2.0)+(0.5)*t^(-0.5))*(3.0+t^(2.0)) f = (1.0+x^(2.0)-(2.0)*x)*(2.0-(5.0)*x^(2.0)+(3.0)*x^(3.0)) der3 = (-2.0+(2.0)*x)*(2.0-(5.0)*x^(2.0)+(3.0)*x^(3.0))+((9.0)*x^(2.0)-(10.0)*x)*(1.0+x^(2.0)-(2.0)*x) f = (1.0+x^(3.0))^(-1)*((2.0)*x^(2.0)+(3.0)*x) der4 = (1.0+x^(3.0))^(-1)*(3.0+(4.0)*x)-(3.0)*(1.0+x^(3.0))^(-2)*x^(2.0)*((2.0)*x^(2.0)+(3.0)*x) f = (1.0+x^(2.0))^(17.0) der5 = (34.0)*(1.0+x^(2.0))^(16.0)*x f = (-9.0+(3.0)*t^(2.0)+t^(3.0)+(5.0)*t)^(-6.0) der6 = -(6.0)*(-9.0+(3.0)*t^(2.0)+t^(3.0)+(5.0)*t)^(-7.0)*(5.0+(3.0)*t^(2.0)+(6.0)*t)
Le tableau suivant fournit les dérivées courantes des fonctions exponentielles, logarithmiques et trigonométriques-
Fonction | La dérivée |
---|---|
ca.x | ca.x.lnc.a(ln est la logarithme naturel) |
ex | ex |
ln x | 1/x |
lncx | 1/x.ln c |
xx | xx.(1 + ln x) |
sin(x) | cos(x) |
cos(x) | -sin(x) |
tan(x) | sec2(x), ou 1/cos2(x), ou 1 + tan2(x) |
cot(x) | -csc2(x), ou -1/sin2(x), ou -(1 + cot2(x)) |
sec(x) | sec(x).tan(x) |
csc(x) | -csc(x).cot(x) |
Créez un fichier de script et saisissez le code suivant-
syms x y = exp(x) diff(y) y = x^9 diff(y) y = sin(x) diff(y) y = tan(x) diff(y) y = cos(x) diff(y) y = log(x) diff(y) y = log10(x) diff(y) y = sin(x)^2 diff(y) y = cos(3*x^2 + 2*x + 1) diff(y) y = exp(x)/sin(x) diff(y)
Lors de l'exécution du fichier, MATLAB affiche le résultat suivant-
y = exp(x) ans = exp(x) y = x^9 ans = 9*x^8 y = sin(x) ans = cos(x) y = tan(x) ans = tan(x)^2 + 1 y = cos(x) ans = -sin(x) y = log(x) ans = 1/x y = log(x)/log(10) ans = 1/(x*log(10)) y = sin(x)^2 ans = 2*cos(x)*sin(x) y = cos(3*x^2 + 2*x + 1) ans = -sin(3*x^2 + 2*x + 1)*(6*x + 2) y = exp(x)/sin(x) ans = exp(x)/sin(x) - (exp(x)*cos(x))/sin(x)^2
Voici l'équivalent d'Octave pour les calculs ci-dessus-
pkg load symbolic symbols x = sym("x"); y = Exp(x) differentiate(y, x) y = x^9 differentiate(y, x) y = Sin(x) differentiate(y, x) y = Tan(x) differentiate(y, x) y = Cos(x) differentiate(y, x) y = Log(x) differentiate(y, x) % le paquet symbolique ne prend pas en charge cette fonction %y = Log10(x) %differentiate(y, x) y = Sin(x)^2 differentiate(y, x) y = Cos(3*x^2 + 2*x + 1) differentiate(y, x) y = Exp(x)/Sin(x) differentiate(y, x)
Octave exécute le code et retourne le résultat suivant-
y = exp(x) ans = exp(x) y = x^(9.0) ans = (9.0)*x^(8.0) y = sin(x) ans = cos(x) y = tan(x) ans = 1+tan(x)^2 y = cos(x) ans = -sin(x) y = log(x) ans = x^(-1) y = sin(x)^(2.0) ans = (2.0)*sin(x)*cos(x) y = cos(1.0+(2.0)*x+(3.0)*x^(2.0)) ans = -(2.0+(6.0)*x)*sin(1.0+(2.0)*x+(3.0)*x^(2.0)) y = sin(x)^(-1)*exp(x) ans = sin(x)^(-1)*exp(x)-sin(x)^(-2)*cos(x)*exp(x)
Pour calculer les dérivées élevées de la fonction f, nous utilisons la syntaxediff(f, n)。
Calculons la deuxième dérivée de la fonction y = f(x) = x. e -3x
f = x*exp(-3*x); diff(f, 2)
MATLAB exécute le code et renvoie le résultat suivant-
ans = 9*x*exp(-3*x) - 6*exp(-3*x)
Voici l'équivalent d'Octave pour les calculs ci-dessus-
pkg load symbolic symbols x = sym("x"); f = x*Exp(-3*x); differentiate(f, x, 2)
Octave exécute le code et retourne le résultat suivant-
ans = (9.0)*exp(-(3.0)*x)*x-(6.0)*exp(-(3.0)*x)
Dans cet exemple, résolvons un problème. Donné une fonction. Nous devons trouver si l'équation est vérifiée.y = f(x) = 3 sin(x) + 7 cos(5x)f" + f = -5cos(2x)
Créez un fichier de script et saisissez le code suivant-
syms x y = 3*sin(x)+7*cos(5*x); % définition de la fonction lhs = diff(y,2)+y; % évaluant le lhs de l'équation rhs = -5*cos(2*x); % rhs de l'équation if(isequal(lhs,rhs)) disp('Oui, l'équation est vraie'); else disp('Non, l'équation n'est pas vraie'); end disp('La valeur de LHS est :'), disp(lhs);
Lors de l'exécution du fichier, il affiche le résultat suivant-
Non, l'équation n'est pas vraie La valeur de LHS est : -168*cos(5*x)
Voici l'équivalent d'Octave pour les calculs ci-dessus-
pkg load symbolic symbols x = sym("x"); y = 3*Sin(x)+7*Cos(5*x); % définition de la fonction lhs = differentiate(y, x, 2) + y; % calcul de l'équation lhs rhs = -5*Cos(2*x); % équation rhs if(lhs == rhs) disp('Oui, l'équation est vraie'); else disp('Non, l'équation n'est pas vraie'); end disp('La valeur de LHS est :'), disp(lhs);
Octave exécute le code et retourne le résultat suivant-
Non, l'équation n'est pas vraie La valeur de LHS est : -(168.0)*cos(5.0)*x)
Si vous cherchez des valeurs maximales et minimales locales sur le graphique, c'est essentiellement chercher les points les plus élevés ou les plus bas dans une gamme spécifique de valeurs de variables symboliques ou de positions spécifiques sur la courbe de la fonction.
Pour la fonction y = f(x), les points sur le graphique avec une pente nulle sont appelésstationary points(Points stationnaires/Points critiques). Autrement dit, les points fixes sont f'(x) = 0.
Pour trouver les points stationnaires de la fonction que nous dérivons, nous devons mettre la dérivée à zéro et résoudre l'équation.
Laissons-nous trouver les points fixes de la fonction f(x) = 2x 3 + 3x 2 − 12x + 17
Prenez les étapes suivantes-
Tout d'abord, entrons dans la fonction et dessinons son graphique.
syms x y = 2*x^3 + 3*x^2 - 12*x + 17; % définition de la fonction ezplot(y)
MATLAB exécute le code et retourne le graphique suivant-
Voici le code équivalent d'Octave pour l'exemple ci-dessus-
pkg load symbolic symbols x = sym('x'); y = inline("2*x^3 + 3*x^2 - 12*x + 17); ezplot(y) print -deps graph.eps
Notre objectif est de trouver quelques valeurs maximales et minimales locales sur le graphique, donc laissons-nous trouver des intervalles sur le graphique [-2,2] des valeurs maximales et minimales locales.
syms x y = 2*x^3 + 3*x^2 - 12*x + 17; % définition de la fonction ezplot(y,-2, 2])
MATLAB exécute le code et retourne le graphique suivant-
Voici le code équivalent d'Octave pour l'exemple ci-dessus-
pkg load symbolic symbols x = sym('x'); y = inline("2*x^3 + 3*x^2 - 12*x + 17); ezplot(y,-2, 2]) print -deps graph.eps
Ensuite, laissons-nous calculer la dérivée.
g = diff(y)
MATLAB exécute le code et renvoie le résultat suivant-
g = 6*x^2 + 6*x - 12
C'est l'octave des calculs ci-dessus-
pkg load symbolic symbols x = sym("x"); y = 2*x^3 + 3*x^2 - 12*x + 17; g = differentiate(y, x)
Octave exécute le code et retourne le résultat suivant-
g = -12.0+(6.0)*x+(6.0)*x^(2.0)
Laissons-nous résoudre la fonction dérivée g, pour obtenir les valeurs où elle devient nulle.
s = solve(g)
MATLAB exécute le code et renvoie le résultat suivant-
s = 1 -2
Voici l'équivalent d'Octave pour les calculs ci-dessus-
pkg load symbolic symbols x = sym("x"); y = 2*x^3 + 3*x^2 - 12*x + 17; g = differentiate(y, x) roots([6, 6, -12])
Octave exécute le code et retourne le résultat suivant-
g = -12.0+(6.0)*x^(2.0)+(6.0)*x ans = -2 1
Cela correspond à notre graphique, donc laissons-nous à la valeur critique x = 1,-2pour calculer la fonction f.
subs(y, 1), subs(y, -2)
MATLAB exécute le code et renvoie le résultat suivant-
ans = 10 ans = 37
Voici l'équivalent d'Octave pour les calculs ci-dessus-
pkg load symbolic symbols x = sym("x"); y = 2*x^3 + 3*x^2 - 12*x + 17; g = differentiate(y, x) roots([6, 6, -12]) subs(y, x, 1), subs(y, x, -2)
ans = 10.0 ans = 37.0-4.6734207789940138748E-18*I
Par conséquent, la valeur minimale et maximale de la fonction f(x) est égale à 2x 3 + 3x 2 − 12x + 17,dans[-2,2]intervalle est10et37。
MATLAB fournitdsolveCommande utilisée pour résoudre des équations différentielles symboliques.
dsolveLa forme la plus élémentaire de la commande pour trouver une solution d'une équation unique est
dsolve('eqn')
oùeqnEst une chaîne de caractères texte utilisée pour saisir l'équation.
Il retourne une solution symbolique avec un ensemble de constantes arbitraires, MATLAB les marque comme C1,C2等。
Vous pouvez également spécifier les conditions initiales et les conditions limites du problème, sous forme de liste séparée par des virgules après l'égalité-
dsolve('eqn','cond1', 'cond2',…)
Aux fins de l'utilisation de la commande dsolve, les dérivées sont représentées par D. Par exemple, comme f'(t)= -2 * f +Les équations telles que cost(t) sont saisies comme-
'Df = -2*f + cos(t)'
Les dérivées de haute order sont représentées par l'ordre des dérivées après D.
Par exemple, l'équation f“(x)+ 2f'(x)= 5sin3x doit être saisi comme-
'D2y + 2Dy = 5*sin(3*x)'
Prenez un exemple simple d'équation différentielle du premier ordre : y'= 5y。
s = dsolve('Dy = 5*y')
MATLAB exécute le code et renvoie le résultat suivant-
s = C2*exp(5*t)
Prenez un autre exemple d'équation différentielle du second ordre : y“-y = 0,y= -1,y'= 2。
dsolve('D2y - y = 0','y(0) = -1','Dy(0) = 2)
MATLAB exécute le code et renvoie le résultat suivant-
ans = exp(t)/2 - (3*exp(-t))/2