找回密码
 注册会员

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 | 显示全部楼层
大侠说到的回帖方式就是一种网络交流礼仪啊。如果大家都能注意,大家都会受益。7 b. R) ]) P9 H; w9 K3 W
也谢谢大侠的单变量求解。
发表于 2016-2-15 15:27:18 | 显示全部楼层
大侠,学习了。
! x% q5 X  c4 `7 L5 R7 g关于中国文化,您提到的事情,实实在在存在着,也一直困扰着我。起初我一直怀疑是管理的问题,现在明白了一点,太深了。谢谢。
8 ]# x" L  E$ M温习并熟练了单变量求解。
' V2 k3 r5 B$ D4 B附图为我的计算结果:精度好像不太高,正在想方法解决。
单变量求解(方法).JPG

评分

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

查看全部评分

 楼主| 发表于 2016-2-15 15:47:01 | 显示全部楼层
点滴积累 发表于 2016-2-15 16:27 - `* S: s( Q0 ~0 ?  ]8 Q9 L2 \0 W! d
大侠,学习了。9 k& E% }3 k+ T6 A* F
关于中国文化,您提到的事情,实实在在存在着,也一直困扰着我。起初我一直怀疑是管理的问 ...
0 r. U# _2 g0 l# Z9 B
感谢您的认真回帖。% ]" ^4 [* c' e/ s8 z( g
关于管理方面的问题,其实可以考虑为两个方面。
, ^: K. n4 \0 f( w% @& t一方面是从上向下的监视和修正,  R- K/ k" u6 V& ]' _: U1 }4 m
一方面是从下层开始的自省和改善。
- y9 O0 G) C- n+ e/ z* Q: L中国提到的管理,往往更偏向于前者,/ @5 h7 L. V- q; Q/ T; O
而日本的管理,其实是后者做得更好一些,3 V4 Q& G6 g) X) }# i
所以在日本,从上层向下的管理会轻松一些。
4 R0 S) z  b( J) V# Y5 I$ X" k以前在第二话的文章里面写过一点,以后考虑也继续写一些。
; K% J! H8 v" k
4 e4 B. l7 ^  B& L# I8 r关于单变量求解,它有计算的设定。3 X$ X- C/ y- W0 e. L8 O
在Excel的菜单里面,工具--〉选项--〉计算方法--〉反复计算
. O( T5 B. O0 s5 j2 M: z' U# Q" K# a" u
option.JPG
# @* S- i) w* M  b/ Z, @' Q(抱歉手边现在只有日文电脑,可以看里面的汉字参考)1 P6 n0 r9 j* M7 l
& p" D3 h; I0 V8 g* U( n+ F7 L
里面有反复计算的设定值。最大反复次数100次,变化的最大值 0.001。
2 S; T8 c4 ?/ j" R将这个次数改大一些,或者变化值改的更小一些,则会得到更精确一些的结果。, ^) T! v) S+ X) _( x& o; B( }4 H

( b6 T* M4 P: B" u8 K" O$ z) h另外,如何选取可变单元格也是一个因素。
" I. l* S+ Y+ U$ S: @4 w如果选择使用弧度,就是在0.32左右每次变化0.001进行求解。
& V  Z! ~: L5 i" B# k8 G5 c0 O5 z如果选择使用角度,就是在18.8左右每次变化0.001进行求解。8 H- O0 y5 g& M; E% ?, `
其收敛的速度是不同的。
+ Z* |( D8 m% @/ F& ~

点评

500,500,500,300,200  发表于 2016-2-18 13:19
发表于 2016-2-15 16:06:37 | 显示全部楼层
子子61961 发表于 2016-2-15 15:47
0 m" ]* m; }  c3 T5 h, D感谢您的认真回帖。2 ?3 v* x5 P+ P' U8 t! s
关于管理方面的问题,其实可以考虑为两个方面。$ Y# @5 d8 G+ d8 {5 S
一方面是从上向下的监视和修正,
" C7 f/ J) o1 W" L1 p# p
大侠,中文版,呵呵
单变量求解(方法)精度问题.JPG

点评

THANKS~  发表于 2016-2-15 16:23
发表于 2016-2-15 17:06:51 | 显示全部楼层
本帖最后由 andyany 于 2016-2-15 17:08 编辑
) j- i' f' g. p) p2 q( G+ z" t4 a
据我所碰到的,国内的交流能力都很低。
3 A. c; B0 g% Y4 W1) Q" x6 [8 V5 |" Y  P, x3 b0 j, B
当你问问题时,其实对方也不会,但他会说”这你都不会?!“ 让人备受羞辱。) |6 l; W# r: t9 ^; i3 p5 m
但有段时间和老外一起工作,老外不会时,一般也不会说”我不会“导致你干等或自己一通找,而是说”你找xxx,他会帮助你“,给你指路。让人倍感温暖。, C! a6 ]! Q; F& R4 K: l5 O5 n) i) j
2
& X5 l' T; v8 I7 f你觉得国内领导应该经历过,于是去求助。领导说“这个你应该自己搞定”,你也没话说。而你若是求助外方的领导,即便很大的官,也会给出你答案甚至理由和引申,让你佩服得不要不要的。

