声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1671|回复: 2

[编程技巧] 求助 关于计算速度问题

[复制链接]
发表于 2007-4-25 11:01 | 显示全部楼层 |阅读模式

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

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

x
各位大虾:
我在编程计算中遇到如下问题,特求救:
在编程过程中通过一系列计算得到u1表达式:
u1=vpa(u1,5); 结果为:(u1=-.26167e-2*(3122.*cos(b)*sin(-.98477+t)-3122.*sin(b)*cos(-.98477+t)+17934.*sin(b)+17695.*sin(-.98477+t))/sin(b))
在后续程序中需用到以上式子:
for b=0.7:0.01:1.3
    for t=-0.25:0.01:0.3
        u=subs(u1);
……
end
end
发现在计算过程中计算速度很慢,但如果把u1直接赋给u把程序修改为:
for b=0.7:0.01:1.3
    for t=-0.25:0.01:0.3
        u=-.26167e-2*(3122.*cos(b)*sin(-.98477+t)-3122.*sin(b)*cos(-.98477+t)+17934.*sin(b)+17695.*sin(-.98477+t))/sin(b);
……
end
end
计算速度会提高n倍。但是在实际计算过程中,u1表达式是随输入值不同而变化的,所以只能采用上面那种编程方法。
请问有什么方法可以提高计算速度吗??   是不是还有其他编程方法呢??
谢谢了
回复
分享到:

使用道具 举报

发表于 2007-4-25 11:54 | 显示全部楼层
把u1定义为一个函数试试
 楼主| 发表于 2007-4-25 19:45 | 显示全部楼层
上面这位仁兄  你的意思是把u1=vpa(u1,5); 定义为一个函数,
如fuction   U1
X=vpa(u1,5);
然后调用的时候该为
for b=0.7:0.01:1.3
    for t=-0.25:0.01:0.3
        u=U1;
……
end
end
是这个意思吗   这样的话是不是每次运算的时候还是跟以前一样需要调用subs吗??
我先试试看。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-19 08:23 , Processed in 0.071552 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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