python 求简单定积分

在某个微信群里看到个积分题目,说是用六年级的知识解???其实根据后面运行的结果来看,手算可能不太行。
在这里插入图片描述

import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
import numpy as np
x1 = np.arange(-4,4,0.01)
y1 = (16-x1**2)**0.5
x2 = np.arange(-2,6,0.01)
y2 = (16-(x2-2)**2)**0.5
plt.figure(figsize=(15,7))
plt.plot(x1,y1)
plt.plot(x2,y2)
plt.grid()
plt.show()

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VnQEUsmM-1589117373011)(output_2_0.png)]
计算交点横坐标

import sympy
x = sympy.symbols("x")
a = sympy.solve([(16-x**2)**0.5-(16-(x-2)**2)**0.5],[x])
print(a)
[(1.00000000000000,)]

计算交点纵坐标

y = (16-(1-2)**2)**0.5
y
3.872983346207417
from scipy.integrate import tplquad,dblquad,quad 
#积分
val1,err1=quad(lambda x:(16-(x-2)**2)**0.5,#函数
               -2,#x下界
               1)#x上界
print ("积分结果:",val1)
积分结果: 8.608436900118841
print ("阴影部分面积:",0.5*np.pi*(4**2)-val1*2)
阴影部分面积: 7.915867428480663

版权声明:本文为qq_41081716原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。