MATLAB中偏导数的计算
答案:3 悬赏:50
解决时间 2021-01-24 23:16
- 提问者网友:低吟詩仙的傷
- 2021-01-24 19:25
MATLAB中偏导数的计算
最佳答案
- 二级知识专家网友:渡鹤影
- 2021-01-24 20:27
可以调用 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 阶偏导。
全部回答
- 1楼网友:轮獄道
- 2021-01-24 22:14
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)
- 2楼网友:长青诗
- 2021-01-24 21:14
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偏导
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