В реальной жизни это очень просто, но как получить производную от квадратичной или кубической функции в matlab?
Например, A*x^3 + B*x^2 + C*x + D
будет 3*Ax^2 + 2*b*x + C
Iхочу получить это в Matlab, но я не могу понять, как: (
например, я пробовал этот код, но я получаю глупый результат (возможно, я тот, кто должен быть обвинен!):
>> x = [6 3 2 1]
x =
6 3 2 1
>> xPrime = diff(x)
xPrime =
-3 -1 -1
Обычно он должен давать [18 6 2] ?? Также я хочу знать, как это сделать для диапазона чисел. Например, я хочу получить производную каждой точки для примера выше для n = linspace(0,10,1000)
обновление конечно, я могу сделать это вручную, но мне действительно нравится знать, как это сделать с самим matlab.
То, что я делаю сейчас, это получение касательной линииПример выше, и я делаю так, и это работает:
x = linspace(0,10,1000);
y=A*x.^3+B*x.^2+C*x + D;
plot(x,y);
hold on;
slop=3*A.*(Location^2)+2*B.*Location+C;
b=(A.*Location.^3)+(B.*Location.^2)+(C.*Location)+D;
y2=slop*(x-Location)+b;
plot(x,y2,'--r');
legend('Graph of the function','Tangent Line');
hold off;
Я имею в виду то, что я должен использовать вместо вычисленной вручную производной в этой строке:
slop=3*A.*(Location^2)+2*B.*Location+C;
Спасибо!