一般数值计算教材都只讲一重积分,很少讲二重积分和三重积分,这里我写了一个用Simpson方法求解二重积分的程序,供大家参考。程序的要点在于构建一个系数矩阵,具体教程可以参考
https://max.book118.com/html/2018/0419/162077258.shtm(张正印,二重积分的Simpson公式及其误差估计)


import math
import numpy as np
import matplotlib.pyplot as plt
import sys
# this code calculate the 2d intergration with simpson method, the coffecient matrix is fixed and being created first, then the results can easily be calculated. . def grid_line1(n):# n is the size of x, should be oddgrid=np.zeros(n,dtype=float)for i in range (0,n):if i%2==0:grid[i]=2else:grid[i]=4grid[0]=grid[-1]=1return grid
def grid_line2(n):# n is the size of x, should be oddgrid=np.zeros(n,dtype=float)for i in range (0,n):if i%2==0:grid[i]=8else:grid[i]=16grid[0]=grid[-1]=4return grid
def grid_line3(n):# n is the size of x, should be oddgrid=np.zeros(n,dtype=float)for i in range (0,n):if i%2==0:grid[i]=4else:grid[i]=8grid[0]=grid[-1]=2return grid
def simpson2d_grid(x,y):n=x.sizem=y.sizeif n%2==0 or m%2==0:print("error, the size of x should be odd")sys.exit()else:grid1=grid_line1(n)grid2=grid_line2(n)grid3=grid_line3(n)grid0 = np.zeros((m,n),dtype=float)for i in range (0,m):if  i%2==0:grid0[i,:]=np.copy(grid3)else:grid0[i,:]=np.copy(grid2)grid0[0,:]=np.copy(grid1)grid0[-1,:]=np.copy(grid1)return grid0
def b(x0,y0):# the function is intergrate2d(ln(x+2*y)dxdy),x(1.4-2.0),y(1.0-1.5)return math.log(x0+2*y0)xs = 1.4
xe = 2.0
ys = 1.0
ye = 1.5
n_x_grid=9
n_y_grid=9x=np.linspace(xs,xe,n_x_grid)
y=np.linspace(ys,ye,n_y_grid)coef_matrix=simpson2d_grid(x,y)
print(coef_matrix)
h=x[1]-x[0]
k=y[1]-y[0]
result = 0for j in range(0,y.size):for i in range(x.size):result=result+h*k/9*coef_matrix[j,i]*b(x[i],y[j])
print(result)

系数矩阵和结果如下

