欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python實現(xiàn)數(shù)值積分方式

 更新時間:2019年11月20日 10:09:23   作者:MachineRandy  
今天小編就為大家分享一篇Python實現(xiàn)數(shù)值積分方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

原理:

利用復化梯形公式,復化Simpson公式,計算積分。

步驟:

import math

"""測試函數(shù)"""
def f(x,i):
  if i == 1:
    return (4 - (math.sin(x)) ** 2) ** 0.5
  if i == 2:
    if x == 0:
      return 1
    else:
      return math.sin(x) / x
  if i == 3:
    return (math.exp(x)) / (4 + x ** 2)
  if i == 4:
    return math.log(1+x,math.e) / (1 + x ** 2)

"""打印顯示函數(shù)"""   
def p(i,n):
  return "第" + str(i) + "題,n=" + str(n) + "時的積分值為:"

"""復化Simpson函數(shù)"""
def Simpson(a, b, n, i):
  h = (b - a) / (2 * n)
  F0 = f(a,i) + f(b,i)
  F1 = 0
  F2 = 0
  for j in range(1,2 * n):
    x = a + (j * h)
    if j % 2 == 0:
      F2 = F2 + f(x,i)
    else:
      F1 = F1 + f(x,i)
  SN = (h * (F0 + 2 * F2 + 4 * F1)) / 3
  print("復化Simpson函數(shù)" + p(i,n) + str("%-10.7f"%(SN)))
  return SN

def T(a, b, n, i):
  h = (b - a) / n
  F0 = f(a,i) + f(b,i)
  F = 0
  for j in range(1,n):
    x = a + (j * h)
    F = F + f(x,i)
  SN = (h * (F0 + 2 * F)) / 2
  print("復化梯形函數(shù)" + p(i,n) + str("%-10.7f"%(SN)))
  return SN

def SimpsonTimes(x):
  n = 1
  y = Simpson(0, math.pi/4, n, 1)
  while(abs(y - 1.5343916) > x):
    n = n + 1
    y = Simpson(0, math.pi/4, n, 1)
  else:
    return n

def Times(x):
  n = 1
  y = T(0, math.pi/4, n, 1)
  while(abs(y - 1.5343916) > x):
    n = n + 1
    y = T(0, math.pi/4, n, 1)
  else:
    return n


"""
  測試部分  
"""
Simpson(0, math.pi/4, 10, 1)
Simpson(0, 1, 10, 2)
Simpson(0, 1, 10, 3)
Simpson(0, 1, 10, 4)
Simpson(0, math.pi/4, 20, 1)
Simpson(0, 1, 20, 2)
Simpson(0, 1, 20, 3)
Simpson(0, 1, 20, 4)

T(0, math.pi/4, 10, 1)
T(0, 1, 10, 2)
T(0, 1, 10, 3)
T(0, 1, 10, 4)
T(0, math.pi/4, 20, 1)
T(0, 1, 20, 2)
T(0, 1, 20, 3)
T(0, 1, 20, 4)

print("復化梯形函數(shù)求解第一問,精度為0.00001時需要" + str(Times(0.00001)) + "個步數(shù)")
print("復化Simpson函數(shù)求解第一問,精度為0.00001時需要" + str(SimpsonTimes(0.00001)) + "個步數(shù)")
print("復化梯形函數(shù)求解第一問,精度為0.000001時需要" + str(Times(0.000001)) + "個步數(shù)")
print("復化Simpson函數(shù)求解第一問,精度為0.000001時需要" + str(SimpsonTimes(0.000001)) + "個步數(shù)")

以上這篇Python實現(xiàn)數(shù)值積分方式就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python的exec、eval使用分析

    python的exec、eval使用分析

    這篇文章主要介紹了python的exec、eval使用分析,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12
  • python 生成器生成楊輝三角的方法(必看)

    python 生成器生成楊輝三角的方法(必看)

    下面小編就為大家?guī)硪黄猵ython 生成器生成楊輝三角的方法(必看)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • Python是怎樣處理json模塊的

    Python是怎樣處理json模塊的

    這篇文章主要介紹了Python是怎樣處理json模塊的,文中講解非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-07-07
  • tornado框架blog模塊分析與使用

    tornado框架blog模塊分析與使用

    這篇文章主要介紹了tornado框架blog模塊的使用方法,大家參考使用吧
    2013-11-11
  • Python正則表達式函數(shù)match()和search()使用全面指南

    Python正則表達式函數(shù)match()和search()使用全面指南

    在Python中,正則表達式是強大的工具,能夠用于文本匹配、搜索和替換,re模塊提供了許多函數(shù)來處理正則表達式,其中match()和search()是兩個常用的函數(shù),本文將深入探討這兩個函數(shù)的用法、區(qū)別和示例,幫助你更好地理解它們的功能
    2024-01-01
  • python?yaml文件數(shù)據(jù)按原有的數(shù)據(jù)順序dump問題小結(jié)

    python?yaml文件數(shù)據(jù)按原有的數(shù)據(jù)順序dump問題小結(jié)

    這篇文章主要介紹了python?yaml文件數(shù)據(jù)按原有的數(shù)據(jù)順序dump,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2023-11-11
  • 對python多線程中Lock()與RLock()鎖詳解

    對python多線程中Lock()與RLock()鎖詳解

    今天小編就為大家分享一篇對python多線程中Lock()與RLock()鎖詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python3操作Excel文件(讀寫)的簡單實例

    Python3操作Excel文件(讀寫)的簡單實例

    這篇文章主要給大家介紹了關(guān)于Python3操作Excel文件(讀寫)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Python3具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-09-09
  • PyQt5 在label顯示的圖片中繪制矩形的方法

    PyQt5 在label顯示的圖片中繪制矩形的方法

    今天小編就為大家分享一篇PyQt5 在label顯示的圖片中繪制矩形的方法,具有很好的參考價值。希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • 詳解Python常用標準庫之os模塊與shutil模塊

    詳解Python常用標準庫之os模塊與shutil模塊

    os系統(tǒng)模塊與shutil文件操作模塊是Python常用的標準庫,本文將通過示例詳細講解一下二者的使用,感興趣的小伙伴可以跟隨小編一起學習一下
    2022-06-06

最新評論