| 查看: 4740 | 回复: 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不久,希望大神们多多指导 |
» 猜你喜欢
津理工大学晶体材料全国重点实验室刘红军教授课题组招收博士生一名
已经有0人回复
【原创讨论】从电子约束到物质编辑:一套可迭代的环形磁场科技树
已经有0人回复
物理学I论文润色/翻译怎么收费?
已经有286人回复
【方案分享】单环磁场+轴心控制+偏转导出电子束约束系统(可行性实验)
已经有6人回复
【修正版】单环用磁约束低速电子实验方案(简化版)
已经有0人回复
桂林理工大学物理学专业招收调剂,还有三个名额!!!
已经有22人回复
考博自荐
已经有4人回复
山东大学第二批博士研究生招生
已经有0人回复
中国科学院东莞材料科学与技术研究所-2026年博士招生-吴昊研究员-磁学与自旋电子学
已经有0人回复
《电磁学》教材推荐
已经有1人回复
【急招】合肥工大核聚变材料计算方向2026级工程博士生
已经有4人回复
|
顶一下 发自小木虫IOS客户端 |
2楼2018-01-23 19:17:21
hechunlei
至尊木虫 (知名作家)
胡萝卜青椒
- 应助: 2 (幼儿园)
- 金币: 20658.5
- 散金: 114
- 红花: 2
- 帖子: 5029
- 在线: 277.6小时
- 虫号: 2857621
- 注册: 2013-12-08
- 性别: GG
- 专业: 零件加工制造

3楼2018-02-16 10:25:26
w136851258
铁杆木虫 (正式写手)
- 应助: 1 (幼儿园)
- 金币: 7565.1
- 散金: 328
- 红花: 5
- 帖子: 385
- 在线: 135.7小时
- 虫号: 2611295
- 注册: 2013-08-19
- 专业: 金属材料
4楼2018-02-16 15:01:21
5楼2018-04-16 11:37:50












回复此楼