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

题目
image.png


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


结果
第一题:方程组在 (2,2) 附近的根为:x = 2.2143, y = 2.9032
第二题:零件的总质量为:251.4367 g

结果截图
image.png


代码

# 第一问
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
MWORKS体验官全国大学生数学建模竞赛

全部回答

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