机械社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
楼主: 子子61961

在日本做机械设计的感受23:一道计算题的回帖

  [复制链接]
发表于 2016-2-15 12:48:43 | 显示全部楼层
关注
回复 支持 反对

使用道具 举报

发表于 2016-2-15 14:51:40 | 显示全部楼层
非常感谢你的分享,上来就学了一手单变量求解!!!0.329784444989256
回复 支持 反对

使用道具 举报

发表于 2016-2-15 15:05:59 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

发表于 2016-2-15 15:16:40 | 显示全部楼层
大侠说到的回帖方式就是一种网络交流礼仪啊。如果大家都能注意,大家都会受益。
% _1 }/ ]& w: u2 R* n( t: N也谢谢大侠的单变量求解。
回复 支持 反对

使用道具 举报

发表于 2016-2-15 15:27:18 | 显示全部楼层
大侠,学习了。
# d1 i$ z2 Z8 h( Z( k9 h4 `1 {& ^关于中国文化,您提到的事情,实实在在存在着,也一直困扰着我。起初我一直怀疑是管理的问题,现在明白了一点,太深了。谢谢。
% g/ M+ W! r6 ~8 Y" c5 H温习并熟练了单变量求解。$ _/ z: K, L( f  w9 W# M# n. R
附图为我的计算结果:精度好像不太高,正在想方法解决。
单变量求解(方法).JPG

评分

参与人数 1威望 +1 收起 理由
子子61961 + 1 谢谢您的认真回复。

查看全部评分

回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-2-15 15:47:01 | 显示全部楼层
点滴积累 发表于 2016-2-15 16:27 / P) I1 P: m6 X; _
大侠,学习了。1 r5 L3 b5 Q9 O/ _$ j+ G+ F1 E
关于中国文化,您提到的事情,实实在在存在着,也一直困扰着我。起初我一直怀疑是管理的问 ...

