机械社区

 找回密码
 注册会员

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 | 显示全部楼层
大侠说到的回帖方式就是一种网络交流礼仪啊。如果大家都能注意,大家都会受益。5 U' L6 [3 X9 Z; A& \
也谢谢大侠的单变量求解。
回复 支持 反对

使用道具 举报

发表于 2016-2-15 15:27:18 | 显示全部楼层
大侠,学习了。
5 m6 b/ u0 b3 o% B9 j5 g* H* K关于中国文化,您提到的事情,实实在在存在着,也一直困扰着我。起初我一直怀疑是管理的问题,现在明白了一点,太深了。谢谢。. X' ^1 Y6 N$ N7 M
温习并熟练了单变量求解。
, n/ h+ [2 E  R6 `4 k9 u1 t3 l& a附图为我的计算结果:精度好像不太高,正在想方法解决。
单变量求解(方法).JPG

评分

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

查看全部评分

回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-2-15 15:47:01 | 显示全部楼层
点滴积累 发表于 2016-2-15 16:27
, g3 p" r1 J+ _7 j$ d& k大侠,学习了。2 N! G1 \+ }8 f5 f. Z- H/ x, `
关于中国文化,您提到的事情,实实在在存在着,也一直困扰着我。起初我一直怀疑是管理的问 ...
7 ]/ F( l+ @# J( E% d6 F1 _
感谢您的认真回帖。
: {. ?' U& ]! v. V9 n关于管理方面的问题,其实可以考虑为两个方面。9 q, v) ~' e3 v; O% N
一方面是从上向下的监视和修正,
  W2 {6 _" Z6 I2 h, W1 t  X. G一方面是从下层开始的自省和改善。
' `" q0 _, n+ D: Y. E) L9 h9 }中国提到的管理,往往更偏向于前者,: o! I2 d& |8 V) b8 Y
而日本的管理,其实是后者做得更好一些,$ {! k0 m- f6 n' M
所以在日本,从上层向下的管理会轻松一些。
% J& e0 F. c+ `# f以前在第二话的文章里面写过一点,以后考虑也继续写一些。/ T0 n9 f- C1 Q! u8 d/ F6 Y9 R
; _2 U( [: Z: P6 _5 x* H
关于单变量求解,它有计算的设定。
' r  @) h0 F1 ]8 z在Excel的菜单里面,工具--〉选项--〉计算方法--〉反复计算
$ |  O# }8 z1 ?9 Y6 U" e
( H- t. g, U$ M' B option.JPG 6 a' k/ `* r% f2 U, L) e; a/ o
(抱歉手边现在只有日文电脑,可以看里面的汉字参考)
2 X: [( S$ e9 t  O! K8 h! ]! H& x, b  x7 f( d0 C5 N
里面有反复计算的设定值。最大反复次数100次,变化的最大值 0.001。5 g2 }* S* L$ d9 X! A
将这个次数改大一些,或者变化值改的更小一些,则会得到更精确一些的结果。& v; j8 S/ X  Q" E
- U8 |6 w4 e0 a; E0 y: k& L
另外,如何选取可变单元格也是一个因素。
8 }* K0 y/ X; ?, {' Q3 d- g0 ^! e如果选择使用弧度,就是在0.32左右每次变化0.001进行求解。
/ r5 n2 d8 A$ U% u+ ?% ]7 s如果选择使用角度,就是在18.8左右每次变化0.001进行求解。( j2 Z* y* f' B* f/ l) D/ d1 v3 X
其收敛的速度是不同的。8 _; l; g; \( W+ W) g4 F6 E# P

点评

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

使用道具 举报

发表于 2016-2-15 16:06:37 | 显示全部楼层
子子61961 发表于 2016-2-15 15:47
3 h) O$ k' q* i: x# z& |7 s/ b, G! v3 _感谢您的认真回帖。
/ ?  f$ m" u9 m: a关于管理方面的问题,其实可以考虑为两个方面。2 W: J2 ?' I4 R& P# x% B# G/ p
一方面是从上向下的监视和修正,

9 }: B6 d( v" [& Y" n大侠,中文版,呵呵
单变量求解(方法)精度问题.JPG

点评

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

使用道具 举报

发表于 2016-2-15 17:06:51 | 显示全部楼层
本帖最后由 andyany 于 2016-2-15 17:08 编辑
" h+ J9 X% Y: U1 k% ]9 U7 s. y
! k2 q* g) [( g/ R( \据我所碰到的,国内的交流能力都很低。
; `2 Q$ ~/ ]2 w! Z( z% w! Z6 A! l15 u  i' [# X# G( R" b% E" t  B
当你问问题时,其实对方也不会,但他会说”这你都不会?!“ 让人备受羞辱。$ c. D3 _4 W: n2 I' i/ E/ ^3 N3 z3 |4 t
但有段时间和老外一起工作,老外不会时,一般也不会说”我不会“导致你干等或自己一通找,而是说”你找xxx,他会帮助你“,给你指路。让人倍感温暖。
1 _" D5 B, _7 Y+ d2# \4 x+ A" S4 |! C7 J# `
你觉得国内领导应该经历过,于是去求助。领导说“这个你应该自己搞定”,你也没话说。而你若是求助外方的领导,即便很大的官,也会给出你答案甚至理由和引申,让你佩服得不要不要的。

评分

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

查看全部评分

回复 支持 1 反对 0

使用道具 举报

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

使用道具 举报

发表于 2016-2-15 19:51:33 | 显示全部楼层
AC-arctan(AC/80)*80=1是数学问题。
: ]3 N" Q; j: m( w: C, \$ N子子大侠既然读过VB,那么读VBA代码就应该没什么困难,核心是数值计算。+ p) d+ d0 [3 w( e$ }( U6 g
---------------------------------------------------------------------------------------------------------------------------------------
- Q2 |% z0 y: L5 {2 t( n定义待求解函数:
4 F7 X$ R9 C; u. ^# ~" X, ^Public Function QesFun(ByVal Var_AC As Double) As Double
, B  y1 e  Y0 D8 b4 M9 ^# \  |2 H8 c& R* f. u' G# ?) Y8 V
               QesFun = Var_AC - Atn(Var_AC / 80) * 80 - 13 [) K1 Z3 |( L/ N6 n9 z
3 ^) q) S0 P/ `
End Function
3 W5 h& J5 _) i- P$ H--------------------------------------------------------------------------------------------------
$ s- A! ~1 \  x: S1.        二分法
6 t" ^0 M; W6 D, V2 w1.1  由      Arctan(AC/80)=(AC-1)/809 z+ z$ }! H' F- g5 M
      知      -PI()/2<(AC-1)/80< PI()/2: ]* E" E  q8 h% X, \
     即     1 -80*PI()/2<AC<1+ 80*PI()/2
9 I) V  ?! |- D! G& ?4 L9 h' R++++++++++++++++++++++++++++++++++++++
2 J5 f. j) G6 [3 n1 h0 V1.2定义求解函数:
% L7 N6 y* O& F0 iPublic Function SolFunDic(ByVal MaxLim As Double, ByVal MinLim As Double) As Double
+ m1 L4 [  ^1 m9 y, ~: C# Z" f" P9 O2 `9 O4 A2 S8 L
Dim Res#, VarAdj#2 y& u$ l+ u' y& A# Z' q

: n4 }) r- [7 V1 KVarAdj = 10 ^ -6
/ d. B; B! }# V5 c7 a5 O
4 S, v+ f) p7 _If QesFun(MinLim + VarAdj) < QesFun(MaxLim - VarAdj) Then
4 p; G8 q8 j' a. q
! N0 F- s& _) q, R% c/ n' S9 u      Do While (1), @; [) [7 ?: E% u8 l4 x

* L0 M6 x1 E. G6 O4 k! `              Res = (MaxLim + MinLim) / 2
7 C4 l' f( T4 [0 n( t9 u& _0 J/ a9 F7 t# x6 A$ X
               If Abs(QesFun(Res)) <= 10 ^ -12 Then
$ s' J  h& x7 T# q# U( w, M* B/ w, ?; x5 P) E
                       SolFunDic = Res: Exit Do2 d5 a: a! F, x
. S- O! D: [! V
              ElseIf (QesFun(Res) < 0) Then" `- p; }3 R) J! u
