打印

一个简单的电路的复杂数学问题

[复制链接]
楼主: ljm810010
手机看帖
扫描二维码
随时随地手机跟帖
81
PowerAnts| | 2008-11-12 11:51 | 只看该作者 回帖奖励 |倒序浏览

不提倡穷举

现在有计算机,20年前玩分立电路,你去穷举吧,想当修理工?

瞎蒙的人有两种,一种是经常快速的、一次性的、几乎完美地解决问题(要么不蒙,要蒙便99%机率正确,并自信不需要自已验算,比如俺),一种是屡猜屡败,便不敢再猜。

使用特权

评论回复
82
xwj| | 2008-11-12 12:50 | 只看该作者

这个问题呢,一般能理清关系或瞎蒙对的肯定是瞎蒙(对蒙

比如能简单计算或整理清公式的低阶运算,肯定直接计算;

而算不清的,当然会尝试等比、根号2(2^(1/2))、根号3、黄金分割等,也会去试试1.2、1.5、2等简单的比例


但LZ 这个问题看似简单,其实计算很复杂,有乘法,还要  求倒数,所以就没法口算了,就算按计算器算也会很麻烦的
而公式却又一下子推不出来(其实推出公式后也还要瞎蒙的),大家肯定都会用“瞎蒙”的方法了

在不知道最优解的大致范围时瞎蒙就很没把握了,因为不管按哪个数(比例)去蒙,都好像差得不多,能用得解太多了(比如0.7、0.618、1.4、1.5、1.7实际相差很大的,但都离最优解很接近),反而不知道什么是最优解算法了(就是瞎蒙得看似对,实际上都是错的)


这时花几分钟编个程序,让电脑去自动“按计算器”,比自己瞎蒙、按计算器算不快多了???
先大致扫一遍(以0.1的间隔从0扫到10也就100×100次计算、判断),就可以直接得出工程能用的最优解集了

再在最优解附近用更细的分辩率去寻找精确答案,也是很快的事


当然,穷举法肯定是不求甚解的方法,不能得到真正的“算法”,但绝对是最快解决问题、最快得出最好答案的方法!

而且,讨论了这么久、大家也推导了这么久,有谁有真正推导出了唯一的最优算法???
没有!
还是得瞎蒙,还是得估计个值,然后去验算!

那为什么不用电脑呢???
只是我喜欢用C写算法,ljm810010 喜欢用MATLAB写算法罢了,实际上是一回事:-)

使用特权

评论回复
83
xwj| | 2008-11-12 13:05 | 只看该作者

简单计算、设计当然是口算,但复杂计算、高阶运算、没有

时,不用电脑和计算器,那就真的是傻瓜了


比如计算个基本放大电路的静态偏置点、增益,当然是口算解决,
而有稍复杂反馈时,就肯定离不开计算器了,

而更复杂的电路,比如高阶滤波器,有现成公式当然可以直接套用,但不知道公式或短期内推导不出公式时,直接用软件仿真,绝对是最快的“不求甚解”得到答案的方法了

说这么多不是提倡大家“不求甚解”、胡乱穷举,而是想说:
电脑、计算器都是工具,应该合理适当的利用,有它们帮助往往可以更快的纠正错误、获得正确之路的方向...

使用特权

评论回复
84
msliang18| | 2008-11-12 13:15 | 只看该作者

搞了半天,大家数学知识也该回忆了不少了

这算是本题目的伟大贡献,吾等长见识了。
xwj搞研究不错,powerants搞设计较好。都值得学习

使用特权

评论回复
85
hq_y| | 2008-11-12 13:22 | 只看该作者

其实相当于电阻网络DAC的简化版本

R1=R3
R2=2R1

使用特权

评论回复
86
a5566255| | 2008-11-12 13:41 | 只看该作者

好像确实是1.8141和1.1110

一定要用算术方法的话,那到最后应该都是求一组数的方差,取求最小的为最佳值,不过计算量不小这样的话,总是得“穷举”出一些差数的(比如平均值>0.59V的),然后取这类阻值中方差最小的
虽然这种方法不如用一个逻辑关系式表达下那么简洁,但人家作为一门数学分支——统计学而存在应该是有道理的~~
那个不用一味追求手算,这世上只能机器算的数学题至少比我吃过的米都多,圆周率你有本事用祖冲之的方法更新现代记录看看.....


VB程序(可以列出主要可行值):
Option Explicit
Dim i As Integer
Dim rr(2000, 4) As Single
Private Sub Command2_Click()
    Dim u(3) As Single, r1 As Long, r2 As Long, r3 As Long
    i = 0
    r3 = 10000
    For r1 = 18000 To 19000
        For r2 = 11000 To 12000
            u(1) = 5 * r3 / (r1 + r3)
            u(2) = 5 * r3 / (r2 + r3)
            u(3) = 5 * r3 / ((r1 * r2 / (r1 + r2)) + r3)
            max(1) = u(2) - u(1)
            max(2) = u(3) - u(2)
            If Int(max(1) * 10000) > 5916 And Int(max(2) * 10000) > 5916 Then i = i + 1: rr(i, 1) = r1: rr(i, 2) = r2: rr(i, 3) = max(1): rr(i, 4) = max(2)
            DoEvents
        Next
    Next
    Do While i <> 0
    If rr(i, 1) <> 0 Then List3.AddItem rr(i, 1) & " " & rr(i, 2) & " " & rr(i, 3) & " " & rr(i, 4)
    i = i - 1
    Loop
