sigma665 发表于 2008-3-20 15:38

两段程序比较,怎样提高运行速度

syms t;
>> x=1/(t+1);
>> y=sin(x);
>> z=log(y);
>> quadgk(@ (t) subs(z,t),-1,1);这个运行时间大概为284秒。 quadgk(@ (t) log(sin(1/(t+1))),-1,1);直接代进去的话,运行时间40s。

不知道第一段程序对不对
用了subs(z,t),应该是把z里的默认的t换成t,这样很奇怪,不知道对不对。

另外,第2段虽然快,但是对于复杂方程就没办法了。
所以,对于第1段程序,可否有改进的写法,能提高运行速度。


PS:我的是2007b的,旧版本可能没有quadgk函数

sigma665 发表于 2008-3-24 13:28

syms t;
>> x=1/(t+1);
>> y=sin(x);
>> z=log(y);

这里得到z=log(sin(1/(t+1)))
怎样让z变为句柄函数

sigma665 发表于 2008-3-24 14:39

在仿真论坛上看到说写m函数会快些,确是如此

不过好像一个m函数只能对应一个被积函数
页: [1]
查看完整版本: 两段程序比较,怎样提高运行速度