' {5 e: \; q# K" u
                      MinLim = Res3 J# ^9 {9 K3 R5 V' U2 q1 H4 _
4 @+ Y1 I# R# J+ @
             Else
7 k5 D% n% Z; m6 P: i; z$ D. U5 U' L) _! J% D8 \  B7 b  @
                     MaxLim = Res' K( C* O- G* s  v7 J% E9 ?% z

, d; M  q- l& t) r+ n# m6 Q             End If- K8 Z- N, C' m. i' V
             ! q1 `' h7 ]8 w* d$ X4 y
      Loop
, @, [5 ^; ]* a  _! |1 g8 A
& p( w! H" r+ e" |9 KElse3 m0 Z- k( Z- l; u9 [3 ^

+ z5 ?7 G/ D, j, z  K     Do While (1)7 K# [2 X% X8 J
     
! o5 ?% D! _7 l# p               Res = (MaxLim + MinLim) / 23 z, n9 {2 W9 S5 W

( I+ e2 J3 I8 y+ b* C             If Abs(QesFun(Res)) <= 10 ^ -12 Then
- ^( f5 t( @+ L3 Z
! |# c" e8 x3 e8 K$ l                        SolFunDic = Res: Exit Do( Y2 Z& v4 h5 N0 M3 @
6 |# m% F/ W% ~$ X. C
              ElseIf (QesFun(Res) > 0) Then  n2 M$ p# G. I7 @% v( k* k
9 C3 a) Z% ?2 I$ Y: Y" O3 Q
                        MinLim = Res3 P& C/ o" A; _, _2 M5 L  {

$ G; K7 G6 E  x& K' e              Else  @' v" t3 \$ c# D) Q# O& R% `

