how to calculate a derivative
조회 수: 508 (최근 30일)
이전 댓글 표시
can some one guide me how to calculate a derivative and integration in matlab . can you please give a little example.
채택된 답변
bym
2012년 2월 26일
Symbolically
syms x real
f = 1/x
int(f,1,2) % integration
ans =
log(2)
diff(f) %differentiation
ans =
-1/x^2
[edit - amplification]
syms x a b real positive
f = 1/x
f =
1/x
int(f) % without limits
ans =
log(x)
int(f,a,b) % with limits
ans =
log(b) - log(a)
fn = matlabFunction(f) % convert symbolic to anonymous function
fn =
@(x)1./x
quadgk(fn,1,2) % integrate numerically
ans =
0.6931
log(2) % previous result from symbolic integration
ans =
0.6931
(fn(2+1e-6)-fn(2))/1e-6 %numerical derivative at fn(2)
ans =
-0.2500
subs(diff(f),2) %substitute 2 into symbolic result previously obtained
ans =
-0.2500
댓글 수: 5
Jan
2012년 2월 27일
Yes, Nasir, then the integral is calculated from 1 to 2. "Symbolically" mean calculations with symbols, usually characters. The result is a formula. "Numerically" means, that you calculate a numerical value, a number.
Sergio E. Obando
2024년 6월 15일
Just here to suggest some recent resources, There is a nice section in the Symbolic Math Toolbox with additional examples for differentiation as well as a FEX curriculum on this topic:
추가 답변 (3개)
Magdalena Glinska
2020년 11월 16일
f = @(x) sin(x);
second_derivative_f = matlabFunction(diff(sym(f)));
댓글 수: 0
Hamza saeed khan
2020년 11월 24일
syms x
f = x;
diff(f,x)
why this code give me error as;
>>Error in diff (line 1)
syms x
댓글 수: 2
Walter Roberson
2020년 12월 22일
You probably do not have the symbolic toolbox installed or licensed.
Also, you accidentally named your script diff.m which is going to conflict with calling diff() to differentiate.
Achimsettythanmay
2022년 11월 14일
편집: Walter Roberson
2022년 11월 15일
syms x real
f = 1/x
int(f,1,2) % integration
diff(f) %differentiation
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Special Values에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!