4个回答
展开全部
可以调用 diff 函数求导。
举例说明:
先定义符号 x、y 以及符号二元函数表达式 z,然后调用 diff 函数求偏导,代码如下:
clc;clear;
syms x y
z=x^2+y^2+exp(x*y);
z_x=diff(z,x,1)
z_y=diff(z,y,1)
z_x2=diff(z,x,2)
z_y2=diff(z,y,2)
z_xy=diff(z,x,y)
结果如下:
z_x =
2*x + y*exp(x*y)
z_y =
2*y + x*exp(x*y)
z_x2 =
y^2*exp(x*y) + 2
z_y2 =
x^2*exp(x*y) + 2
z_xy =
exp(x*y) + x*y*exp(x*y)
图中调用了5次diff函数,分别计算了 z 对 x 的一阶偏导,z 对 y 的一阶偏导,z 对 x 的二阶偏导,z 对 y 的二阶偏导,以及 z 对 x,y 都求一次偏导。
例子中所用的调用格式为: diff(f,var,n)
f 为符号表达式,也可以是符号函数(这个数据类型低版本的matlab没有)。n 为求导次数,缺省为1。var 为求导的符号变量,可以缺省(matlab会根据表达式自己选择一个),但不建议缺省,除非表达式只含有一个符号变量。
此外,matlab还允许 diff(f,n,var)与 diff(S,v1,v2,...,vn)的调用形式。
diff(f,v1,v2,...,vn) 会把表达式 f 对变量 v1,v2 等 n 个变量都求一次偏导,得到 f 的 n 阶偏导。
举例说明:
先定义符号 x、y 以及符号二元函数表达式 z,然后调用 diff 函数求偏导,代码如下:
clc;clear;
syms x y
z=x^2+y^2+exp(x*y);
z_x=diff(z,x,1)
z_y=diff(z,y,1)
z_x2=diff(z,x,2)
z_y2=diff(z,y,2)
z_xy=diff(z,x,y)
结果如下:
z_x =
2*x + y*exp(x*y)
z_y =
2*y + x*exp(x*y)
z_x2 =
y^2*exp(x*y) + 2
z_y2 =
x^2*exp(x*y) + 2
z_xy =
exp(x*y) + x*y*exp(x*y)
图中调用了5次diff函数,分别计算了 z 对 x 的一阶偏导,z 对 y 的一阶偏导,z 对 x 的二阶偏导,z 对 y 的二阶偏导,以及 z 对 x,y 都求一次偏导。
例子中所用的调用格式为: diff(f,var,n)
f 为符号表达式,也可以是符号函数(这个数据类型低版本的matlab没有)。n 为求导次数,缺省为1。var 为求导的符号变量,可以缺省(matlab会根据表达式自己选择一个),但不建议缺省,除非表达式只含有一个符号变量。
此外,matlab还允许 diff(f,n,var)与 diff(S,v1,v2,...,vn)的调用形式。
diff(f,v1,v2,...,vn) 会把表达式 f 对变量 v1,v2 等 n 个变量都求一次偏导,得到 f 的 n 阶偏导。
展开全部
syms x y z
z=solve('exp(z)-x*y*z','z')
zdx=diff(z,x)
zdxy=diff(zdx,y)
结果:
z =
-lambertw(0, -1/(x*y))
zdx =
lambertw(0, -1/(x*y))/(x*(lambertw(0, -1/(x*y)) + 1))
zdxy =
lambertw(0, -1/(x*y))^2/(x*y*(lambertw(0, -1/(x*y)) + 1)^3) - lambertw(0, -1/(x*y))/(x*y*(lambertw(0, -1/(x*y)) + 1)^2)
z=solve('exp(z)-x*y*z','z')
zdx=diff(z,x)
zdxy=diff(zdx,y)
结果:
z =
-lambertw(0, -1/(x*y))
zdx =
lambertw(0, -1/(x*y))/(x*(lambertw(0, -1/(x*y)) + 1))
zdxy =
lambertw(0, -1/(x*y))^2/(x*y*(lambertw(0, -1/(x*y)) + 1)^3) - lambertw(0, -1/(x*y))/(x*y*(lambertw(0, -1/(x*y)) + 1)^2)
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
syms x t;
f(x,t) =... ;%关于x,t的函数
ddt = diff(f, t) % 对t偏导
ddx = diff(f, x) % 对x偏导
f(x,t) =... ;%关于x,t的函数
ddt = diff(f, t) % 对t偏导
ddx = diff(f, x) % 对x偏导
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
使用函数diff
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询