$ }$ m0 M7 X+ Q                         MaxLim = Res
0 R1 e- g8 w% ?& n) \9 J1 l! l- {) ^) e2 S1 A1 e
            End If" {. ^9 b5 i, v3 {1 {6 R4 ]6 D
            # ^- k# m' N6 q! y& ?
      Loop
9 t% n3 o( v, Z. I9 I) C      % }- i2 g; U0 Z# H$ w
End If
: X) _/ Z8 }+ U5 X- zEnd Function2 f# i( u3 p1 Y5 ~# _1 ^0 P
--------------------------------------------------------------* D! q, H7 L( n
2.        牛顿法) f% a8 j. z6 V: t7 M8 P
2.1     由      f(AC)=arctan(AC/80)*80+1-AC
% Y; J5 ~8 M+ t; x4 e% K! o" t        求导     f(AC)’=1/(1+(AC/80)^2)-1
3 r0 K+ Z* V: G' y        即      AC_1=AC_0- f(AC)/ f(AC)’* `) P! x! X4 l, Q; a2 U
--------------------------------------------------------------4 R' l  h& }* {* l3 {5 P5 o( l
2.2定义迭代函数:  C* q; o( ~9 |" F/ |$ N
Public Function QesFunNew(ByVal Var_AC As Double) As Double
2 h+ h9 ?( ?3 j0 ~  `% B; P  s, Z1 Z5 s7 M# e
              QesFunNew = Var_AC - (Atn(Var_AC / 80) * 80 + 1 - Var_AC) / (1 / (1 + (Var_AC / 80) ^ 2) - 1)
9 P: q1 e# k& C- u# P4 e8 n              7 ?+ T+ t! Z: [0 G: \
End Function
/ I% T, T" [9 L2 U  z* @---------------------------------------------------------------
4 @4 |$ H5 A$ A0 Q2 c1 v- y2.3定义求解函数0 `( w4 X% W( i" A
Public Function SolFunNew(ByVal IniAC As Double) As Double  h& |# }* q6 H9 ?9 e7 G
! ~! w. y4 x5 P( i* O% q
Dim Res#
  o7 H( G# E- S/ W9 y# c
6 \; y  q8 ]( FDo While (1)
+ H5 L1 G4 `' W5 ~
& Y: u. h, G! p' ]3 u+ ]/ ]! N5 a                  Res = QesFunNew(IniAC); Z$ o1 Y3 j3 J1 m0 i/ D7 [* [4 }
- G4 s2 c" v3 P  O! n+ v3 a6 g
                   If Abs(QesFun(Res)) <= 10 ^ -12 Then
- Q/ I5 r+ Q( f6 U* B* o  + G/ @$ G- e3 a* `
                                   SolFunNew = Res: Exit Do" e  b1 S) k. N" D
  1 C3 C) {- S# U3 ]+ e, v: c
                   Else/ w- U* ^7 ^; l+ q) W. ~8 }# B
                  + I4 I6 p! h5 p
                                     IniAC = Res, T/ s1 e+ ~& m  W/ |
                  
  T1 B/ I" v. z9 |  d# s3 g                  End If
, S1 I! Y  e# L- o. T
' e3 H3 ^1 o3 J! f4 ?: l3 xLoop6 ?# Q, F( u: v- V+ @
----------------------------------------------------------------------------------------------------------  v- K  t, j1 F' F
% U7 o( C. O1 P/ D
这样做可能有点麻烦,但涉及到循环,迭代时,可自由调用自定义VBA函数和工作表函数(矩阵计算连杆机构),还可控制输出表格,便于插图。计算冷却塔时,积分得用辛普逊;解汽水比,得解非线性方程。对这些问题,EXCEL 工作表自身好像很吃力。/ p8 w' _5 Q5 r5 }) ?

8 W4 C& W$ W: ?1 W

点评

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

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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