#全国大学生数学建模竞赛 #MWORKS体验官 打卡第六天
主题活动
发布于 2025-08-23 10:55:28
查看 7过去310天
题目

思路
第一题:使用scipy.optimize.root函数求解方程的根。首先,用equations定义了方程组的表达式,然后初始化猜测值[2, 2],最后调用root函数求解方程组,并打印出结果
第二题:使用scipy.integrate.nquad函数计算多重积分。首先,定义了密度函数,上、下、侧边界表达式,然后把直角坐标系转化为柱坐标(由雅可比行列式可知,此时被积函数要多一个r),最后使用nquad函数计算三重积分,并打印最终结果
结果
第一题:方程组在 (2,2) 附近的根为:x = 2.2143, y = 2.9032
第二题:零件的总质量为:251.4367 g
结果截图

代码
# 第一问
from scipy.optimize import root
import numpy as np
# 定义方程组
def equations(vars):
x, y = vars
eq1 = x**2 - y - 2
eq2 = y**2 - 2 * x - 4
return [eq1, eq2]
# 初始猜测值
initial_guess = [2, 2]
# 求解方程组
result = root(equations, initial_guess)
x_sol, y_sol = result.x
print(f"方程组在 (2,2) 附近的根为:x = {x_sol:.4f}, y = {y_sol:.4f}")
# 第二问
from scipy.integrate import nquad
import numpy as np
# 定义密度函数
def density(x, y, z):
return 2 + z
# 换成柱坐标,被积函数多一个r
def integrand(z, r, theta):
return density(0, 0, z) * r
# 定义各变量的积分范围
def limits_theta():
return [0, 2 * np.pi]
def limits_r(theta):
return [0, 1]
def limits_z(theta, r):
return [r, 4 - r**2]
# 计算三重积分
mass, _ = nquad(integrand, [limits_z, limits_r, limits_theta])
print(f"零件的总质量为:{mass:.4f} g")
所属专栏:其他
产品信息:Syslab Online