编程问题,目的是求解各分量偏导数的最值,用的matlab遇到了以下的问题。求指正。
关于目的是求解各分量偏导数的最值,用的matlab遇到了以下的问题!
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
关注 我可以通过matlab中的syms和diff函数来实现对这个函数的各分量偏导数求解,然后再用matlab中的fmincon函数来进行最值规划。
代码如下:
syms x y z f(x,y,z) = sin(x)cos(y)exp(z); df_dx = diff(f, x); df_dy = diff(f, y); df_dz = diff(f, z);
% 求解最小值 x0 = [0, 0, 0]; A = []; b = []; Aeq = []; beq = []; lb = [-3, -3, -3]; ub = [3, 3, 3]; nonlcon = []; fun = matlabFunction(f); [x_min, f_val_min] = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon);
% 求解最大值 fun = @(x)-f(x(1),x(2),x(3)); [x_max, f_val_max] = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon);
disp(['偏导数 df/dx 的最小值为:', num2str(subs(df_dx, {x, y, z}, {x_min(1), x_min(2), x_min(3)}))]); disp(['偏导数 df/dy 的最小值为:', num2str(subs(df_dy, {x, y, z}, {x_min(1), x_min(2), x_min(3)}))]); disp(['偏导数 df/dz 的最小值为:', num2str(subs(df_dz, {x, y, z}, {x_min(1), x_min(2), x_min(3)}))]);
disp(['偏导数 df/dx 的最大值为:', num2str(subs(df_dx, {x, y, z}, {x_max(1), x_max(2), x_max(3)}))]); disp(['偏导数 df/dy 的最大值为:', num2str(subs(df_dy, {x, y, z}, {x_max(1), x_max(2), x_max(3)}))]); disp(['偏导数 df/dz 的最大值为:', num2str(subs(df_dz, {x, y, z}, {x_max(1), x_max(2), x_max(3)}))]);
最后,我得到了偏导数的最大值和最小值,展示在屏幕上。
解决 无用评论 打赏 举报
悬赏问题
- ¥66 换电脑后应用程序报错
- ¥50 array数据同步问题
- ¥15 pic16F877a单片机的外部触发中断程序仿真失效
- ¥15 Matlab插值拟合差分微分规划图论
- ¥15 keil5 target not created
- ¥15 C/C++数据与算法请教
- ¥15 怎么找志同道合的伙伴
- ¥20 如何让程序ab.eXe自已删除干净硬盘里的本文件自己的ab.eXe文件
- ¥50 爬虫预算充足,跪巨佬
- ¥15 滑块验证码拖动问题悬赏