24小时热门版块排行榜    

查看: 4668  |  回复: 4

深渊明宇

新虫 (小有名气)

[求助] 求助matlab程序计算速度过慢的原因

程序代码如下
function [length]=contactlength(x0)
if x0>50||x0<-50
    'error:数据超出尺寸范围'
else
    syms x
    R=300;%非球面顶点曲率半径
    c=1/R;
    delta=0.1;
    k=-3.3;%非球面参数
    rb=27;%半径
    y=(-1*c*x.^2)./(1+sqrt(1-(1+k)*(c^2)*x.^2));
    dy=diff(y);
    dy2=diff(y,2);
    dyx0=subs(dy,x0);
    dy2x0=subs(dy2,x0);
    r0=(1+dyx0^2)^(3/2)/(abs(dy2x0))%曲率半径
    y0=(-1*c*x0^2)./(1+sqrt(1-(1+k)*(c^2)*x0^2));%非球面接触点y坐标
   if x0==0
      xb=x0;
      yb=y0+rb-delta;
      ob=[xb,yb]%圆心二维坐标
   else
      xb=x0+(rb-delta)/sqrt(1+1/dyx0^2);
      yb=y0+(-1/dyx0)*(rb-delta)/sqrt(1+1/dyx0^2);
      ob=[xb,yb]%圆心二维坐标
   end
    syms x2 y2
    ezplot((x2-xb)^2+(y2-yb)^2==rb^2,[-50 50 -10 70])
    axis equal;
    hold on;
    ezplot(y2==(-1*c*x2^2)/(1+sqrt(1-(1+k)*(c^2)*x2^2)),[-50 50 -10 70])
    s=solve(y2==(-1*c*x2^2)./(1+sqrt(1-(1+k)*(c^2)*x2^2)),...
            (x2-xb)^2+(y2-yb)^2==rb^2,x2,y2);
    X=double(s.x2);
    Y=double(s.y2);
    X=X(~logical(imag(X)));
    length=max(X)-min(X)
end
在实际运算过程中,要100多秒才能算出结果,请问是哪里有问题呢?我该怎么改程序?
本人新手,接触matlab不久,希望大神们多多指导
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

深渊明宇

新虫 (小有名气)

2楼2018-01-23 19:17:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hechunlei

至尊木虫 (知名作家)

胡萝卜青椒

胡萝卜青椒
3楼2018-02-16 10:25:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

w136851258

铁杆木虫 (正式写手)

可以考虑使用tic toc,查看具体哪一段代码耗时过长,针对性优化

发自小木虫Android客户端
4楼2018-02-16 15:01:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
5楼2018-04-16 11:37:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 深渊明宇 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 268求调剂 +7 好运连绵不绝 2026-03-12 8/400 2026-03-17 20:28 by xilongliang
[考研] 277调剂 +5 自由煎饼果子 2026-03-16 6/300 2026-03-17 19:26 by 李leezz
[考研] 326求调剂 +5 上岸的小葡 2026-03-15 6/300 2026-03-17 17:26 by ruiyingmiao
[考研] 302求调剂 +9 负心者当诛 2026-03-11 9/450 2026-03-17 17:13 by ruiyingmiao
[考研] 311求调剂 +8 冬十三 2026-03-15 8/400 2026-03-17 16:59 by ruiyingmiao
[考研] 274求调剂0856材料化工 +13 z2839474511 2026-03-11 14/700 2026-03-17 16:51 by share_joy
[考研] 一志愿苏州大学材料工程(085601)专硕有科研经历三项国奖两个实用型专利一项省级立项 +6 大火山小火山 2026-03-16 8/400 2026-03-17 15:05 by 无懈可击111
[考研] 211本,11408一志愿中科院277分,曾在中科院自动化所实习 +6 Losir 2026-03-12 7/350 2026-03-17 12:09 by danranxie
[考研] 11408 一志愿西电,277分求调剂 +3 zhouzhen654 2026-03-16 3/150 2026-03-17 07:03 by laoshidan
[考研] 0854控制工程 359求调剂 可跨专业 +3 626776879 2026-03-14 9/450 2026-03-16 17:42 by 626776879
[考研] 一志愿985,本科211,0817化学工程与技术319求调剂 +5 Liwangman 2026-03-15 5/250 2026-03-16 17:10 by 我的船我的海
[考研] 321求调剂 +5 大米饭! 2026-03-15 5/250 2026-03-16 16:33 by houyaoxu
[考研] 085600材料与化工 求调剂 +13 enenenhui 2026-03-13 14/700 2026-03-16 15:19 by 了了了了。。
[考研] 求老师收留调剂 +4 jiang姜66 2026-03-14 5/250 2026-03-15 20:11 by Winj1e
[考研] 294求调剂 +3 Zys010410@ 2026-03-13 4/200 2026-03-15 10:59 by zhq0425
[考研] 255求调剂 +3 李嘉慧, 2026-03-12 4/200 2026-03-14 16:58 by 有只狸奴
[考研] 复试调剂 +3 呼呼?~+123456 2026-03-14 3/150 2026-03-14 16:53 by WTUChen
[考研] 0703化学一志愿211 总分320求调剂 +5 玛卡巴卡啊哈 2026-03-11 5/250 2026-03-13 21:40 by JourneyLucky
[考研] 化工学硕306求调剂 +9 42838695 2026-03-12 9/450 2026-03-13 10:16 by houyaoxu
[考研] 270求调剂 085600材料与化工专硕 +3 YXCT 2026-03-11 3/150 2026-03-13 10:13 by houyaoxu
信息提示
请填处理意见