利用matlab解決求解函數微分

1. 問題提出
最近在復習高等數學,感覺可以結合 去理解他。
遇到了一個題目:
2. 具體代碼
%{ 解決函數微分問題 %}
clc; clear; close all;
syms x; % be careful performance issue.
f1 = @(x) x^3 - x;
dfdx_syms = diff(f1,x);
dfdx = matlabFunction(dfdx_syms);
[dy,new_y]=getDy(2,1,dfdx,f1)
change_y=getChange(2,1,f1)
[dy,new_y]=getDy(2,0.1,dfdx,f1)
change_y=getChange(2,0.1,f1)
[dy,new_y]=getDy(2,0.01,dfdx,f1)
change_y=getChange(2,0.01,f1)
function [dy,new_y] = getDy(x0,dx,dydx,f)
%myFun 求函數的微分,及函數微分近似
%x0 某點
%dx 自變量的變換
%dydx 函數的導函數
%dy 函數的微分
%new_y 函數值的微分近似
dy=dydx(x0)*dx;
new_y=f(x0)+dy;
end
function change_y = getChange (x0, change_x, f)
%change_y 求函數變化量
change_y = f(x0+change_x)-f(x0);
end
3. 測試結果
當時,結果如下表
![]() |
![]() |
![]() |
|
---|---|---|---|
1 | 11 | 18 | |
0.1 | 1.1000 | 1.1610 | |
0.01 | 0.1100 | 0.1106 |