机械社区

 找回密码
 注册会员

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 | 显示全部楼层
大侠说到的回帖方式就是一种网络交流礼仪啊。如果大家都能注意,大家都会受益。! D7 V2 Q) P: y) o) i! C+ e, G  T
也谢谢大侠的单变量求解。
回复 支持 反对

使用道具 举报

发表于 2016-2-15 15:27:18 | 显示全部楼层
大侠,学习了。
3 y; Q" q  S$ T0 _0 O0 q: }" ]关于中国文化,您提到的事情,实实在在存在着,也一直困扰着我。起初我一直怀疑是管理的问题,现在明白了一点,太深了。谢谢。( ?, h2 M4 b( Z2 c! B* u
温习并熟练了单变量求解。
- b5 y+ I7 a# Y1 m( o7 u" h附图为我的计算结果:精度好像不太高,正在想方法解决。
单变量求解(方法).JPG

评分

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

查看全部评分

回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-2-15 15:47:01 | 显示全部楼层
点滴积累 发表于 2016-2-15 16:27
$ V2 s: W( u1 k4 ]大侠,学习了。( v; d, {" s; ^" \0 {
关于中国文化,您提到的事情,实实在在存在着,也一直困扰着我。起初我一直怀疑是管理的问 ...
# i' c+ M6 G1 @9 V
感谢您的认真回帖。% y& u2 h9 @& Y, @
关于管理方面的问题,其实可以考虑为两个方面。
, k1 @6 @: u* E' s( v一方面是从上向下的监视和修正,
4 x% K8 N' l# `. s8 u% v! y一方面是从下层开始的自省和改善。! m( m5 P9 u3 Y/ ^) I. M
中国提到的管理,往往更偏向于前者,
& d! e1 ]2 r" I7 Q# S: `7 O而日本的管理,其实是后者做得更好一些,% A0 n& o( _" c  Q" q5 N
所以在日本,从上层向下的管理会轻松一些。) A! |4 l$ C7 Y' V6 g2 W
以前在第二话的文章里面写过一点,以后考虑也继续写一些。
) O2 W7 ^' _* V3 U) P& t2 ?( Q3 Y6 M7 w$ f( d3 Y
关于单变量求解,它有计算的设定。
. _9 d5 O) }, g2 @- x在Excel的菜单里面,工具--〉选项--〉计算方法--〉反复计算6 `) O8 N# h0 ~7 x. V  A, g' A, C
0 ^# c% U9 c+ Q
option.JPG 1 O0 w& ~1 s- v6 E) [
(抱歉手边现在只有日文电脑,可以看里面的汉字参考)
) v7 C7 z: }1 Y% i6 ?
$ ^$ U0 M+ _- K6 D里面有反复计算的设定值。最大反复次数100次,变化的最大值 0.001。" [4 i. f5 G; V: ]% c/ M# G9 T
将这个次数改大一些,或者变化值改的更小一些,则会得到更精确一些的结果。
. E; v2 y: f- h; {& X% ]* Q8 N0 |; f# x4 q+ K4 [
另外,如何选取可变单元格也是一个因素。) I: N9 c! i& a5 d  K
如果选择使用弧度,就是在0.32左右每次变化0.001进行求解。
) u/ }3 {2 I) }1 B& x如果选择使用角度,就是在18.8左右每次变化0.001进行求解。
8 z' v% G3 e7 h( Y. }- {9 d5 X其收敛的速度是不同的。
; B# r- J4 X& ^: ?6 E. U  z! |

点评

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

使用道具 举报

发表于 2016-2-15 16:06:37 | 显示全部楼层
子子61961 发表于 2016-2-15 15:47 + @1 |8 w' R# r, C* ?4 V2 E
感谢您的认真回帖。
3 g" }3 W) Y3 n4 C9 K* L$ D关于管理方面的问题,其实可以考虑为两个方面。
6 ~5 A+ K% m. F% k* j) I一方面是从上向下的监视和修正,
- ]0 a/ U1 ]& W9 [/ w
大侠,中文版,呵呵
单变量求解(方法)精度问题.JPG

点评

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

使用道具 举报

发表于 2016-2-15 17:06:51 | 显示全部楼层
本帖最后由 andyany 于 2016-2-15 17:08 编辑
' ~, [2 x  M& Q% ~& B# O4 }# s& ?! {' g8 B
据我所碰到的,国内的交流能力都很低。
. p/ s+ P8 y  I1* t* ]' m$ i# W" J" q) Y
当你问问题时,其实对方也不会,但他会说”这你都不会?!“ 让人备受羞辱。7 c. j6 b+ o2 |" s8 ~) ~  E
但有段时间和老外一起工作,老外不会时,一般也不会说”我不会“导致你干等或自己一通找,而是说”你找xxx,他会帮助你“,给你指路。让人倍感温暖。* c$ t. s+ C# `3 y: P9 f* L# u
2; r4 A6 P8 Z! Z* A1 C% Y" p
你觉得国内领导应该经历过,于是去求助。领导说“这个你应该自己搞定”,你也没话说。而你若是求助外方的领导,即便很大的官,也会给出你答案甚至理由和引申,让你佩服得不要不要的。

