声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 995|回复: 2

[编程技巧] 两段程序比较,怎样提高运行速度

[复制链接]
发表于 2008-3-20 15:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

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

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

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


PS:我的是2007b的,旧版本可能没有quadgk函数
回复
分享到:

使用道具 举报

 楼主| 发表于 2008-3-24 13:28 | 显示全部楼层
syms t;
>> x=1/(t+1);
>> y=sin(x);
>> z=log(y);

这里得到z=log(sin(1/(t+1)))
怎样让z变为句柄函数
 楼主| 发表于 2008-3-24 14:39 | 显示全部楼层
在仿真论坛上看到说写m函数会快些,确是如此

不过好像一个m函数只能对应一个被积函数
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-11 18:44 , Processed in 0.080526 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表