最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python龍貝格法求積分實(shí)例

 更新時(shí)間:2020年02月29日 12:26:59   作者:咚咚怪  
今天小編就為大家分享一篇Python龍貝格法求積分實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧

我就廢話不多說了,直接上代碼吧!

# 龍貝格法求積分
import math
a=0    # 積分下限
b=1    # 積分上限
eps=10**-5  # 精度
T=[]   # 復(fù)化梯形序列
S=[]   # Simpson序列
C=[]   # Cotes序列
R=[]   # Romberg序列
def func(x): # 被積函數(shù)
 y=math.exp(-x)
 return y
def Romberg(a,b,eps,func):
 h = b - a
 T.append(h * (func(a) + func(b)) / 2)
 ep=eps+1
 m=0
 while(ep>=eps):
  m=m+1
  t=0
  for i in range(2**(m-1)-1):
   t=t+func(a+(2*(i+1)-1)*h/2**m)*h/2**m
  t=t+T[-1]/2
  T.append(t)
  if m>=1:
   S.append((4**m*T[-1]-T[-2])/(4**m-1))
  if m>=2:
   C.append((4**m*S[-1]-S[-2])/(4**m-1))
  if m>=3:
   R.append((4**m*C[-1]-C[-2])/(4**m-1))
  if m>4:
   ep=abs(10*(R[-1]-R[-2]))
Romberg(a,b,eps,func)
# print(T)
# print(S)
# print(C)
# print(R)
# 計(jì)算機(jī)參考值0.6321205588
print("積分結(jié)果為:{:.5f}".format(R[-1]))

補(bǔ)充拓展:python實(shí)現(xiàn)數(shù)值分析之龍貝格求積公式

復(fù)合梯形公式的提出:

1.首先,什么是梯形公式:

梯形公式表明:f(x)在[a,b]兩點(diǎn)之間的積分(面積),近似地可以用一個梯形的面積表示。

2.顯然,這個梯形公式對于不同的f(x)而言,其代數(shù)精度不同。為了能適合更多的f(x),我們一般使用牛頓-科特斯公式其中比較高次的公式來進(jìn)行數(shù)值求積。但高次的缺陷是當(dāng)次數(shù)大于8次,求積公式就會不穩(wěn)定。因此,我們用于數(shù)值積分的牛頓-科特斯公式通常是一次的梯形公式、二次的辛普森公式和4此的科特斯公式。

辛普森公式:

科特斯公式:

3.牛頓-科特斯公式次數(shù)高于8次不能用,但是低次公式又精度不夠。解決辦法就是使用:復(fù)合梯形求積公式。復(fù)合求積公式就是在區(qū)間[a,b]上劃分n格小區(qū)間。一個大區(qū)間[a,b]上用一次梯形公式精度不夠,那么在n個小區(qū)間都使用梯形公式,最后將小區(qū)間的和累加起來,就可以得到整個大區(qū)間[a,b]的積分近似值。

a = x0 < x1 <x2 …<xn-1 < xn =b

令Tn為將[a,b]劃分n等分的復(fù)合梯形求積公式,h =(b-a)/n為小區(qū)間的長度。h/2類似于梯形公式中的(b-a)/2

注意:這里的k+1是下標(biāo)

通過研究我們發(fā)現(xiàn):T2n與Tn之間存在一些遞推關(guān)系。

注意:這里的k+1/2是下標(biāo)。并且其中的h/2是中的h是Tn(n等分中的h = (b-a)/n))

于是乎,我們可以一次推出T1,T2,T4,T8…T2n序列

引出這些之后,才是我們的主題:龍貝格求積公式

龍貝格求積公式的實(shí)質(zhì)是用T2n序列構(gòu)造,S2n序列,

再用S2n序列構(gòu)造C2n序列

最后用C2n序列構(gòu)造R2n序列。

編程實(shí)現(xiàn),理解下面的幾個公式即可。

python編程代碼如下:

# coding=UTF-8
# Author:winyn
'''
給定一個函數(shù),如:f(x)= x^(3/2),和積分上下限a,b,用機(jī)械求積Romberg公式求積分。

'''
import numpy as np


def func(x):
 return x**(3/2)

class Romberg:
 def __init__(self, integ_dowlimit, integ_uplimit):
  '''
  初始化積分上限integ_uplimit和積分下限integ_dowlimit
  輸入一個函數(shù),輸出函數(shù)在積分上下限的積分

  '''
  self.integ_uplimit = integ_uplimit
  self.integ_dowlimit = integ_dowlimit



 def calc(self):
  '''
  計(jì)算Richardson外推算法的四個序列

  '''
  t_seq1 = np.zeros(5, 'f')
  s_seq2 = np.zeros(4, 'f')
  c_seq3 = np.zeros(3, 'f')
  r_seq4 = np.zeros(2, 'f')
  # 循環(huán)生成hm間距序列
  hm = [(self.integ_uplimit - self.integ_dowlimit) / (2 ** i) for i in range(0,5)]
  print(hm)
  # 循環(huán)生成t_seq1
  fa = func(self.integ_dowlimit)
  fb = func(self.integ_uplimit)

  t0 = (1 / 2) * (self.integ_uplimit - self.integ_dowlimit) * (fa+fb)
  t_seq1[0] = t0

  for i in range(1, 5):
   sum = 0
   # 多出來的點(diǎn)的累加和
   for each in range(1, 2**i,2):
    sum =sum + hm[i]*func( self.integ_dowlimit+each * hm[i])#計(jì)算兩項(xiàng)值
   temp1 = 1 / 2 * t_seq1[i - 1]
   temp2 =sum
   temp = temp1 + temp2
   # 求t_seql的1-4位
   t_seq1[i] = temp
  print('T序列:'+ str(list(t_seq1)))
  # 循環(huán)生成s_seq2
  s_seq2 = [round((4 * t_seq1[i + 1] - t_seq1[i]) / 3,6) for i in range(0, 4)]
  print('S序列:' + str(list(s_seq2)))
  # 循環(huán)生成c_seq3
  c_seq3 = [round((4 ** 2 * s_seq2[i + 1] - s_seq2[i]) / (4 ** 2 - 1),6) for i in range(0, 3)]
  print('C序列:' + str(list(c_seq3)))
  # 循環(huán)生成r_seq4
  r_seq4 = [round((4 ** 3 * c_seq3[i + 1] - c_seq3[i]) / (4 ** 3 - 1),6) for i in range(0, 2)]
  print('R序列:' + str(list(r_seq4)))
  return 'end'


