|
楼主 |
发表于 2006-11-13 19:51
|
显示全部楼层
我要做大量的分段积分,就是f(x)和 g(x)是不断变化的,但是f(x)和 g(x)都是一次的函数,所以通式是ax+b;所以我把系数a,b都寸在一个二维的数组了,每次运算f(x)和 g(x)的乘积积分都只要把系数改变就可以了,比如你上面说的例子
str1='((1-6*x).*(x>=0&x<=.5)+(5-6*x).*(x>=.5&x<=1))';
str2='((sqrt(3)*(1-4*x)).*(x>=0&x<=.4)+(sqrt(3)*(4*x-3)).*(x>=.4&x<=1))';
str=[str1,'.*',str2];
f=inline(str,'x');
q=quadl(f,0,1)
a1=-6;
b1=1;
c1=-6;
d1=5;
a2=-4*sqrt(3);
b2=sqrt(3);
c2=4*sqrt(3);
d2=-3*sqrt(3);
然后把你的代码改成
str1='((a1*x+b1).*(x>=0&x<=.5)+(c1*x+d1).*(x>=.5&x<=1))';
str2='((a2*x+b2).*(x>=0&x<=.4)+(c2*x+d2).*(x>=.4&x<=1))';
str=[str1,'.*',str2];
f=inline(str,'x');
q=quadl(f,0,1);
这样又出了错了 |
|