专栏
标签
数模竞赛答题打卡-题目五
主题活动
发布于 2025-08-20 19:48:34
查看 2过去312天

##题目1.1
using TySymbolicMath
#定义符号变量
@variables x y z
#定义函数
f = 2 * x * y * tan(x) + exp(3 * x * z) + cos(y * z)
#使用 derivative 计算偏导数
df_dx = derivative(f, x)
println("∂f/∂x = ", df_dx)
df_dy = derivative(f, y)
println("∂f/∂y = ", df_dy)
df_dz = derivative(f, z)
println("∂f/∂z = ", df_dz)
##题目1.2
using TySymbolicMath
#定义符号变量
@variables x y z
#定义函数
g = (x + y + yz) / sin(xy)
#计算偏导数
dg_dx = derivative(g, x)
dg_dy = derivative(g, y)
dg_dz = derivative(g, z)
#输出结果
println("∂g/∂x = ", dg_dx)
println("∂g/∂y = ", dg_dy)
println("∂g/∂z = ", dg_dz)
##题目2
using TySymbolicMath
#问题2.1:计算梯度
#定义符号变量与温度函数
@variables x y
T = 100 * exp(-x^2 - 2*y^2) # T(x,y) = 100e^(-x²-2y²)
#计算梯度的符号表达式
dT_dx = derivative(T, x) #∂T/∂x
dT_dy = derivative(T, y) #∂T/∂y
#定义目标点
x₀ = 0.5
y₀ = -0.5
#代入数值计算梯度的分量
grad_T_x = substitute(dT_dx, Dict(x => x₀, y => y₀)) #∂T/∂x 在 (0.5,-0.5) 处的值
grad_T_y = substitute(dT_dy, Dict(x => x₀, y => y₀)) #∂T/∂y 在 (0.5,-0.5) 处的值
grad_T = [grad_T_x, grad_T_y] #梯度向量
#问题2.2:计算方向导数
#定义方向向量 v = (3, 4)
v = [3, 4]
#计算单位方向向量 u(v除以其模长)
norm_v = sqrt(v[1]^2 + v[2]^2)
u = v / norm_v
#计算方向导数
directional_deriv = grad_T_x * u[1] + grad_T_y * u[2]
#输出结果
println("问题1:温度 T 在点 (0.5, -0.5) 处的梯度为:")
println("∇T = (", grad_T_x, ", ", grad_T_y, ")")
println("问题2:沿方向 v=(3,4) 的方向导数为:")
println("D_u T = ", directional_deriv)
image.png

所属专栏:Syslab基础平台
产品信息:Syslab科学计算环境
MWORKS体验官全国大学生数学建模竞赛
附件 1 个附件(2kb)

全部回答

暂无数据
暂无数据
用户
和原帖交流更多问题细节吧,去
我要发帖 我要发帖
资料中心 资料中心
查看更多>
热门帖子 热门帖子
主要贡献者 主要贡献者
过去7天