9 h6 ^, A2 @. H' T$ Z% N感谢您的认真回帖。
5 o5 ?% G* i. I& Z, k3 D关于管理方面的问题,其实可以考虑为两个方面。- h5 o0 |/ S- n- Z
一方面是从上向下的监视和修正,
" I5 y+ B/ u. `+ k一方面是从下层开始的自省和改善。
* J1 G) e8 A# i  q8 \中国提到的管理,往往更偏向于前者,
6 m3 W8 W: R) \. G4 t$ _8 ^+ m而日本的管理,其实是后者做得更好一些,- G. S# i6 R, N: v6 f
所以在日本,从上层向下的管理会轻松一些。
! p7 H$ k/ \; m5 C1 P  G* }以前在第二话的文章里面写过一点,以后考虑也继续写一些。! R% j" Y! `+ o' ^
; }4 @8 w- r/ ]6 Q  w" `
关于单变量求解,它有计算的设定。
% f9 U5 V- c$ S" z- e* |在Excel的菜单里面,工具--〉选项--〉计算方法--〉反复计算
' ?' d/ W% C/ t- c8 D! G+ @' A* C7 i% u# A* a
option.JPG
1 S, {* N+ P5 B& e4 ^. L! C(抱歉手边现在只有日文电脑,可以看里面的汉字参考)
- }" p$ P! N* w  Y- U2 Z% F3 W4 I, N, M* ]* ?, c
里面有反复计算的设定值。最大反复次数100次,变化的最大值 0.001。
2 ^6 W6 {6 F; \$ W将这个次数改大一些,或者变化值改的更小一些,则会得到更精确一些的结果。
) `  T8 A) {7 g( V4 N2 z
/ _% z/ w5 p5 P: s% m另外,如何选取可变单元格也是一个因素。  z; I$ B' m2 i0 \
如果选择使用弧度,就是在0.32左右每次变化0.001进行求解。
/ H# d$ v3 Q1 L! w如果选择使用角度,就是在18.8左右每次变化0.001进行求解。
5 o% L$ H, }4 f; J! n1 h+ S其收敛的速度是不同的。
2 a  g+ e4 n* l+ e2 g

点评

500,500,500,300,200  发表于 2016-2-18 13:19
回复 支持 反对

使用道具 举报

发表于 2016-2-15 16:06:37 | 显示全部楼层
子子61961 发表于 2016-2-15 15:47
1 G: D! Q$ N6 B% n5 E感谢您的认真回帖。
1 s: e+ {% n9 l! |关于管理方面的问题,其实可以考虑为两个方面。7 z0 i! p( s: y+ Z
一方面是从上向下的监视和修正,
, A, J0 ]4 v1 ?/ F/ i" t# Z3 Y  p( o9 x
大侠,中文版,呵呵
单变量求解(方法)精度问题.JPG

点评

THANKS~  发表于 2016-2-15 16:23
回复 支持 反对

使用道具 举报

发表于 2016-2-15 17:06:51 | 显示全部楼层
本帖最后由 andyany 于 2016-2-15 17:08 编辑   L2 }" P/ r& T+ a3 {
- M. h% g: X8 M: [* R2 R
据我所碰到的,国内的交流能力都很低。$ B. L$ j! X+ A+ j% }: t+ V
1
0 E& r4 e, [1 m5 o; c当你问问题时,其实对方也不会,但他会说”这你都不会?!“ 让人备受羞辱。% b; ^2 n9 ?8 f( |' n% p
但有段时间和老外一起工作,老外不会时,一般也不会说”我不会“导致你干等或自己一通找,而是说”你找xxx,他会帮助你“,给你指路。让人倍感温暖。: o2 j3 L/ p  r1 S
2
! S( ~5 Y. P; A( |) A( X" U你觉得国内领导应该经历过,于是去求助。领导说“这个你应该自己搞定”,你也没话说。而你若是求助外方的领导,即便很大的官,也会给出你答案甚至理由和引申,让你佩服得不要不要的。

评分

参与人数 1威望 +1 收起 理由
子子61961 + 1 谢谢分享!

查看全部评分

回复 支持 1 反对 0

使用道具 举报

发表于 2016-2-15 19:15:28 | 显示全部楼层
我想楼主想说的是 不要想着什么工具 软件 用笔头算吧!! 这是一个做设计人员对基本定理规律的理解 这是根本 不要太依赖工具软件 否则就失去了根本的理论基础 这样谈何开发
回复 支持 反对

使用道具 举报

发表于 2016-2-15 19:51:33 | 显示全部楼层
AC-arctan(AC/80)*80=1是数学问题。
1 W7 @" G# h$ R子子大侠既然读过VB,那么读VBA代码就应该没什么困难,核心是数值计算。  f7 E3 \7 Y' C, K# n( b
---------------------------------------------------------------------------------------------------------------------------------------
7 W/ U/ b) E! P8 S3 \, b' J. P定义待求解函数:
0 H* M5 @) ~0 H+ T. HPublic Function QesFun(ByVal Var_AC As Double) As Double
# W( t% S) ~9 L* T
2 E5 g3 t' z& \$ T3 N' \) a               QesFun = Var_AC - Atn(Var_AC / 80) * 80 - 1. B4 u& `) a, D# c

9 R) _: y" f3 u! Y; REnd Function; ^% A& S6 G& H! x; }9 G
--------------------------------------------------------------------------------------------------
4 [, F* c6 n; J. ?* q" J- A/ j: D1.        二分法! P; r  r4 X) i# H+ N$ J( S5 g
1.1  由      Arctan(AC/80)=(AC-1)/80
8 Z1 h6 A5 e$ _; n6 A" p7 R      知      -PI()/2<(AC-1)/80< PI()/2
. ?- W: y3 i* u- F% u" @     即     1 -80*PI()/2<AC<1+ 80*PI()/2  z  s6 p/ e5 [6 y1 \
++++++++++++++++++++++++++++++++++++++1 p, d- g; n/ t3 V+ V9 C
1.2定义求解函数:
; {9 j* H$ x, r1 J5 }+ [7 bPublic Function SolFunDic(ByVal MaxLim As Double, ByVal MinLim As Double) As Double/ q8 |9 ]& M3 n+ H
4 F0 o* I) c3 B! O
Dim Res#, VarAdj#6 e4 r! U% a+ M% B# N

