How to differentiate vectors
조회 수: 3 (최근 30일)
이전 댓글 표시
Hello, please I have a code with lambda and n given below. Please how do I obtain d(n)/d(lambda) and d^2(n)/d(lambda)^2 i.e. the first and second deriviative of n wrt lambda?
lambda = linspace(0.5,2.5);
n = [1.55155531233953 1.54949576778463 1.54767969992980 1.54606941077293 1.54463432037936 1.54334939304258 1.54219395936135 1.54115082328366 1.54020557725122 1.53934607132757 1.53856199764777 1.53784456219577 1.53718622338909 1.53658048225698 1.53602171281363 1.53550502400216 1.53502614662547 1.53458134019413 1.53416731575664 1.53378117163556 1.53342033964695 1.53308253988297 1.53276574252631 1.53246813546774 1.53218809673566 1.53192417093373 1.53167504903131 1.53143955097005 1.53121661064518 1.53100526289637 1.53080463220578 1.53061392285076 1.53043241030050 1.53025943367952 1.53009438914900 1.52993672407995 1.52978593191141 1.52964154760293 1.52950314360382 1.52937032627300 1.52924273269261 1.52912002782641 1.52900190198108 1.52888806853379 1.52877826189461 1.52867223567629 1.52856976104774 1.52847062525013 1.52837463025771 1.52828159156731 1.52819133710247 1.52810370622009 1.52801854880867 1.52793572446860 1.52785510176605 1.52777655755305 1.52769997634709 1.52762524976427 1.52755227600092 1.52748095935889 1.52741120981038 1.52734294259859 1.52727607787089 1.52721054034140 1.52714625898047 1.52708316672849 1.52702120023196 1.52696029959983 1.52690040817834 1.52684147234282 1.52678344130489 1.52672626693392 1.52666990359143 1.52661430797744 1.52655943898778 1.52650525758144 1.52645172665720 1.52639881093877 1.52634647686784 1.52629469250434 1.52624342743341 1.52619265267854 1.52614234062043 1.52609246492120 1.52604300045342 1.52599392323372 1.52594521036064 1.52589683995631 1.52584879111185 1.52580104383610 1.52575357900747 1.52570637832878 1.52565942428470 1.52561270010188 1.52556618971130 1.52551987771288 1.52547374934221 1.52542779043906 1.52538198741785 1.52533632723963];
plot(n,lambda)
ylabel('n','FontWeight','bold','FontSize',14)
xlabel('lambda','FontWeight','bold','FontSize',14)
댓글 수: 0
채택된 답변
Star Strider
2022년 2월 15일
lambda = linspace(0.5,2.5);
n = [1.55155531233953 1.54949576778463 1.54767969992980 1.54606941077293 1.54463432037936 1.54334939304258 1.54219395936135 1.54115082328366 1.54020557725122 1.53934607132757 1.53856199764777 1.53784456219577 1.53718622338909 1.53658048225698 1.53602171281363 1.53550502400216 1.53502614662547 1.53458134019413 1.53416731575664 1.53378117163556 1.53342033964695 1.53308253988297 1.53276574252631 1.53246813546774 1.53218809673566 1.53192417093373 1.53167504903131 1.53143955097005 1.53121661064518 1.53100526289637 1.53080463220578 1.53061392285076 1.53043241030050 1.53025943367952 1.53009438914900 1.52993672407995 1.52978593191141 1.52964154760293 1.52950314360382 1.52937032627300 1.52924273269261 1.52912002782641 1.52900190198108 1.52888806853379 1.52877826189461 1.52867223567629 1.52856976104774 1.52847062525013 1.52837463025771 1.52828159156731 1.52819133710247 1.52810370622009 1.52801854880867 1.52793572446860 1.52785510176605 1.52777655755305 1.52769997634709 1.52762524976427 1.52755227600092 1.52748095935889 1.52741120981038 1.52734294259859 1.52727607787089 1.52721054034140 1.52714625898047 1.52708316672849 1.52702120023196 1.52696029959983 1.52690040817834 1.52684147234282 1.52678344130489 1.52672626693392 1.52666990359143 1.52661430797744 1.52655943898778 1.52650525758144 1.52645172665720 1.52639881093877 1.52634647686784 1.52629469250434 1.52624342743341 1.52619265267854 1.52614234062043 1.52609246492120 1.52604300045342 1.52599392323372 1.52594521036064 1.52589683995631 1.52584879111185 1.52580104383610 1.52575357900747 1.52570637832878 1.52565942428470 1.52561270010188 1.52556618971130 1.52551987771288 1.52547374934221 1.52542779043906 1.52538198741785 1.52533632723963];
plot(n,lambda)
ylabel('\lambda','FontWeight','bold','FontSize',14)
xlabel('n','FontWeight','bold','FontSize',14)
dndlambda = gradient(n) ./ gradient(lambda); % First Numerical Derivative
d2ndlambda2 = gradient(dndlambda) ./ gradient(lambda); % Second NMumerical Derivative
figure
yyaxis left
plot(lambda, n, 'DisplayName','Original Data')
yyaxis right
plot(lambda, dndlambda, 'DisplayName','First Derivative')
hold on
plot(lambda, d2ndlambda2, 'DisplayName','Second Derivative')
hold off
grid
xlabel('\lambda','FontWeight','bold','FontSize',14)
legend('Location','best')
Note that the first asrgument to plot is the independent variable and the second argument is the dependent variable. I corrected the axis labels in the firsst plot to reflect this.
I used yyaxis because the magnitudes between the original data and the derivatives are significantly different.
.
댓글 수: 2
추가 답변 (0개)
참고 항목
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!