资源简介
基于龙贝格算法的积分,可计算一维和二维积分 学数值计算的兄弟们可以看看 精度可以自己设定 具体文件里有说明
代码片段和文件信息
% 龙贝格一维/二维积分公式。积分值=rombeg(‘函数‘XminXmax[YminYmax][精度隐含精度1e-8])
% 二维情况下可做变上下限积分(必须是匿名函数形式).此程序积分区间和函数可为矩阵
% 但两者不能同时为矩阵。变上下限积分时只能y变量是矩阵计算效果等同x有矩阵情况
function I=rombeg(fXminXmaxYminYmaxtol)
if ~isa(f‘function_handle‘)&&~isa(f‘inline‘)
f=inline(f);
end
switch nargin
case 3 %一维积分
I=jf1(fXminXmax); %龙贝格一维积分计算函数
case 4%龙贝格一维积分计算函数
I=jf1(fXminXmaxYmin);
case 5 %二维积分
h=Xmax-Xmin;
F1=@(y) f(Xminy);
F2=@(y) f(Xmaxy);
if isa(Ymin‘function_handle‘)
c1=Ymin(Xmin);
c2=Ymin(Xmax);
else c1=Ymin;c2=Ymin;
end
if isa(Ymax‘function_handle‘)
d1=Ymax(Xmin);
d2=Ymax(Xmax);
else d1=Ymax;d2=Ymax;
end
s1=jf1(F1c1d1);
s2=jf1(F2c2d2);
V(::1)=(s1+s2).*h/2;
n=1;
k=1;
while k<=10
n=2*n;
h=h/2;
k=k+1;
sum=zeros(size(s1));
for p=1:n/2
F=@(y) f(Xmin+(2*p-1)*hy);
if isa(Ymin‘function_handle‘)
c=Ymin(Xmin+(2*p-1)*h);
else c=Ymin;
end
if isa(Ymax‘function_handle‘)
d=Ymax(Xmin+(2*p-1)*h);
else d=Ymax;
end
s=jf1(Fcd);
sum=sum+s;
end
V(::k)=V(::k-1)/2+(sum.*h);
m=k;
while 1%龙贝格递推
V1(::m-1)=(4*V(::m)-V(::m-1))/3;
m=m-1;
if m==1
break
else V2(::m-1)=(8*V1(::m)-V1(::m-1))/7;
m=m-1;
end
if m==1
break
else V3(::m-1)=(16*V2(::m)-V2(::m-1))/15;
m=m-1;
break
end
end
if k==4&&(max((max(abs(real(V3(::1)-V2(::2)))))))<=1e-8&&(max((max(abs(imag(V3(::1)-V2(::2)))))))<=1e-8%精度控制
I=V3(::m);
break
elseif k>4&&(max(max(abs(real(V3(::m)-V3(::m-1))))))<=1e-8&&(max((max(abs(imag(V3(::1)-V2(::2)))))))<=1e-8
I=V3(::m);
break
end
end
case 6
h=Xmax-Xmin;
F1=@(y) f(Xminy);
F2=@(y) f(Xmaxy);
if isa(Ymin‘function_handle‘)
c1=Ymin(Xmin);
c2=Ymin(Xmax);
else c1=Ymin;c2=Ymin;
end
if isa(Ymax‘function_handle‘)
d1=Ymax(Xmin);
d2=Ymax(Xmax);
else d1=Ymax;d2=Ymax;
end
s1=jf1(F1c1d1);
s2=jf1(F2c2d2);
V(::1)=(s1+s2).*h/2;
n=1;
k=1;
while k<=10
n=2*n;
h=h/2;
k=k+1;
- 上一篇:光谱信号寻峰
- 下一篇:电力系统三相短路matlab编程.7z
相关资源
- 电力系统三相短路matlab编程.7z
- matlab实验显示RGB分量图像,边缘检测
- 从气象数据共享服务网的日气象数据
- 马赫曾德儿调制器的matlab程序
- 基于matlab指纹识别
- MATLAB 对SAR 图像做二值分割 边缘检测
- 数值积分 matlab代码
- K-means算法的Matlab实现代码使用文档
- 基于MATLAB的语音端点检测.doc
- 基于Matlab的连通域算法
- 直流微网模型matlab-CSDN
- A*算法的matlab程序
- 龙格-库塔(Runge-Kutta)法的matlab程序
- 最大lyapunov指数matlab程序
- 基于HMM的语音识别的matlab实现
- GVF Snake(Matlab)
- matlab代码实现BP网络对函数的拟合
- 色彩平衡matlab代码
- 基于直方图双峰特性的图像分割Matl
- 用A*算法路径规划, matlab程序
- 图像拼接程序
- k近邻分类matlab实现
- 高斯混合模型EM算法Matlab代码
- 粒子群优化算法matlab编写,共十三种
- 牛顿迭代法求解多元非线性方程组
- matlab仿真RFID标签防碰撞二进制算法
- 灰度图像经典二值化Matlab代码
- 轨道角动量matlab仿真
- 四个点的转台成像!
- 圆弧时间分割法插补的matlab仿真源码
评论
共有 条评论