Python考研:2024年第17题二重积分

2023-12-26 09:39:12

已知平面区域 D = { ( x , y ) ∣ 1 ? y 2 ≤ x ≤ 1 , ? 1 ≤ y ≤ 1 } D=\{(x,y)\vert \sqrt{1-y^2}\leq x\leq1, -1\leq y\leq1\} D={(x,y)1?y2 ?x1,?1y1},计算 ? D x x 2 + y 2 d x d y \iint_{D}\frac{x}{\sqrt{x^2+y^2}}\text dx\text dy ?D?x2+y2 ?x?dxdy

sympy符号计算

这个式子可以变为

∫ ? 1 1 ∫ 1 ? y 2 1 x x 2 + y 2 d x d y \int^1_{-1}\int^1_{\sqrt{1-y^2}}\frac{x}{\sqrt{x^2+y^2}}\text dx\text dy ?11?1?y2 ?1?x2+y2 ?x?dxdy

然后就是个简单的二重积分了,可以用sympy进行符号计算

from sympy.abc import x,y,z
from sympy import sqrt, integrate, print_latex

z = integrate(x/sqrt(x**2+y**2), (x, sqrt(1-y**2), 1), (y, -1, 1))
print_latex(z)

? 2 + log ? ( 1 + 2 ) 2 ? log ? ( ? 1 + 2 ) 2 + 2 -2 + \frac{\log{\left(1 + \sqrt{2} \right)}}{2} - \frac{\log{\left(-1 + \sqrt{2} \right)}}{2} + \sqrt{2} ?2+2log(1+2 ?)??2log(?1+2 ?)?+2 ?

sympy输出的 log ? \log log其实就是 ln ? \ln ln,而且可以略微化简一下

1 2 ln ? 2 + 1 2 ? 1 = 1 2 ln ? ( 2 + 1 ) 2 2 ? 1 = ln ? ( 2 + 1 ) \begin{aligned} &\frac{1}{2}\ln\frac{\sqrt2+1}{\sqrt2-1}\\ =&\frac{1}{2}\ln\frac{(\sqrt2+1)^2}{2-1}\\ =&\ln(\sqrt2+1) \end{aligned} ==?21?ln2 ??12 ?+1?21?ln2?1(2 ?+1)2?ln(2 ?+1)?

最后得到积分的值为

2 ? 2 + ln ? ( 2 + 1 ) \sqrt2-2+\ln(\sqrt2+1) 2 ??2+ln(2 ?+1)

scipy数值计算

这道题最后得到了数值解,所以也可以用scipy来做,就是不知道数值解给不给分[doge]。

from scipy.integrate import dblquad
import numpy as np
func = lambda x,y : x/np.sqrt(x**2+y**2)
gf = lambda x: np.sqrt(1-x**2)
hf = lambda x: 1
dblquad(func, -1, 1, gf, hf)
# (0.2955871493926381, 1.5482781481064242e-10)

这个结果与符号计算的结果一致

np.sqrt(2)-2+np.log(np.sqrt(2)+1)
# 0.2955871493926381

文章来源:https://blog.csdn.net/m0_37816922/article/details/135197679
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。