zhanghe 发表于 2007-12-9 21:32

关于自定义的高斯积分程序的疑问

我编了一个关于高斯积分的程序 只能算一些简单的函数对于较复杂的函数总是出错
请教各位大虾
function y=gruass(f,a,b)
m=(a+b)/2;
n=(b-a)/2;
t1=0.2386191861;
t2=-t1;
t3=0.6612093865;
t4=-t3;
t5=0.9324695142;
t6=-t5;
x1=m+n*t1;
x2=m+n*t2;
x3=m+n*t3;
x4=m+n*t4;
x5=m+n*t5;
x6=m+n*t6;
a1=0.4679139346;
a2=0.3607615731;
a3=0.1713244924;
y=a1*(f(x1)+f(x2))+a2*(f(x3)+f(x4))+a3*(f(x5)+f(x6));

[ 本帖最后由 eight 于 2007-12-10 16:14 编辑 ]

花如月 发表于 2007-12-9 22:08

为什么不用matlab提供积分函数呢?

eight 发表于 2007-12-10 16:14

原帖由 zhanghe 于 2007-12-9 21:32 发表 http://www.chinavib.com/forum/images/common/back.gif
我编了一个关于高斯积分的程序 只能算一些简单的函数对于较复杂的函数总是出错
请教各位大虾
function y=gruass(f,a,b)
m=(a+b)/2;
n=(b-a)/2;
t1=0.2386191861;
t2=-t1;
t3=0.6612093865;
t4=-t3;
t5 ...

请保证程序与实际理论相一致,好好阅读一下自己的代码

zhanghe 发表于 2007-12-10 20:49

matlab提供的积分函数不知道其内部的原理 尤其是quadl积分还得用.乘 非常麻烦不如自己编程计算

程序当然与实际理论相一致否则一些简单的函数都能算对

我就是想知道 是不是有一些积分的问题给忽略了〉。。。。:@(

zhanghe 发表于 2007-12-11 10:58

补充以下 上面程序里最后一个式子应该是y=n*(a1*(f(x1)+f(x2))+a2*(f(x3)+f(x4))+a3*(f(x5)+f(x6)));
如果对于复杂的函数 算得不是很准确

我已经取了六个积分点 还是不够吗?

eight 发表于 2007-12-11 13:28

原帖由 zhanghe 于 2007-12-10 20:49 发表 http://www.chinavib.com/forum/images/common/back.gif
尤其是quadl积分还得用.乘 非常麻烦不如自己编程计算


倘若如此,建议不要使用matlab,用其他编程工具代替
页: [1]
查看完整版本: 关于自定义的高斯积分程序的疑问