Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> MATLAB

Symbolische Afgeleiden Berekenen in MATLAB met diff

MATLAB's diff commando berekent symbolische afgeleiden. Basisvorm: diff(f).

Voorbeeld: Eerste Afgeleide

syms t
f = 3*t^2 + 2*t^(-2);
diff(f)  % ans = 6*t - 4/t^3

Octave equivalent: differentiate(f,t).

Verificatie Differentiatie Regels

Regels (f' = eerste afgeleide, f'' = tweede):

  1. Lineariteit: (af + bg)' = a f' + b g'
  2. Som/Verschil: (f ± g)' = f' ± g'
  3. Product: (f·g)' = f'·g + g'·f
  4. Quotiënt: (f/g)' = (f'·g - g'·f)/g²
  5. Macht: (xⁿ)' = n·xⁿ⁻¹, constante afgeleide = 0
  6. Kettingregel: (f(g(x)))' = f'(g(x))·g'(x)

Voorbeelden met diff

syms x t
f = (x + 2)*(x^2 + 3);           diff(f)  % 2*x*(x+2) + x^2 + 3
f = (t^2 + 3)*(sqrt(t) + t^3);   diff(f)  % productregel
f = (x^2 - 2*x + 1)*(3*x^3 - 5*x^2 + 2); diff(f)
f = (2*x^2 + 3*x)/(x^3 + 1);     diff(f)  % quotiëntregel
f = (x^2 + 1)^17;                diff(f)  % 34*x*(x^2+1)^16 (kettingregel)
f = (t^3 + 3*t^2 + 5*t - 9)^(-6); diff(f) % kettingregel

Afgeleiden van Exponentiële, Logaritmische & Trigonometrische Functies

FunctieAfgeleide
c^(a·x)c^(a·x)·ln(c)·a
e^xe^x
ln x1/x
log_c x1/(x·ln c)
x^xx^x·(1 + ln x)
sin(x)cos(x)
cos(x)-sin(x)
tan(x)sec²(x) = 1+tan²(x)
cot(x)-csc²(x)
sec(x)sec(x)·tan(x)
csc(x)-csc(x)·cot(x)

Voorbeelden

syms x
y = exp(x);       diff(y)  % exp(x)
y = x^9;          diff(y)  % 9*x^8
y = sin(x);       diff(y)  % cos(x)
y = tan(x);       diff(y)  % tan(x)^2 + 1
y = cos(x);       diff(y)  % -sin(x)
y = log(x);       diff(y)  % 1/x
y = log10(x);     diff(y)  % 1/(x*log(10))
y = sin(x)^2;     diff(y)  % 2*cos(x)*sin(x)
y = cos(3*x^2+2*x+1); diff(y) % -sin(...)*(6*x+2)
y = exp(x)/sin(x); diff(y)  % exp(x)/sin(x) - exp(x)*cos(x)/sin(x)^2

Hogere-Orde Afgeleiden

Syntax: diff(f, n) voor n-de afgeleide.

f = x*exp(-3*x);
diff(f, 2)  % 9*x*exp(-3*x) - 6*exp(-3*x)

Toepassing: Vergelijking Controleren

Gegeven y = 3 sin(x) + 7 cos(5x). Geldt y'' + y = -5 cos(2x)?

syms x
y = 3*sin(x) + 7*cos(5*x);
lhs = diff(y,2) + y;
rhs = -5*cos(2*x);
isequal(lhs, rhs)  % false
% LHS = -168*cos(5*x)

Maxima & Minima Vinden

Stationaire punten: f'(x) = 0. Stappen:

  1. Functie invoeren en plotten
  2. Afgeleide berekenen: g = diff(y)
  3. Oplossen: s = solve(g)
  4. Waarden evalueren met subs(y, x_waarde)

Voorbeeld: f(x) = 2x³ + 3x² - 12x + 17 op [-2, 2]

syms x
y = 2*x^3 + 3*x^2 - 12*x + 17;
ezplot(y, [-2, 2])
g = diff(y)        % 6*x^2 + 6*x - 12
s = solve(g)       % 1, -2
subs(y, 1)   % 10 (minimum)
subs(y, -2)  % 37 (maximum)

Differentiaalvergelijkingen Oplossen

dsolve lost differentiaalvergelijkingen symboolachtig op.

Notatie: D = eerste afgeleide, D2 = tweede, etc.

  • dsolve('Dy = 5*y') → C2·exp(5t)
  • dsolve('D2y - y = 0', 'y(0) = -1', 'Dy(0) = 2') → exp(t)/2 - 3·exp(-t)/2

MATLAB

  1. Wat is een differentieel? Functie, typen en onderhoud begrijpen
  2. Differentieelolie Uitgelegd: Doel, Typen en Onderhoud
  3. MATLAB: Uitgebreid Overzicht van een Leidende Numerieke Rekenomgeving
  4. MATLAB Datatypes: Uitgebreide Gids
  5. MATLAB Operatoren: Complete Gids voor Rekenkundige, Logische en Bitwise Operaties
  6. MATLAB Matrix Basis: Data Aanmaken, Benaderen en Manipuleren
  7. MATLAB: Multidimensionale en Speciale Arrays Beheersen
  8. MATLAB Dubbele Punt Notatie: Vectors Maken & Efficiënt Itereren
  9. MATLAB Getallen: Typen, Opslag en Conversie
  10. MATLAB Strings: Maken, Manipuleren en Functies
  11. MATLAB Functies: Definitie, Werkruimte, In- en Outputs