【matlab】数值积分公式的程序实现
(一)专题实验(Newton-Cotes积分公式)
1、编写[a,b]上梯形积分公式、Simpson积分公式。
2、利用自己编写的程序计算定积分,计算一下数值解和精确解之间差的绝对值。
梯形积分:
function T=TX_int(f,a,b)
T=(b-a)/2*(f(a)+f(b));
>> TX_int(@(x)cos(x),0,pi/4)
ans =
0.6704
function T=TX_int(f,a,b)
T=(b-a)/2*(f(a)+f(b));
a=abs(sqrt(2)/2-T);
disp(a)
>> TX_int(@(x)cos(x),0,pi/4)
0.0367
ans =
0.6704
Simpson积分;
function T=TX_int(f,a,b)
T=(b-a)/6*(f(a)+4*f((a+b)/2)+f(b));
>> TX_int(@(x)cos(x),0,pi/4)
ans =
0.7072
function T=TX_int(f,a,b)
T=(b-a)/6*(f(a)+4*f((a+b)/2)+f(b));
d=abs(sqrt(2)/2-T);
disp(d);
>> TX_int(@(x)cos(x),0,pi/4)
9.5166e-05
ans =
0.7072
(二)专题实验(1维有限区域的Gauss-Legendre积分公式)
1、编写[-1,1]上的2点、3点Gauss-Legendre积分公式。
2点:
function T=TX_int(f,x,a,b)
T=f(-1/(3^0.5))+f(1/(3^0.5));
>> TX_int(@(x)x^2,-1,1)
ans =
0.6667
3点:
function T=TX_int(f,x,a,b)
T=5/9*f(-15^0.5/5)+5/9*f(15^0.5/5)+8/9*f(0);
>> TX_int(@(x)x^2,-1,1)
ans =
0.6667
- 编写一般有限区间[a,b]上的2点、3点Gauss-Legendre积分公式。
2点:
function T=TX_int(f,a,b)
T=(b-a)/2*(f((b+a)/2-(b-a)/2*(3^0.5))+(f((b+a)/2+(b-a)/2*(3^0.5))));
>> TX_int(@(x)x^2,1,2)
ans =
3.0000
3点:
function T=TX_int(f,a,b)
T=(b-a)/2*(5/9*f((b+a)/2-(b-a)/2*(-15^0.5/5))+5/9*(f((b+a)/2+(b-a)/2*(-15^0.5/5)))+8/9*f((b+a)/2));
>> TX_int(@(x)x^2,0,1)
ans =
0.3333
- 利用自己编写的程序计算定积分,计算一下数值解和精确解之间差的绝对值。
2点:
function T=TX_int(f,a,b)
T=(b-a)/2*(f((b+a)/2-(b-a)/2*(3^0.5))+(f((b+a)/2+(b-a)/2*(3^0.5))));
>> T=TX_int(@(x)cos(x),0,pi/4)
T =
0.5641
>> a=abs(sqrt(2)/2-T)
a =
0.1430
3点:
function T=TX_int(f,a,b)
T=(b-a)/2*(5/9*f((b+a)/2-(b-a)/2*(-15^0.5/5))+5/9*(f((b+a)/2+(b-a)/2*(-15^0.5/5)))+8/9*f((b+a)/2));
>> T=TX_int(@(x)cos(x),0,pi/4)
T =
0.7071
>> a=abs(sqrt(2)/2-T)
a =
8.4083e-08
(三)专题实验(复化积分公式)
1、编写一般有限区间[a,b]上复化Simpson公式、复化2点Gauss-Legendre积分公式。
复化Simpson公式:
function T=TX_int(f,a,b,N)
%采用N等分的复化Simpson公式,计算函数f在有限区间[a,b]上的积分.
%返回值T为数值积分值.
T=0;
h=(b-a)/N;
for k=0:N-1
xk=a+k*h;
xk1=a+(k+1)*h;
T=T+(xk1-xk)/2*(f(xk)+f(xk1));
end
复化2点Gauss-Legendre积分公式:
function T=TX_int(f,a,b,N)
%采用N等分的复化Simpson公式,计算函数f在有限区间[a,b]上的积分.
%返回值T为数值积分值.
T=0;
h=(b-a)/N;
for k=0:N-1
xk=a+k*h;
xk1=a+(k+1)*h;
T=T+(xk1-xk)/6*(f(xk)+4*f((xk+xk1)/2)+f(xk1));
end
2、编写程序时对区间N等分,利用自己编写的程序计算定积分,计算一下数值解和精确解之间差的绝对值。测试时要求:对区间等分10份。
复化Simpson公式:
>> T=TX_int(@(x)cos(x),0,pi/4,10)
T =
0.7067
>> a=abs(sqrt(2)/2-T)
a =
3.6352e-04
复化2点Gauss-Legendre积分公式:
>> T=TX_int(@(x)cos(x),0,pi/4,10)
T =
0.7071
>> a=abs(sqrt(2)/2-T)
a =
9.3440e-09
(四)专题实验(2维矩形区域上的Gauss积分公式)
1、编写正方形区域[-1,1]*[-1,1]上的4点Gauss积分公式。
function T=TX_int(f)
T=f(1/sqrt(3),1/sqrt(3))+f(-1/sqrt(3),1/sqrt(3))+f(-1/sqrt(3),-1/sqrt(3))+f(1/sqrt(3),-1/sqrt(3));
>> T=TX_int(@(x,y)1/((x+2)*(y+3)))
T =
0.7552
- 编写一般矩形区域[a,b]*[c,d]上的4点Gauss积分公式。在区域[1,2]*[3,4]上对1中二元函数做数值积分试验,并和精确解做对比。
function T=TX_int(f,a,b,c,d)
m=(b+a)/2;
n=(b-a)/2;
p=(d+c)/2;
q=(d-c)/2;
T=n*q*(f(m+n*1/sqrt(3),p+q*1/sqrt(3))+f(m+n*(-1/sqrt(3)),p+q*1/sqrt(3))+f(m+n*(-1/sqrt(3)),p+q*(-1/sqrt(3)))+f(m+n*1/sqrt(3),p+q*(-1/sqrt(3))));
>> T=TX_int(@(x,y)1/((x+2)*(y+3)),1,2,3,4)
T =
0.0443
>> abs(T-log(4/3)*log(7/6))
ans =
1.8096e-06
3、编写一般矩形区域[a,b]*[c,d]上的9点Gauss积分公式。在区域[1,2]*[3,4]上对1中二元函数做数值积分试验,并和精确解做对比。
function T=TX_int(f,a,b,c,d)
m=(b+a)/2;
n=(b-a)/2;
p=(d+c)/2;
q=(d-c)/2;
T=n*q*(64/81*(f(m+n*0,p+q*0)+25/81*f(m+n*(sqrt(15)/5),p+q*sqrt(15)/5)+25/81*f(m+n*(-sqrt(15)/5),p+q*(sqrt(15)/5))+25/81*f(m+n*sqrt(15)/5,p+q*(-sqrt(15)/5))+25/81*f(m+n*(-sqrt(15)/5),p+q*(-sqrt(15)/5))+40/81*f(m+n*0,p+q*(sqrt(15)/5))+40/81*f(m+n*(-sqrt(15)/5),p+q*0))+40/81*f(m+n*0,p+q*(-sqrt(15)/5))+40/81*f(m+n*(sqrt(15)/5),p+q*0));
>> T=TX_int(@(x,y)1/((x+2)*(y+3)),1,2,3,4)
T =
0.0391
>> abs(T-log(4/3)*log(7/6))
ans =
0.0052
【matlab】数值积分公式的程序实现相关推荐
- 玩转matlab之一维 gauss 数值积分公式及matlab源代码
目录 标准区间 一般区间 数值实验 实验一 实验二 总结 下节预告 matlab代码 在数值分析中,尤其是有限元刚度矩阵.质量矩阵等的计算中,必然要求如下定积分: \[ I=\int_a^b f(x) ...
- matlab一维矩形积分,玩转matlab之一维 gauss 数值积分公式及matlab源代码
在数值分析中,尤其是有限元刚度矩阵.质量矩阵等的计算中,必然要求如下定积分: $$ I=\int_a^b f(x)dx $$学好gauss积分也是学好有限元的重要基础,学过高等数学的都知道,手动积分能 ...
- matlab的积分公式,玩转matlab之一维 gauss 数值积分公式及matlab源代码
释放双眼,带上耳机,听听看~! 目录 在数值分析中,尤其是有限元刚度矩阵.质量矩阵等的计算中,必然要求如下定积分: \\[ I=\\int_a^b f(x)dx \\]学好gauss积分也是学好有限元 ...
- 抛物线求积公式求积分算法matlab,基于Matlab的数值积分公式问题.doc
基于Matlab的数值积分公式问题 数值分析 学 号: 学 生 姓 名 :教 师 : 教师 2数值积分算法介绍............................................. ...
- 玩转 matlab 之一维 gauss 数值积分公式及matlab源代码
文章目录 标准区间 一般区间 数值实验 实验一 实验二 总结 下节预告 matlab代码 在数值分析中,尤其是 有限元刚度矩阵.质量矩阵等的计算中,必然要求如下定积分: I=∫abf(x)dxI=\i ...
- 实验Matlab数值运算,MATLAB数值实验一(数据的插值运算及其应用完整版
<MATLAB数值实验一(数据的插值运算及其应用完整版>由会员分享,可在线阅读,更多相关<MATLAB数值实验一(数据的插值运算及其应用完整版(6页珍藏版)>请在人人文库网上搜 ...
- 基于matlab的指纹识别程序
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 基于matlab的指纹识别程序 前言 一.程序思路是什么? 二.预处理步骤 1.指纹图像的灰度化处理 2.指纹图像的归一化与分割处理 ...
- MATLAB工具箱,应用程序,软件和资源的精选清单
精选的MATLAB工具箱,应用程序,软件和资源的精选清单. # Awesome MATLAB [![Awesome](https://cdn.rawgit.com/sindresorhus/aweso ...
- matlab绘制频散曲线,Matlab绘制频散曲线程序代码.docx
Matlab绘制频散曲线程序代码.docx 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. ...
最新文章
- 在DbGridEh中显示主从表
- 制作带有 GRUB 引导功能的软盘镜像文件
- HTML学习笔记之二(回到顶部 与 回到底部)
- 不能错过的RTS经典:《蘑菇战争2》是如何做玩法创新的?
- Struts2中使用OGNL表达式语言访问静态方法和静态属性以及我遇到的问题和解决方法
- request_irq() | 注册中断服务【ZT】
- C#根据word模板生成word表格报表文档
- Delphi版 熊猫烧香源码
- linux系统下怎么测试网口通不通,linux udp端口测试_linux udp端口测试_linux测试端口通不通...
- 计算机一级可以积分入深户吗,怎样积分入深户2019年深户办理条件
- WebService--CXF与Spring的整合(jaxws:endpoint形式配置)以及客户端调用(spring配置文件形式,不需要生成客户端代码)
- 什么是开源网络情报?有什么特点?
- 计算机格式为gpt怎么更改,硬盘格式转换,手把手教你如何将硬盘mbr格式转换为gpt格式...
- WebStrom中一些有趣的工具与常用快捷键
- 吴恩达机器学习ex1——通过人口预测小摊经济状况
- 《思危:犹太人的赚钱哲学》阅读
- 云漫圈 | 漫画:什么是加密算法?
- 网站建设完成后为什么百度不收录网站
- Houdini一键修改Alembic相机分辨率。
- tokuDB存储引擎的安装、配置、使用及注意事项
热门文章
- 01. 数据库中事务的隔离等级及如何设置
- 罩形件冲压模具设计及制造(论文+CAD图纸)
- python:实现YouTube下载(附完整源码)
- 中国人工智能研究领域开拓者刘叙华教授逝世,享年84岁
- 为什么镜面成像是左右反而不是上下反(从前置摄像头说起)
- Win7的定时关机功能(计划任务+shutdown.exe实现)
- 评高级经济师需要考英语和计算机吗山东,我是山东的,想考高级经济师,听说要参加职称外语..._高级经济师_帮考网...
- 构建哈夫曼树及求它的带权路径长度
- 米家app扫描不到石头机器人_米家石头扫地机器人app
- 密码学报Latex模板使用pdf转换成word