2021-05-12 14:32:11
MATLAB求解隱函數的導數和繪製隱函數的影象
本文結合一道關於隱函數的考研真題,從「真題題目、數學概念、MATLAB程式碼、程式碼說明」四個方面,演示MATLAB求解隱函數的導數和繪製隱函數影象的方法。
1
第一,首先給出這道關於隱函數求導的真題(如下圖),這道題來自2012年考研數學二中的第9題,該題意思為求隱函數的二階導數,並計算出x=0時二階導數y''(0)等於多少。
2
第二,介紹隱函數的數學概念(如下圖),隱函數是由隱式方程所隱含定義的函數。
3
第三,下面利用MATLAB解決這道考研真題,啟動MATLAB,新建m檔案,輸入如下程式碼。
close all; clear all; clc; format compact
syms x % 定義符號變數x
y = sym('y(x)'); % y是關於x的函數
F = x^2-y+1-exp(y); % 定義真題中的隱函數
disp('隱函數的一階導數dydx為:')
dFdx = diff(F,x,1); % 求隱函數的一階導數
[r,s] = subexpr(dFdx,'s');
dydx = solve(r,'s')
disp('___________________________________________')
disp('隱函數的二階導數dy2dx為:')
dF2dx = diff(dydx,x,1);% 求隱函數的一階導數
dy2dx = subs(dF2dx,sym('diff(y(x), x)'),dydx)
syms y
disp('___________________________________________')
disp('x=0時,隱函數二階導數值dy2dx_0為:')
x0 = 0;y0 = solve(x0^2 - y + 1 - exp(y),0);
dy2dx_0 = subs(dy2dx,x,0);
dy2dx_0 = subs(dy2dx_0,sym('y(0)'),y0)
4
第四,儲存和執行上述程式碼,在命令列視窗得到如下結果:
隱函數的一階導數dydx為:
dydx = (2*x)/(exp(y(x)) + 1)
___________________________________________
隱函數的二階導數dy2dx為:
dy2dx = 2/(exp(y(x)) + 1) - (4*x^2*exp(y(x)))/(exp(y(x)) + 1)^3
___________________________________________
x=0時,隱函數二階導數值dy2dx_0為:
dy2dx_0 = 1
5
第五,新建指令碼,輸入如下程式碼,繪製題目中隱函數的影象。
close all; clear all; clc; format compact
syms y
x = -10:0.1:10;
Y = zeros(1,length(x));
i = 1;
for X=sym(x)
Y(i) = double(solve(X^2-y+1-exp(y),0));
i = i+1;
end
plot(x,Y,'r-','LineWidth',3)
legend('隱函數:x^2-y+1=e^y','Location','North')
set(gca,'FontSize',13,'TickDir','out')
xlabel('x');ylabel('y');axis equal
6
第六,儲存和執行上述程式碼,得到真題中隱函數的影象如下圖。
相關文章