评分

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

查看全部评分

发表于 2016-2-15 19:15:28 | 显示全部楼层
我想楼主想说的是 不要想着什么工具 软件 用笔头算吧!! 这是一个做设计人员对基本定理规律的理解 这是根本 不要太依赖工具软件 否则就失去了根本的理论基础 这样谈何开发
发表于 2016-2-15 19:51:33 | 显示全部楼层
AC-arctan(AC/80)*80=1是数学问题。* u8 v1 u4 k9 p- a
子子大侠既然读过VB,那么读VBA代码就应该没什么困难,核心是数值计算。
. I) s5 L' }( e+ ]/ \- s2 d---------------------------------------------------------------------------------------------------------------------------------------
' M- \% z! h; f/ x# I& U% w定义待求解函数:3 u% t6 M6 ~3 V" u/ p
Public Function QesFun(ByVal Var_AC As Double) As Double
5 F4 h/ F9 p, D2 R3 r/ H0 M& \0 e/ k0 ], B* F
               QesFun = Var_AC - Atn(Var_AC / 80) * 80 - 1
" D0 \( `9 t6 Q
9 i- l$ h; p* NEnd Function3 i" v/ k' q/ \. p/ ]( q. [0 u
--------------------------------------------------------------------------------------------------" w3 L; T7 y/ p7 W2 K6 E7 I
1.        二分法/ C. F1 i6 d) }/ B$ e
1.1  由      Arctan(AC/80)=(AC-1)/80
5 \- F1 o" }; `8 }* |      知      -PI()/2<(AC-1)/80< PI()/2% @8 H0 [8 [. k' k4 l5 ~# \
     即     1 -80*PI()/2<AC<1+ 80*PI()/2
: A$ Y4 L/ W% P9 ^7 L6 [++++++++++++++++++++++++++++++++++++++& ?& _! u# z, ?; c3 Y9 w6 z
1.2定义求解函数:
! \0 ~: A' z$ V9 a* ~4 UPublic Function SolFunDic(ByVal MaxLim As Double, ByVal MinLim As Double) As Double
: j2 |9 g, d8 _5 D/ \, V
1 u* W8 ]8 N2 L4 P1 ^9 m! j0 zDim Res#, VarAdj#
" U7 S+ X7 Z/ E" k
+ G! N" r4 |3 E; B# o% m  a9 yVarAdj = 10 ^ -6( h& T' R/ [: E" E5 V

