本文主要是介绍Python考研:2024年第17题二重积分,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- sympy符号计算
- scipy数值计算
已知平面区域 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≤x≤1,−1≤y≤1},计算 ∬ D x x 2 + y 2 d x d y \iint_{D}\frac{x}{\sqrt{x^2+y^2}}\text dx\text dy ∬Dx2+y2xdxdy。
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−y21x2+y2xdxdy
然后就是个简单的二重积分了,可以用sympy进行符号计算
from sympy.abc import x,y,z
from sympy import sqrt, integrate, print_latexz = 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} ==21ln2−12+121ln2−1(2+1)2ln(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
这篇关于Python考研:2024年第17题二重积分的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!