评分

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

查看全部评分

回复 支持 1 反对 0

使用道具 举报

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

使用道具 举报

发表于 2016-2-15 19:51:33 | 显示全部楼层
AC-arctan(AC/80)*80=1是数学问题。4 ?$ P8 \* V$ |( Y% a3 {( E6 T- _1 l
子子大侠既然读过VB,那么读VBA代码就应该没什么困难,核心是数值计算。) {7 v7 q, R# [* Y& I
---------------------------------------------------------------------------------------------------------------------------------------! [3 X3 W- E' e" K# r- [
定义待求解函数:; n, _! I# m/ L9 O" ^2 t6 T3 _
Public Function QesFun(ByVal Var_AC As Double) As Double
; y) E: f5 e  x- D7 M. @, M- S1 ~& \2 ]( F' e7 p! |
               QesFun = Var_AC - Atn(Var_AC / 80) * 80 - 1+ e1 h/ |- Z8 b* k- f7 v2 Y+ L
8 j( \2 f& i5 B3 m) p6 J
End Function
3 J1 w. |7 N( O) [( \9 n--------------------------------------------------------------------------------------------------: a  O3 c  z6 }9 [+ P6 G4 |1 y
1.        二分法
2 l) K6 ?7 [. P* A1 o1.1  由      Arctan(AC/80)=(AC-1)/80( f3 b4 t; A! B$ Y1 t
      知      -PI()/2<(AC-1)/80< PI()/2/ T& d: Q. y, J: A" j5 ^
     即     1 -80*PI()/2<AC<1+ 80*PI()/2
+ X6 \! y7 k* D; y  z( c++++++++++++++++++++++++++++++++++++++
* }* g) `( i: ?. K& N1.2定义求解函数:
5 ]9 {& z9 {7 v# {/ p/ ~0 gPublic Function SolFunDic(ByVal MaxLim As Double, ByVal MinLim As Double) As Double
) s3 [4 e- x" Z$ \+ W% B5 }( j4 l) P+ D# c3 U3 m+ d7 s& w
Dim Res#, VarAdj#, h7 `' R5 O4 `$ \) ?0 _
; A# \# c& S4 B; Q
VarAdj = 10 ^ -6
) ]& X; j* P: O$ i5 ]+ _; g0 r/ z# ]0 q9 v$ Q/ c# }
If QesFun(MinLim + VarAdj) < QesFun(MaxLim - VarAdj) Then9 j6 _$ S8 f& X/ U; x, ~, f( L

* ^" U# G) F/ v( Q2 v: @/ n9 I      Do While (1); r" @& B7 m: s4 s: \
2 ]% d6 d/ g5 r& B
              Res = (MaxLim + MinLim) / 2* }% u% s6 E' ^- |, L9 R% E

; V- v1 U5 G2 V  S/ V% C               If Abs(QesFun(Res)) <= 10 ^ -12 Then0 t  I1 ?9 q* y. x% V1 Z

( Q( f1 g5 f6 |& D4 c6 G# X$ ~                       SolFunDic = Res: Exit Do5 v1 f2 n# F& I% k+ r4 ?  b1 w+ b6 h! g
- t) C6 j; i& s% z& s5 H
              ElseIf (QesFun(Res) < 0) Then
9 L+ s! B, z0 f: i
" [4 g5 O- @5 l2 P8 U                      MinLim = Res
* o; B5 ~4 q4 S4 F% v6 w
( I% p3 i* T( ?  h             Else  A$ C! \4 {5 |: w
# B; R. [5 u, x7 `
                     MaxLim = Res
  a/ w: C& o" }+ h/ C
0 o& B8 q# Z8 A, j; i' Z             End If5 k9 [5 J4 ?, E* L" i( C( U
            
! {4 T7 o1 M, e6 n; l9 H& l      Loop1 s5 E4 t8 y. T9 _. N+ E; y$ I
$ ~+ e! P6 ~) ^
Else
$ \$ z+ j8 F- q  T' ?; a3 [, X4 I; T, y, Y9 C8 i% H& i- A
     Do While (1), [# I& x1 u* Z. L+ f5 F
     
4 q- R% s2 k; k7 U+ o8 V               Res = (MaxLim + MinLim) / 29 H: D  K) L% U
2 F7 l- _+ g* w- U
             If Abs(QesFun(Res)) <= 10 ^ -12 Then) `6 [4 E2 ]" A' n4 q% k, A9 u

" w# T: {9 l- H8 z% T+ e. ?4 q( d                        SolFunDic = Res: Exit Do. p. V6 x8 U' y) h  E

5 g. N, F5 A; ]/ P2 j7 X( G$ v, Y              ElseIf (QesFun(Res) > 0) Then
7 g8 R" S% c. L2 @5 |) s( ]8 O/ p8 z2 q: E! k
                        MinLim = Res0 I! w$ J$ T3 g! D
; o, t7 E9 V2 c4 W: p
              Else' b* h: Y/ M9 R. I4 u5 p
- j; A. `# \8 n7 c
                         MaxLim = Res
; d( i* M$ A5 {) F5 y- L" r* U' Z, ]2 ?! |! ?$ o$ x  z' Q
            End If5 Y4 N! W" b* g
            
( `  F  ]2 A9 z  X1 t! p, B      Loop( z0 d; E1 b& v0 i/ u0 s
      
* t+ c  m) u% QEnd If
9 q5 v( V8 A4 j9 |End Function! r( f$ K! Y' }
--------------------------------------------------------------' }! o' A& W, w5 I. U
2.        牛顿法- Q) [5 K4 b8 V( U& }7 X% n$ z+ Q
2.1     由      f(AC)=arctan(AC/80)*80+1-AC
9 w' W& C1 w/ a( `# X8 ~- S# E; S        求导     f(AC)’=1/(1+(AC/80)^2)-1
  Q+ L, R( _$ s' X        即      AC_1=AC_0- f(AC)/ f(AC)’
: d; O; c+ C/ l. a4 ~6 O# R--------------------------------------------------------------- X* k2 c/ _8 b" H" t! w
2.2定义迭代函数:
9 C" o# f$ l3 X7 A" D7 f( fPublic Function QesFunNew(ByVal Var_AC As Double) As Double
4 I6 Y8 x! d2 Y8 Z: B" O7 {/ J0 \8 \4 L& [$ H1 l1 J
              QesFunNew = Var_AC - (Atn(Var_AC / 80) * 80 + 1 - Var_AC) / (1 / (1 + (Var_AC / 80) ^ 2) - 1)
$ j1 m8 {5 q1 f              1 Z) R- l' ?. w+ s- f' [
End Function* q. D% }- K) ], ~; F7 ]" ]8 P& f
---------------------------------------------------------------, T  x: F; w4 e5 w% T
2.3定义求解函数2 X/ O1 Z: t) _: x3 |+ n
Public Function SolFunNew(ByVal IniAC As Double) As Double  G- O' v! I6 [* ~. N/ c
3 }* ?0 v( R0 H' i3 L, K0 O
Dim Res#
) M3 D% w, @; D! M3 Y- u+ |: \
  v! ^( [3 g& Q4 K0 x1 G/ ADo While (1)3 a+ x7 w$ v- q
, g  C' `$ d( h% x" h
                  Res = QesFunNew(IniAC)1 w! K3 H8 }( s

( P* a( e& j. e- @                   If Abs(QesFun(Res)) <= 10 ^ -12 Then% ~7 @& g/ q1 c8 H* u3 c: R
  - D- }& J- h: U+ V( t
                                   SolFunNew = Res: Exit Do
' b* E# `" i9 s5 R$ i" F- b1 u  
5 a8 k" b+ G6 L. N$ Z0 j3 B) V/ H                   Else; d2 _( b/ f- o
                  ! L% t/ H5 T& U  c! l+ U
                                     IniAC = Res5 r6 A9 H+ C3 ?3 E
                  
4 W- T2 }! z1 r+ P: @0 B. B) z                  End If, x8 Z' Q) k4 Z$ b+ I) p6 [) \
) V( f* l% {9 ~0 H) _
Loop
8 ~) ?# F# p7 w0 E9 ?----------------------------------------------------------------------------------------------------------' D* f* w# d8 D: V

) @& ^7 F) Y4 T/ }& K' e这样做可能有点麻烦,但涉及到循环,迭代时,可自由调用自定义VBA函数和工作表函数(矩阵计算连杆机构),还可控制输出表格,便于插图。计算冷却塔时,积分得用辛普逊;解汽水比,得解非线性方程。对这些问题,EXCEL 工作表自身好像很吃力。/ m, W: U- t  t6 D+ C' `

! W+ @( u' K( m& d( _

点评

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

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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