# S% m- H$ c2 O/ s7 XIf QesFun(MinLim + VarAdj) < QesFun(MaxLim - VarAdj) Then% a2 C7 Y$ L% V# [, W) i$ S$ i
* I* ~4 z7 f+ ]$ h0 z  t
      Do While (1)2 \8 D7 h% J6 C7 M

) ^! T* M6 I" G8 Z              Res = (MaxLim + MinLim) / 2
. _. B9 |8 b8 A9 h: |# F- H8 w. I
/ T' N& |( L( _7 Z# s6 b" M               If Abs(QesFun(Res)) <= 10 ^ -12 Then9 _# D" ]$ d5 B/ a
" l5 h- j- P; z
                       SolFunDic = Res: Exit Do% [, a/ S+ d: z2 ~' h

1 {+ @# ~4 @, W# O; i              ElseIf (QesFun(Res) < 0) Then
: ~- v! J" s2 ?: S' E
; @4 ?. v( G3 i                      MinLim = Res
8 d0 Y+ H( v7 t# P7 Q$ Z; Y* {" D6 F; s
             Else: a/ E! C9 `0 ]4 n7 v

+ D2 g9 B- j* |& l                     MaxLim = Res9 |. @" Z% S: L# r* z" c

5 e5 f- A0 Y( V( y$ ]             End If
; {) ^2 j$ H7 q4 f( h/ E3 v- _            
: V) n% i9 Y$ O+ I) U1 b      Loop
. L+ F+ ?5 F3 |% p) T1 S( `$ e; a5 m) K( |* Y( M' I( f
Else
, R; }% z9 v1 e  C5 Y: V1 Q$ @+ |% Y& ]  V* }& y" {) |
     Do While (1)
. B5 Z1 I9 l# S% P     
! W2 P$ B0 c, n0 _$ B2 U1 T               Res = (MaxLim + MinLim) / 2& A& J# v, Q1 K! _
7 C& l( k* W+ k, C, ?6 O
             If Abs(QesFun(Res)) <= 10 ^ -12 Then9 b. A. E$ V0 T$ H& t0 n

& D7 s! X4 p' ]1 r' G7 q" F0 j1 ^                        SolFunDic = Res: Exit Do
$ S9 |/ M; ?- y; c# A# t
! a- r7 w! J2 a              ElseIf (QesFun(Res) > 0) Then% ?& `, g! H7 T& k0 t# ~# m) S
& Q" W) a# h3 F
                        MinLim = Res
1 W- q& E/ B. N; V5 R
3 f: I3 ^" V" c5 `              Else
) b8 U5 d3 O( e/ y! z/ G- I; ^
6 k4 d" b* \# f7 X# @                         MaxLim = Res
# Y7 h7 ?, z1 g( X, o# A
8 E0 `6 |, R  T, q% H% t5 |            End If
$ h6 s0 s% O4 \0 Z) i9 g. \* c& z  y            
/ b6 A- n, j; }: i8 v% O3 [      Loop
* x/ u7 a) m( m      2 ]- ?0 A  f& b0 V% }
End If6 A$ Q, _; {3 G; L. U0 o1 F
End Function6 Q: ^; d8 r$ V' R' [
--------------------------------------------------------------
3 w! ^0 W$ R% r1 d* Z/ w7 N  h2.        牛顿法. w/ A& ], J6 e# v# I8 t8 g% K
2.1     由      f(AC)=arctan(AC/80)*80+1-AC
) c0 v8 u6 w/ N9 [6 i* b        求导     f(AC)’=1/(1+(AC/80)^2)-1: x) I0 Q0 H4 @7 h" n
        即      AC_1=AC_0- f(AC)/ f(AC)’' c$ y; [! r- N! r- s  y
--------------------------------------------------------------  k7 H8 u& t/ `. ^! x+ j
2.2定义迭代函数:+ {% a2 \2 i$ L" \/ [5 L
Public Function QesFunNew(ByVal Var_AC As Double) As Double
% A. O$ @3 Y- ]1 N. f& F
7 r- _. w* {# |+ g              QesFunNew = Var_AC - (Atn(Var_AC / 80) * 80 + 1 - Var_AC) / (1 / (1 + (Var_AC / 80) ^ 2) - 1)
. b" U1 B1 x5 I; r/ t2 r; a0 e2 c              . B2 a# d+ K" k$ p, W' V5 `
End Function9 C* V& @( S1 z; q4 Q
---------------------------------------------------------------
3 E. a- z! u0 M' e0 o2.3定义求解函数
* X! F; h. M8 V8 r$ KPublic Function SolFunNew(ByVal IniAC As Double) As Double# x% m( W- _. S5 |
4 W9 q8 {# @- ~0 q; E
Dim Res#
7 k) D% |' w3 r6 `' C
3 L  Y9 i2 A, G$ j/ XDo While (1)! L4 H+ v; s0 ]) j9 |! m4 \) s
, ~, }& ~& v2 g5 [
                  Res = QesFunNew(IniAC)
4 T  ~) C6 K! w) Z# t! M, p5 Z# Q8 k  ^3 y0 j6 X
                   If Abs(QesFun(Res)) <= 10 ^ -12 Then
) }: j3 H$ v2 r  
9 P# {/ k/ `% {! x) Q                                   SolFunNew = Res: Exit Do
6 z$ G( a$ o! a! |( B$ U2 ^, F1 D  ( I: |" a# N  @1 p/ x+ k- ~! L
                   Else# @) W6 z, r3 D3 E. Q7 l. W: K" U
                  3 X& Z  o$ t: s+ U
                                     IniAC = Res: k5 `3 j: f! W
                  
* N2 {3 j2 ?1 u* @% V: b1 Q! }/ O% Y2 _                  End If  I1 H! y& s2 C0 u8 d2 L6 Z+ h
3 L+ j4 e& F/ S3 V7 U9 E
Loop
1 b" K2 c& H: V; W! P) N) k5 y----------------------------------------------------------------------------------------------------------7 F+ `4 y' N2 {3 w) T! X7 Y! i
9 O6 }" t, w% S3 r
这样做可能有点麻烦,但涉及到循环,迭代时,可自由调用自定义VBA函数和工作表函数(矩阵计算连杆机构),还可控制输出表格,便于插图。计算冷却塔时,积分得用辛普逊;解汽水比,得解非线性方程。对这些问题,EXCEL 工作表自身好像很吃力。3 L# ]3 @! D8 F( |& A! l; ?) A
8 `! i1 \1 Q( l" a& Z* p6 B' y( q+ c

点评

我的天啦,我的圈子里没有一个会写这样完整计算程序的人。  发表于 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-8-3 11:37 , Processed in 0.064518 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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