You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Matlab新手求助:如何对指定函数关于x求偏导?

如何在Matlab中对给定函数关于x求偏导

嘿,作为Matlab新手不用慌,咱们一步一步来搞定这个偏导数问题~首先咱们先手动推导一下偏导数的结果,搞懂原理之后再用Matlab实现就简单多了。

第一步:手动推导偏导数

你的函数是:

f(t) = 4*sin(a(t)) + x(t)*y(t) + h + cos(y(t))*sin(x(t))

求偏导的时候,我们把除了x(t)之外的所有变量(包括y(t)、a(t)、h)都看作常数,逐项求导:

  • 第一项 4*sin(a(t)):不含x(t),偏导数为0;
  • 第二项 x(t)*y(t):对x(t)求导,y(t)视为常数,结果是 y(t);
  • 第三项 h:常数,偏导数为0;
  • 第四项 cos(y(t))*sin(x(t)):cos(y(t))是常数,sin(x(t))对x(t)的导数是cos(x(t)),所以结果是 cos(y(t))*cos(x(t))。

把这些加起来,最终的偏导数就是:
∂f/∂x = y(t) + cos(y(t))*cos(x(t))

第二步:用Matlab符号计算实现

Matlab的符号工具箱可以帮我们直接计算偏导数,新手用这个方法最直观,步骤如下:

  1. 先定义所有的符号变量和函数:
% 定义符号变量t,以及依赖于t的函数x(t)、y(t)、a(t),还有常数h
syms t x(t) y(t) a(t) h
  1. 写出你的函数f:
f = 4*sin(a(t)) + x(t)*y(t) + h + cos(y(t))*sin(x(t));
  1. 对x(t)求偏导:
df_dx = diff(f, x(t));
  1. (可选)简化结果:
df_dx_simplified = simplify(df_dx);

运行这段代码后,df_dx 就会给出我们手动推导的结果啦~

如果之后你需要代入具体数值计算,只需要用subs()函数把符号变量替换成数值就行,比如:

% 假设t=1时,x(1)=pi/4,y(1)=pi/3
result = subs(df_dx, {t, x(t), y(t)}, {1, pi/4, pi/3});
% 把结果转换成数值
result_num = double(result);

内容的提问来源于stack exchange,提问作者Vish

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:27:34