当前位置 : 主页 > 编程语言 > python >

python实现抛物线与x轴相交求阴影部分面积

来源:互联网 收集:自由互联 发布时间:2022-07-19
目录 ​​1、题目描述​​ ​​2、代码实现​​ ​​3、运行结果​​ 1、题目描述 令f(x)=-x^2+2x,用python编程求解y≤f(x)和y≥0的交集所形成的区域S的面积。方法是:把区间[0,2]分成n个


目录

​​1、题目描述​​

​​2、代码实现​​

​​3、运行结果​​


1、题目描述

令f(x)=-x^2+2x,用python编程求解y≤f(x)和y≥0的交集所形成的区域S的面积。方法是:把区间[0,2]分成n个长度相同的小区间,用小区间的矩形的面积近似代表相应原图形的面积,如在区间[a,b]上高为(f(a)+f(b))/2的矩形代表f(x)在区间[a,b]的曲面。所有这些小矩形的面积之和S(n)可作为S的近似值。当n足够大时,其误差足够小。用迭代法,随着n的增大,当|s(n+1)-s(n)|<0. 000001时,即认为s(n+1)等于S。
要求:不能用积分公式直接计算。
输入:(无)
输出:面积是:1.333333
提示:
1. n可从20开始,n每增加1,S(n)都要重新计算。原理是当S(n+1)对S(n)的改善足够小时(此处为0. 000001),认为找到了所求面积。
2.使用绝对值函数abs前,需执行语句from math import *


python实现抛物线与x轴相交求阴影部分面积_笔试题

函数图像

2、代码实现

#!/usr/bin/env python
# -*- coding:utf-8 -*-

# 定积分函数,可以修改
def fx(x):
return -x ** 2 + 2 * x

# 定义第i个区间的中点值,即定义积分变量
def middle(a, b, n, i):
return a + i * (b - a) / n;

# 定义每个小区间的间隔差,即将范围分成n个等区间
def cha(a, b, n):
return (b - a) / n;

# 函数体
def fun():
# 抛物线与x轴相交于a(0, 0), b(0, 2)
a = 0
b = 2
# 执行次数,次数越大,结果越近真实数值
n = 100000
sum = 0
e = cha(a, b, n)
for i in range(20, n):
x = middle(a, b, n, i)
sum += fx(x)
print("面积是:%f" % (sum * e))

if __name__ == '__main__':
fun()

3、运行结果

面积是:1.333333

 

上一篇:python实现猜数字小游戏
下一篇:没有了
网友评论