rom = Romberg(0, 1)
print(rom.calc())

以上這篇Python龍貝格法求積分實(shí)例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • videocapture庫制作python視頻高速傳輸程序

    videocapture庫制作python視頻高速傳輸程序

    python視頻高速傳輸程序,大家參考使用吧
    2013-12-12
  • python 通過字符串調(diào)用對象屬性或方法的實(shí)例講解

    python 通過字符串調(diào)用對象屬性或方法的實(shí)例講解

    下面小編就為大家分享一篇python 通過字符串調(diào)用對象屬性或方法的實(shí)例講解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • Python獲取PDF文檔的各種頁面信息

    Python獲取PDF文檔的各種頁面信息

    了解PDF頁面信息對于有效處理、編輯和管理PDF文件至關(guān)重要,PDF文件通常包含多個頁面,每個頁面可能有不同的尺寸、方向、旋轉(zhuǎn)角度以及其他屬性,這篇文章將介紹如何使用Python獲取PDF文檔的各種頁面信息,需要的朋友可以參考下
    2025-02-02
  • 基于MSELoss()與CrossEntropyLoss()的區(qū)別詳解

    基于MSELoss()與CrossEntropyLoss()的區(qū)別詳解

    今天小編就為大家分享一篇基于MSELoss()與CrossEntropyLoss()的區(qū)別詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • Python如何輸出異常信息(行號)

    Python如何輸出異常信息(行號)

    這篇文章主要介紹了Python如何輸出異常信息(行號)問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • python ForMaiR實(shí)現(xiàn)自定義規(guī)則的郵件自動轉(zhuǎn)發(fā)工具

    python ForMaiR實(shí)現(xiàn)自定義規(guī)則的郵件自動轉(zhuǎn)發(fā)工具

    這篇文章主要為大家介紹了python ForMaiR實(shí)現(xiàn)自定義規(guī)則的郵件自動轉(zhuǎn)發(fā)工具示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • 關(guān)于Python3 lambda函數(shù)的深入淺出

    關(guān)于Python3 lambda函數(shù)的深入淺出

    今天小編就為大家分享一篇關(guān)于Python3 lambda函數(shù)的深入淺出,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • 深入理解python中的atexit模塊

    深入理解python中的atexit模塊

    atexit模塊很簡單,只定義了一個register函數(shù)用于注冊程序退出時(shí)的回調(diào)函數(shù),我們可以在這個回調(diào)函數(shù)中做一些資源清理的操作。下面這篇文章主要介紹了python中atexit模塊的相關(guān)資料,需要的朋友可以參考下。
    2017-03-03
  • Anaconda+pycharm安裝及環(huán)境配置全過程

    Anaconda+pycharm安裝及環(huán)境配置全過程

    在使用pyCharm進(jìn)行開發(fā)時(shí),需要用到Anaconda創(chuàng)建的環(huán)境,下面這篇文章主要給大家介紹了關(guān)于Anaconda+pycharm安裝及環(huán)境配置的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • 教你利用Python破解ZIP或RAR文件密碼

    教你利用Python破解ZIP或RAR文件密碼

    常常會從網(wǎng)絡(luò)上下載一些帶密碼的壓縮包,想要獲取里面的內(nèi)容,往往就要給提供商支付一些費(fèi)用.想要白嫖其中的內(nèi)容,常見的做法是百度搜索一些壓縮包密碼破解軟件,但后果相信體驗(yàn)過的人都知道.本文詳細(xì)介紹了怎么破解壓縮包,需要的朋友可以參考下
    2021-05-05

最新評論

普陀区| 无锡市| 凤冈县| 贵德县| 徐州市| 黄陵县| 新龙县| 东台市| 清涧县| 双鸭山市| 牡丹江市| 晴隆县| 孝义市| 冷水江市| 连城县| 崇信县| 得荣县| 沙河市| 淮滨县| 集贤县| 商洛市| 无极县| 夏邑县| 福泉市| 裕民县| 丰宁| 新邵县| 体育| 荆州市| 图木舒克市| 清远市| 乌兰浩特市| 化隆| 阜新| 天镇县| 华容县| 鹿邑县| 崇义县| 绥阳县| 江北区| 息烽县|