7 R1 l3 j: X! N+ V- qVarAdj = 10 ^ -6
2 P0 H2 @$ V/ m
! l9 n2 P! u, }( _; y1 i* Y: r* ZIf QesFun(MinLim + VarAdj) < QesFun(MaxLim - VarAdj) Then* o% Q6 r+ t, S+ Q1 R8 t( X, L

0 T' ^2 F) t1 f! a' L4 N      Do While (1)
0 Z* `! N/ e+ |( h3 \. d  |* O8 x6 C% k+ G) I% p
              Res = (MaxLim + MinLim) / 2
+ l4 q! T% D1 A$ @1 P  W
, C4 ^: }$ Y6 |8 L" V               If Abs(QesFun(Res)) <= 10 ^ -12 Then
: @& l3 \# I5 N7 ~$ M) V  |5 R6 @3 r
                       SolFunDic = Res: Exit Do
. j8 H0 [5 A" |8 B, ^& g7 B( t+ b, q0 ]8 e% H, d5 C& H6 g/ ~
              ElseIf (QesFun(Res) < 0) Then
! [$ F5 k2 V/ |! M% Z5 e. d5 I9 g* B& V# Z
                      MinLim = Res
/ w1 s# o$ m8 i- x; ]; ?7 S% Y6 S. T, a5 z8 O
             Else4 z7 _% S1 `" v4 H
! m1 O7 G2 P+ r4 G) X  t
                     MaxLim = Res
: k) R2 F; Z/ i* ^8 ]
& _7 Q0 N# f. b* ^* M( w$ c             End If3 H# }. s; b' n
            
) O/ g; ~: Z5 |; ]$ |% C) o      Loop
7 i/ B% F2 I1 [+ c( D
9 X+ y- R* M( r- ?) A) L2 YElse( k' M# L' m+ i6 ~/ v" _

& v+ f: l, B+ d$ F9 J     Do While (1)$ a, h" P) X# z  U2 Q5 K$ ^
     
' Z& h6 t! z7 f               Res = (MaxLim + MinLim) / 2
, |, ~) X5 f; p3 H; u. J6 P' m. S( K; R* M  ?3 [' h+ z
             If Abs(QesFun(Res)) <= 10 ^ -12 Then
; V$ I, j% k$ S, a( L+ Q1 o, r/ ?8 I/ r+ M
                        SolFunDic = Res: Exit Do) |) B; E: q& `$ S) g+ f

- x" S/ q1 e- F3 C  O0 E. o              ElseIf (QesFun(Res) > 0) Then
# c' |$ m/ e; F$ g8 S# V5 c" k
8 u# @1 U' \" W+ [                        MinLim = Res
0 w' [  f3 e' h" r" L" ~
5 S: R$ M. ~2 `( q              Else
3 `* f. y+ M8 T. p$ u
0 J- Y  U% R# A7 N6 l. S: x                         MaxLim = Res6 m: X0 k/ N/ i  {
& c4 S0 m- Z# R8 f) g) F* H/ m
            End If. z: N# U2 K' }# @: W% N2 d+ m
            % X% t- G2 O( l0 L
      Loop
2 x$ n- t8 J& V8 K6 ]; Z      
8 u. |! o1 n# j1 G3 \! M5 KEnd If
  `. Y* D- O7 UEnd Function& M, ~  F2 V8 M: `2 T
--------------------------------------------------------------! P% }2 M, T" H) W9 ?
2.        牛顿法" H" u) E8 e1 d: A: ]6 c8 {$ v9 W
2.1     由      f(AC)=arctan(AC/80)*80+1-AC1 y) e3 [; {. Y% n% s
        求导     f(AC)’=1/(1+(AC/80)^2)-1
1 n3 a, S5 p% q' _' K- k! l        即      AC_1=AC_0- f(AC)/ f(AC)’: S6 ]8 b+ h  z5 R6 C5 b
--------------------------------------------------------------2 @3 r( ]* x) x- i
2.2定义迭代函数:: ^5 R* i- @1 b& _6 T# K: U
Public Function QesFunNew(ByVal Var_AC As Double) As Double& h2 h! @, l8 _, ^8 F* `# q9 ~8 [6 e
) |, S- I1 |# ]6 t/ o
              QesFunNew = Var_AC - (Atn(Var_AC / 80) * 80 + 1 - Var_AC) / (1 / (1 + (Var_AC / 80) ^ 2) - 1)
