如何用Mathematica软件完成这一道简单的数学题?
来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/07/10 04:21:57
如何用Mathematica软件完成这一道简单的数学题?
海洋生物学家发现,当鲨鱼在海水中觉察到血液的存在时,就会沿着血液浓度增加得最快的方向前进去袭击目标,根据在海水中实际测试的结果,如果以流血目标处作为原点在海面上建立直角坐标系,则在海面上点P (x,y) 处的血液浓度近似等于
f(x)=exp(-((x^2+2y^2)/10^4)),作出鲨鱼袭击目标的前进轨迹(梯度线),你能否写出这个轨迹的函数表达式?
海洋生物学家发现,当鲨鱼在海水中觉察到血液的存在时,就会沿着血液浓度增加得最快的方向前进去袭击目标,根据在海水中实际测试的结果,如果以流血目标处作为原点在海面上建立直角坐标系,则在海面上点P (x,y) 处的血液浓度近似等于
f(x)=exp(-((x^2+2y^2)/10^4)),作出鲨鱼袭击目标的前进轨迹(梯度线),你能否写出这个轨迹的函数表达式?
![如何用Mathematica软件完成这一道简单的数学题?](/uploads/image/z/3512247-15-7.jpg?t=%E5%A6%82%E4%BD%95%E7%94%A8Mathematica%E8%BD%AF%E4%BB%B6%E5%AE%8C%E6%88%90%E8%BF%99%E4%B8%80%E9%81%93%E7%AE%80%E5%8D%95%E7%9A%84%E6%95%B0%E5%AD%A6%E9%A2%98%3F)
Clear[f]; f[x_, y_] = Exp[(-x^2 - 2*y^2)/10^4] t1 = ContourPlot[f[x, y], {x, -1, 1}, {y, -1, 1}, PlotPoints -> 50, ContourShading -> False] fx[x_, y_] = D[f[x, y], x] fy[x_, y_] = D[f[x, y], y] a = 1; b = 1; lamda = 0.01; Do[u = a + lamda*fx[a, b]/Sqrt[(fx[a, b])^2 + (fy[a, b])^2]; v = b + lamda*fy[a, b]/Sqrt[(fx[a, b])^2 + (fy[a, b])^2]; c[n] = u; d[n] = v; a = u; b = v, {n, 200}] data = Table[{c[n], d[n]}, {n, 200}]; t2 = ListPlot[data] Show[t1, t2] 老公加油!