二重积分的复化Simpson方法相关推荐

  1. c语言simpson积分计算方法,数值分析复化Simpson积分公式和复化梯形积分公式计算积分的通用程序...

    数值分析复化Simpson积分公式和复化梯形积分公式计算积分的通用程序 数值分析第五次程序作业 PB09001057 孙琪 [问题] 分别编写用复化Simpson积分公式和复化梯形积分公式计算积分的通 ...

  2. python数值积分_python与计算物理:实现数值积分的Simpson方法

    1.[代码]python与计算物理:实现数值积分的Simpson方法. #!/usr/bin/env python #coding=utf-8 ''' Created on 2012年10月27日 @ ...

  3. python数值积分_python实现数值积分的Simpson方法实例分析

    本文实例讲述了python实现数值积分的Simpson方法.分享给大家供大家参考.具体如下: #coding = utf-8 #simpson 法计算积分,数值积分,效果非常理想 from math ...

  4. MATLAB 复化梯形公式、复化Simpson公式

    f.m文件: function f = f(x) f = (x^2)*sin(x); end 复化梯形公式 Tn.m文件: function Tn=Tn(n) % n代表区间数a = -2; % 区间 ...

  5. 数值分析复化梯形公式matlab,数值分析复化梯形公式,复化Simpson公式MATLAB程序

    <数值分析复化梯形公式,复化Simpson公式MATLAB程序>由会员分享,可在线阅读,更多相关<数值分析复化梯形公式,复化Simpson公式MATLAB程序(1页珍藏版)>请 ...

  6. java二重积分_对比较简单点的二重积分的做题方法

    计算二重积分的基本思路是将其化作累次积分(也即两次定积分),要把二重积分化为累次积分,有两个主要的方式:一是直接使用直角坐标,二是使用极坐标.这是我们计算二重积分的两个主要的武器.首先,对直角坐标来说 ...

  7. 数值分析复化求积matlab,MATLAB数值分析实验二(复合梯形、辛普森和龙贝格求积,以及二重积分计算等)...

    1.理解如何在计算机上使用数值方法计算定积近似值; 2.学会复合梯形.复合Simpson和龙贝格求积分公式的编程与应用. 3.探索二重积分在矩形区域的数值积分方法. 佛山科学技术学院 实 验 报 告 ...

  8. 辛普森复合求积公式matlab,MATLAB数值分析实验二(复合梯形、辛普森和龙贝格求积,以及二重积分计算等).doc...

    [摘要]佛山科学技术学院 实 验 报 告 课程名称 数值分析 实验项目 数值积分 专业班级 机械工程 姓 名 余红杰 学 号 2111505010 指导教师 陈剑 成 绩 日 期 月 日 一.实验目的 ...

  9. 合肥工业大学宣城校区计算方法 实验二

    1实验目的和要求 实验目的: (1)熟悉复化梯形方法.复化Simpson方法.梯形递推算法.龙贝格算法: (2)能编程实现复化梯形方法.复化Simpson方法.梯形递推算法.龙贝格算法: (3)理解并 ...

  10. 数值积分的python实现——NewtonCotes、复化求积、Romberg、richardson递推

    数值积分的python实现--NewtonCotes,复化求积,Romberg,richardson递推 1. 机械求积 2. Newton-Cotes公式 3. 复化求积方法 3.1 复化梯形公式 ...

最新文章

  1. 构建一个LVS-DR模型的高性能集群,并实现Nginx、PHP、MySQL分离
  2. 内嵌iframe撑高父容器,底部有4px留白问题解决办法
  3. c语言定义函数insert,c语言编写函数insert(char s1[ ],char s2[ ],int pos),实现在字符串s1中的指定位置pos处插入字符串s2。...
  4. cmd小游戏编程100例_学宏程序编程,这些知识必不可少!
  5. 使用AT指令发送PDU短信的全过程
  6. IDEA clone项目
  7. java 保存文件在服务器_java文件保存至服务器
  8. session的存储,以及redis基本介绍
  9. 【响应式编程的思维艺术】 (3)flatMap背后的代数理论Monad
  10. P50发布!网友:滚筒洗衣机也能打电话了
  11. Android轩辕剑之ActionBar之一
  12. 用数组建立二叉树(LeetCode二叉树测试)
  13. jQuery静态方法(each、map、isFunction, isWindow, isArray, .trim(), .holdReady())
  14. python好玩的代码-好玩的游戏
  15. 计算机考研如何选?中国人民大学学长两年考研经验+权威预测
  16. php 图片后加参数缩图,智能的PHP缩图类
  17. WORD文本框和文本框之间,文本框和文字相互不覆盖
  18. HFC网、FTTx技术、PON
  19. Entity Framework自定义迁移历史表(EF6以上)
  20. 【使用老电脑win7下载miniconda】

热门文章

  1. ceph rbd扩容
  2. Android当前任务管理器不显示应用进程
  3. mt管理器怎么运行HTML文件,MT管理器怎么修改游戏数据 MT管理器修改内购教程
  4. java:调节图片透明度(支持透明背景)
  5. 虚拟路由器冗余协议——VRRP
  6. 前端性能优化——字体文件压缩
  7. pearlovell
  8. java 并g1_JVM G1详解
  9. Google ArCode官网 ARCode支持机型
  10. 这8个坏习惯加重体内湿气,一定要改掉!否则……