End Sub

使用特权

评论回复
87
a5566255| | 2008-11-12 13:51 | 只看该作者

列出一些值

使用特权

评论回复
88
ljm810010|  楼主 | 2008-11-13 10:25 | 只看该作者

咋不见大伙们继续讨论?

问题仍未解决,同志们仍需努力

使用特权

评论回复
89
emailli| | 2008-11-13 13:30 | 只看该作者

我不是给出了方法吗?

求驻平面

二元方程的驻平面

可能发生最大值的三种情况都列出来

然后分别求各种情况下的值

最后得到结果

先找个人把 驻平面的解做出来吧

使用特权

评论回复
90
ljm810010|  楼主 | 2008-11-13 13:59 | 只看该作者

emailli大侠,你说得那么高深我都不敢想了

使用特权

评论回复
91
香如故| | 2008-11-13 16:00 | 只看该作者

推导,见48楼

最后推出:(以下U代表U2)
  3      2      2
-U  +  2U   + (Δ  -  2Δ  -1)U  +2Δ=0;
再求Δ的极值就可以了.不知道怎么求

使用特权

评论回复
92
emailli| | 2008-11-13 16:24 | 只看该作者

香如故,你的极值早就求出来了

问题是,你给的公式已经被证明不是答案了

现在有三个点可能是我们需要的答案。

1、V3-V1和V1-V2相等的点

2、V3-V1的驻平面点

3、V1-V2的驻平面点

我已经计算给出了V3-V1和V1-V2相等的点的解

对于第二个和第三个驻平面的点,我还没有去求解。

希望有目前还在学校的同学,把你的高数偏导数求驻平面的知识拿出来

计算一下 V3-V1的驻平面
计算一下 V1-V2的驻平面

然后分别验证一下该驻平面的点的值

三个比较就可以得到结果了

使用特权

评论回复
93
emailli| | 2008-11-13 16:52 | 只看该作者

其实题目给的有点问题。先更正一下描叙

我们其实需要找的是

MAX{MIN{(V3-V1),(V1-V2)}} ,(假设V1>V2)

对于
f1(x,y) = V3-V1   

f2(x,y) = V1-V2

放在三维坐标里面来看,f1(x,y)和f2(x,y) 均为一个面

用  MIN{(V3-V1),(V1-V2)} 描述就是我们第一步 要寻找的 面

这个面是 f1(x,y)和f2(x,y) 距离(0,0)平面 的一个组合

然后在
MIN{(V3-V1),(V1-V2)} 这个面中 寻找最大值

那么,对于平面最大值的求解, 我们可以知道发生在我开始说的三种情况下。

驻平面点 和 相等的点

之所以要 分析 相等的点,是因为该面是 两个面 组合而成的

两个面 有可能有交集,也有可能没有交集

如果有交集,那就意味着 MAX{MIN{(V3-V1),(V1-V2)}} 这个面是 连续的

如果没有交集,那就意味着 MAX{MIN{(V3-V1),(V1-V2)}} 不连续,或者压根就是 f1(x,y) 或者 f2(x,y)。

就目前的推导来看,显然 MAX{MIN{(V3-V1),(V1-V2)}} 是连续的。因为存在 f1(x,y) 和 f2(x,y) 相等的点。

所以,剩下的就是计算驻平面(因为是三维的)了。

(对于二维而言,就是求驻点了)

使用特权

评论回复
94
耕在此行| | 2008-11-14 13:31 | 只看该作者

大家都在用数字办法解决问题(39)除外

本人用电路的方法解决问题:
我也是用的元件也和楼主一样,但可以得到:2/6VCC 3/6VCC 4/6VCC
                           也可以得到:1/4VCC 2/4VCC 3/4VCC.
                           也可以得到:1/nVCC 2/nVCC 3/nVCC.
呵呵 楼上的各位高手应该也没问题吧.

使用特权

评论回复
95
ljm810010|  楼主 | 2008-11-14 13:37 | 只看该作者

楼上兄弟,你是用电阻接VCC和GND分压吧?

这样当然简单,但平时是耗电的,用纽扣电池供电就不行

使用特权

评论回复
96
ayb_ice| | 2008-11-15 09:52 | 只看该作者

回96L

可以用个IO控制串联电阻的VCC或GND端,在扫描的时候再开启。。。

使用特权

评论回复
97
ljm810010|  楼主 | 2008-11-15 13:04 | 只看该作者

既然还有IO,何必做AD键?

使用特权

评论回复
98
ljm810010|  楼主 | 2008-11-19 13:15 | 只看该作者

快100楼了,还没正确答案,呵呵

使用特权

评论回复
99
a5566255| | 2008-11-19 13:37 | 只看该作者

100楼我来顶呵呵~~

使用特权

评论回复
100
keyanfeng| | 2008-11-19 16:02 | 只看该作者

这个问题只能用作图方法来求解

没有精确值.
个人见解.

我换算了一下,
假设
X= 1/(1+x),(0< X <1);
Y= 1/(1+y),(0< Y <1);

Δ1 = Y - X,
Δ2 = X*(Y-1)^2/(1-XY);
再计算下去头都晕.
要同时使Δ1,Δ2最大化,画两个图.
怎么画,不知道.

如果现在谁能列出歌德巴赫猜想的证明过程,
我真的是服了他.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则