Matlab 这段代码可以如何优化?

Matlab 这段代码可以如何优化?,第1张

th1=zeros(36,2)

th1(:,2) = 1

为了判断优化效果,我们对两种方式每轮执行1百万次,执行10轮,对比执行时间,结果如下:

其中,t1为优化前的时间,t2为优化后的执行时间。

可以看出优化前每轮平均执行时间在1.30~1.42秒左右,优化后每轮平均执行时间在0.95~1.02秒左右

打开matlab2014a程序,在主工具栏找到应用程序一栏,打开optimization选项。

问题输入

在optimization程序中,首先根据不同的问题类型选择不同的模型,同时输入约束等。

选择优化程序运行的条件

在最中间的一栏中添加优化程序运行的条件,如优化截止的标准,画图的要求等等。

开始运算

点击start即可实现优化程序的运行,在图示的框中即可出现运行结果。

5

查看帮助文件

在程序的最右边,是一个帮助文件,如果你有什么疑问,可以直接在帮助文件中查找。

建议:取消syms,用数值积分方法先计算积分号里面的东西,而不要用符号积分算法。将下面这段:

syms z

w1=mt*t0/(4*pi*M*ne*(DL*DT)^0.5)

w2=exp(x.*u/(2*DL))

B=((u*x./(2*DL)).^2+(u*y).^2/(4*DL*DT)).^0.5

w3=2*besselk(0,B)

w5=int((1/z)*exp(-z-(B.^2/(z*4))),t*u^2/(4*DL),inf)

w4=double(w5)

替换为

w1=mt*t0/(4*pi*M*ne*(DL*DT)^0.5)

w2=exp(x.*u/(2*DL))

B=((u*x./(2*DL)).^2+(u*y).^2/(4*DL*DT)).^0.5

w3=2*besselk(0,B)

ifun = @(z,B)(1./z).*exp(-z-(B.^2./(z*4)))

w5=integral(@(z)ifun(z,B),t*u^2/(4*DL),inf)

w4=w5


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/10998376.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-12
下一篇 2023-05-12

发表评论

登录后才能评论

评论列表(0条)

保存