! J2 ~) d8 V) Y' V* ?& C              ; e! q2 O; m. d( z7 O; j
End Function  W$ r: K2 z6 j7 }3 ~
---------------------------------------------------------------
, T: x* ]8 t- S/ ]  K- p2.3定义求解函数% c( v+ G7 B; g0 e' A9 E
Public Function SolFunNew(ByVal IniAC As Double) As Double
. N- w$ k0 u2 p; {; O- z; z# X3 _' p# k* I) w% [% Q4 z
Dim Res#; D6 Z! ~: v1 @/ w  s' C+ y
1 l: q. B/ Q7 t& {0 E0 U2 {
Do While (1)" T) v$ B( }, Z5 u- C+ y
3 b% g# n, B8 O6 v% V
                  Res = QesFunNew(IniAC)
: k6 P. b! S/ S4 K: s+ E
$ _7 q6 {1 z8 z3 v6 D8 z  L( p                   If Abs(QesFun(Res)) <= 10 ^ -12 Then
3 R. ]. I1 U9 k" I1 N: M' X- i5 r  
6 h+ B/ ]0 ]4 H7 N: r& \$ W; Z- p+ L                                   SolFunNew = Res: Exit Do9 B3 a& k2 q! ]1 @5 m6 N
  ( \% O/ p5 f$ d/ c% Y
                   Else% J. V$ g) L" ]& E# z
                  
7 S( g7 B- }: O* v1 [5 h                                     IniAC = Res$ y2 M! ^3 B2 ?8 _3 Z5 D' D
                  2 k# f1 H  }: F. I
                  End If
1 y+ R5 i9 @4 H  q
' c5 Z5 Y* J) O- P# KLoop4 m# P  n1 G! J3 _1 n
----------------------------------------------------------------------------------------------------------. W6 m$ z; c, d; U6 \! I! r+ q
4 f2 e& S8 ?/ l. Z  d8 E
这样做可能有点麻烦,但涉及到循环,迭代时,可自由调用自定义VBA函数和工作表函数(矩阵计算连杆机构),还可控制输出表格,便于插图。计算冷却塔时,积分得用辛普逊;解汽水比,得解非线性方程。对这些问题,EXCEL 工作表自身好像很吃力。
+ X9 q# ]: L5 H  w  f. b8 I5 n" W& Y! y# F: F. u

点评

我的天啦,我的圈子里没有一个会写这样完整计算程序的人。  发表于 2021-5-10 17:28
佩服佩服!  发表于 2016-2-22 10:14

评分

参与人数 3威望 +3 收起 理由
mbampa1234 + 1 思想深刻,见多识广!
一朵娇粉嫩的花 + 1 不觉明历,俺当时学Fortran 90就是0分。。
子子61961 + 1 专业精湛,谢谢分享!

查看全部评分

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

小黑屋|手机版|Archiver|机械社区 ( 京ICP备10217105号-1,京ICP证050210号,浙公网安备33038202004372号 )

GMT+8, 2025-4-25 23:32 , Processed in 0.062591 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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