高斯求积公式 matlab
1. 分别用三点和四点Gauss-Chebyshev公式计算积分
并与准确积分值2arctan4比较误差。若用同样的三点和四点Gauss-Legendre公式计算,也给出误差比较结果。
2*atan(4)
ans =
2.6516
Gauss-Chebyshev:
function I = gausscheby(f,a,b,n)
syms t;
t= findsym(sym(f));
ta = (b-a)/2;
tb = (a+b)/2;
switch n
case 3
I=pi/n*ta*(subs(sym(f),t,ta*cos(pi/(2*n))+tb)*sqrt(1-cos(pi/(2*n))^2)+...
subs(sym(f),t,ta*cos(3*pi/(2*n))+tb)*sqrt(1-cos(3*pi/(2*n))^2)+...
subs(sym(f),t,ta*cos(5*pi/(2*n))+tb)*sqrt(1-cos(5*pi/(2*n))^2));
case 4
I=pi/n*ta*(subs(sym(f),t,ta*cos(pi/(2*n))+tb)*sqrt(1-cos(pi/(2*n))^2)+...
subs(sym(f),t,ta*cos(3*pi/(2*n))+tb)*sqrt(1-cos(3*pi/(2*n))^2)+...
subs(sym(f),t,ta*cos(5*pi/(2*n))+tb)*sqrt(1-cos(5*pi/(2*n))^2)+...
subs(sym(f),t,ta*cos(7*pi/(2*n))+tb)*sqrt(1-cos(7*pi/(2*n))^2));
end
I=simplify(I);
I=vpa(I,6);
syms x
f=1/(1+x^2);
a=-4;b=4;
n=3;
y=gausscheby(f,a,b,n)
y =
4.511
N=4:
y =
1.90041
Gauss-Legendre:
function I = IntGaussLegen(f,a,b,n)
syms t;
t= findsym(sym(f));
ta = (b-a)/2;
tb = (a+b)/2;
switch n
case 0,
I=2*ta*subs(sym(f),t,tb);
case 1,
I=ta*(subs(sym(f),t,ta*0.5773503+tb)+...
subs(sym(f),t,-ta*0.5773503+tb));
case 2,
I=ta*(0.55555556*subs(sym(f),t,ta*0.7745967+tb)+...
0.55555556*subs(sym(f),t,-ta*0.7745967+tb)+...
0.88888889*subs(sym(f),t,tb));
case 3,
I=ta*(0.3478548*subs(sym(f),t,ta*0.8611363+tb)+...
0.3478548*subs(sym(f),t,-ta*0.8611363+tb)+...
0.6521452*subs(sym(f),t,ta*0.3398810+tb) +...
0.6521452*subs(sym(f),t,-ta*0.3398810+tb));
case 4,
I=ta*(0.2369269*subs(sym(f),t,ta*0.9061793+tb)+...
0.2369269*subs(sym(f),t,-ta*0.9061793+tb)+...
0.4786287*subs(sym(f),t,ta*0.5384693+tb) +...
0.4786287*subs(sym(f),t,-ta*0.5384693+tb)+...
0.5688889*subs(sym(f),t,tb));
case 5,
I=ta*(0.1713245*subs(sym(f),t,ta*0.9324695+tb)+...
0.1713245*subs(sym(f),t,-ta*0.9324695+tb)+...
0.3607616*subs(sym(f),t,ta*0.6612094+tb)+...
0.3607616*subs(sym(f),t,-ta*0.6612094+tb)+...
0.4679139*subs(sym(f),t,ta*0.2386292+tb)+...
0.4679139*subs(sym(f),t,-ta*0.2386292+tb));
end
I=simplify(I);
I=vpa(I,6);
y =
2.04798
N=4:
y =
3.08862
2. 分别用三点和四点Gauss-Lagurre公式计算积分
function I = GaussLagurre(f,n)
syms t;
t= findsym(sym(f));
switch n
case 2
I=0.7110930*subs(sym(f),t,0.4157746)+...
0.2785177*subs(sym(f),t,2.2942804)+...
0.0103893*subs(sym(f),t,6.2899451);
case 3
I=0.6031541*subs(sym(f),t,0.3225477)+...
0.3574187*subs(sym(f),t,1.7457611)+...
0.0388879*subs(sym(f),t,4.5366203) +...
0.0005393*subs(sym(f),t,9.3950710);
end
I=simplify(I);
I=vpa(I,6);
syms x
f=exp(-10*x)*sin(x);
f=f./exp(-x);
a=0;b=inf;
n=2;
y= GaussLagurre(f,n)
y =
0.00680897
N=4:
y =
0.0104892
3. 设,分别取,,用以下三个公式计算,
列表比较三个公式的计算误差,从误差可以得出什么结论?
function [df1,df2,df3,w1,w2,w3]=MidPoint(func,a)
if (nargin == 3 && h == 0.0)
disp('h不能为0');
return;
end
for k=1:6
h=1/10^k;
y0=subs(sym(func), findsym(sym(func)),a);
y1 = subs(sym(func), findsym(sym(func)),a+h);
y2 = subs(sym(func), findsym(sym(func)),a-h);
df1(k) = (y1-y0)/h;
df2(k) = (y1-y2)/(2*h);
y3=subs(sym(func), findsym(sym(func)),a+2*h);
y4=subs(sym(func), findsym(sym(func)),a-2*h);
df3(k)=(y4-8*y2+8*y1-y3)/(12*h);
w1(k)=1/a-df1(k);
w2(k)=1/a-df2(k);
w3(k)=1/a-df3(k);
end
df1=simplify(df1); df1=vpa(df1,6);
df2=simplify(df2); df2=vpa(df2,6);
df3=simplify(df3); df3=vpa(df3,6);
w1=simplify(w1); w1=vpa(w1,6);
w2=simplify(w2); w2=vpa(w2,6);
w3=simplify(w3); w3=vpa(w3,6);
syms x
f=log(x);
a=0.7;
[y1,y2,y3,w1,w2,w3]=MidPoint(f,a)
y1 =
[ 1.33531, 1.41846, 1.42755, 1.42847, 1.42856, 1.42857]
y2 =
[ 1.43841, 1.42867, 1.42857, 1.42857, 1.42857, 1.42857]
y3 =
[ 1.42806, 1.42857, 1.42857, 1.42857, 1.42857, 1.42857]
w1 =
[ 0.0932575, 0.0101079, 0.00101944, 0.000102031, 0.0000102043, 0.00000101738]
w2 =
[ -0.00983893, -0.0000971936, -9.71814e-7, -9.72193e-9, 1.92131e-10, -3.02526e-9]
w3 =
[ 0.000513166, 4.76342e-8, 8.04334e-12, -1.10191e-10, 3.37991e-10, -4.5859e-9]
高斯求积公式 matlab的更多相关文章
- matlab中各种高斯相关函数
matlab中各种高斯相关函数 matlab, 高斯函数, 高斯分布 最常见的是产生服从一维标准正态分布的随机数 n=100; x=randn(1,n) 实现服从任意一维高斯分布的随机数 u=10 ...
- RBF高斯径向基核函数【转】
XVec表示X向量.||XVec||表示向量长度.r表示两点距离.r^2表示r的平方.k(XVec,YVec) = exp(-1/(2*sigma^2)*(r^2))= exp(-gamma*r^2) ...
- python实现直方图均衡化,理想高通滤波与高斯低通滤波
写在前面 HIT大三上学期视听觉信号处理课程中视觉部分的实验二,经过和学长们实验的对比发现每一级实验要求都不一样,因此这里标明了是2019年秋季学期的视觉实验二. 由于时间紧张,代码没有进行任何优化, ...
- Matlab 高斯_拉普拉斯滤波器处理医学图像
前言:本程序是我去年实现论文算法时所做.主要功能为标记切割肝脏区域.时间有点久,很多细节已经模糊加上代码做了很多注释,因此在博客中不再详述. NOTE: 程序分几大段功能模块,仔细阅读,对解决医学图像 ...
- Matlab实现加性高斯白噪声信道(AWGN)下的digital调制格式识别分类
Matlab实现加性高斯白噪声信道(AWGN)下的digital调制格式识别分类 内容大纲 加性高斯白噪声信道(AWGN)下的digital调制格式识别分类 (1. PSK; 2. QPSK; 3.8 ...
- [转] Matlab中给信号加高斯白噪声的方法
MATLAB中产生高斯白噪声非常方便,可以直接应用两个函数,一个是WGN,另一个是AWGN.WGN用于产生高斯白噪声,AWGN则用于在某一信号中加入高斯白噪声. 1. WGN:产生高斯白噪声 y = ...
- 用matlab给图像加高斯噪声和椒盐噪声(不调用imnoise函数)
图像画面中的噪声,大致可以分为两类:高斯噪声和椒盐噪声.在这里,我们先看下图像中两种噪声各自的特征. 椒盐噪声:噪声幅值基本相同,但出现位置随机. 高斯噪声:图像中每一点都存在噪声,但幅值是随机分布的 ...
- 基于MATLAB的中值滤波均值滤波以及高斯滤波的实现
基于MATLAB的中值滤波均值滤波以及高斯滤波的实现 作者:lee神 1. 背景知识 中值滤波法是一种非线性平滑技术,它将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值. 中值滤 ...
- Matlab绘制三维曲面(以二维高斯函数为例)
原文地址为:Matlab绘制三维曲面(以二维高斯函数为例) 寒假学习了一下Python下的NumPy和pymatlab,感觉不是很容易上手.来学校之后,决定继续看完数字图像处理一书.还是想按照上学期的 ...
随机推荐
- 经典SQL语句大全(转)
一.基础 1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备 ...
- es6学习笔记1
最近在阅读<探索es6>,就把自己认为重要的做一点笔记,方便日后学习. 1.获取更多的es6资源的办法 有两组 ES6 资源: “ ECMAScript 6 Tools ”,作者 Addy ...
- 分布式理论(四)—— 一致性协议之 3PC
前言 我们说为了实现 BASE 理论,需要在可用性和一致性之间找到一个合适的一致性理论,于是,我们在上篇文章中了解了 2PC 理论,也就是两阶段提交,二阶段提交原理简单,实现方便,但是缺点则是同步阻塞 ...
- 百度地图API,根据经纬度实现车辆移动轨迹绘制
百度地图,实现车辆轨迹绘制 实现思路: 1.根据经纬度实现车辆轨迹绘制 2.使用百度地图API的两个覆盖物实现,Polyline(折线)绘制轨迹,Marker(图标)绘制小车图标 3.将每两个坐标间连 ...
- Css中display:inline-block用法详解
display:block就是将元素显示为块级元素 block元素的特点是: 总是在新行上开始: 高度,行高以及顶和底边距都可控制: 宽度缺省是它的容器的100%,除非设定一个宽度 <div&g ...
- element-ui Pagination组件源码分析整理笔记(七)
element-ui源码的版本是2.4.9 pagination.js import Pager from './pager.vue'; import ElSelect from 'element-u ...
- 用vue写一个仿app下拉刷新的组件
如果你用vue弄移动端的页面,那么下拉刷新还是比较常见的场景,下面来研究如何写一个下拉刷新的组件(先上图); 由于节省大家的时间,样式就不贴出来了. html结构也不必介绍了,直接看代码吧-.- &l ...
- amazeui+canvas绘制二维码
<link rel="stylesheet" type="text/css" href="css/amazeui.min.css"/& ...
- css3之transform属性实现div不定宽高垂直水平居中
transform的作用 transform 属性向元素应用 2D 或 3D 转换.该属性允许我们对元素进行旋转.缩放.移动或倾斜.(w3cschool) transform的兼容性 transfor ...
- MariaDB Centos7 下安装MariaDB
Centos7 下安装MariaDB by:授客 QQ:1033553122 1.下载安装文件 rpm包为例,对于标准服务器安装,至少需要下载client,shared,serve文件(安装时如果少了 ...