计算机数值分析:复化辛普生公式(python实现

这里并不能够说完全实现了复化辛普生公式,因为这里面涉及到具体的函数,而我们需要事先知道函数表达式,才能够求出来。
故而这里是以书上的一道例题来写

例题以及书上结果如下:
在这里插入图片描述在这里插入图片描述
这里我也并没有按照流程图来写(不过大同小异),而是按照表达式来写
流程图和表达式如下
在这里插入图片描述
在这里插入图片描述
代码如下:

# coding=gbk;
#因为使用复化辛普生公式会涉及到函数的具体形式
# 所以这里我就暂且令 f(x)=sin(x)/x
import math;
def compute_fx(temp):  #用来计算函数值
    if temp==0:
        return 1.0;
    return math.sin(temp)/temp;

def fuhua_simpson(a1,b1,h1,n1):  #复化辛普生
    S=compute_fx(b1)-compute_fx(a1);
    account=0;
    x=a1; 
    while account<n:
        S+=4*compute_fx(x+h1/2)+2*compute_fx(x);
        x+=h;
        account+=1;
    return S;

list_temp=input("请分别输入积分得上下限以及想要将其几等分:").split(" ");
a=float(list_temp[0]);
b=float(list_temp[1]);
n=float(list_temp[2]);
h=(b-a)/n; #h是步长
result=fuhua_simpson(a, b, h, n);
result=result*h/6;
print(result);

运行结果:
在这里插入图片描述

遇事不决,可问春风

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值