zoukankan      html  css  js  c++  java
  • Electric resistance

     hdu3976(Electric resistance) 高斯消元 的题解 :转自 https://www.cnblogs.com/ACRykl/p/8711227.html

    Electric resistance

    Problem Description
    Now give you a circuit who has n nodes (marked from 1 to n) , please tell abcdxyzk the equivalent resistance of the circuit between node 1 and node n.
    You may assume that the circuit is connected.The equivalent resistance of the circuit between 1 and n is that,
    if you only consider node 1 as positive pole and node n as cathode , all the circuit could be regard as one resistance .
    (It's important to analyse complicated circuit ) At most one resistance will between any two nodes.

    总体思路:利用 节点电压法 列线性方程,然后高斯消元法求解。

    ① 先普及一下知识:

       节点:电路中三条或三条以上支路的交点。

       参考点:任选的一个个点,把该点作为电路的的电位参考点,

           通常选择为一个节点,因为多出了一个节点没用

       节点电压:节点与参考点之间的电压

       独立源:包含电压源和电流源。

       电流源:电流不受外电路的影响而独立存在的电源。

       电导:电阻的倒数。

       自导:就是该节点所连的支路电导之和,

          如 G(11) 就是 1 号节点所连的各支路电导之和。

       互导:相邻节点间公共电导之负值,

          如 G(1,2) 就是1 号节点和 2 号节点之间的电导之和的负值。

     一般的,对于有 n 个节点的电路应用 KCL 列方程式时,只能写出 n-1 个独立方程,

    且为任意 n-1 个,这 n-1 个称为 独立节点,节点分析法可以从 KCL 推导证明(这里就不讲了)

    所以我们用 节点分析法时,只需要用到 n-1 个节点

    ② 以节点电压为待求的电路变量,求解电路。

     (注意这里的 n 为 结点数 - 1  )

     对于第一个矩阵,主对角线上的元素为:自导

             其余元素为:互导

    对于第二个矩阵,其值为对应节点的节点电压,如  U1 为 1 号节点的节点电压

    对于第三个矩阵,xi 代表: 连接到该节点各支路中独立源所引起的电流代数和

            对于电流源产生的电流,当流入节点时为正,反之为负;

            对于电压源产生的电流,当电压源正极靠近该节点时为正,反之为负。

    ③ 将上述矩阵展开 得到 n 个方程 (再提醒一次,这里的 n 是:结点数-1 )

    于是有增广矩阵:

    ③ 具体思路

    节点电压法就是通过电流和电阻求解电压,而这道题没给出电压,我们就自己外加电压源,

    为了计算方便,我们就在 节点1 和 节点 n 之间外加电流源,为什么是电流源呢?当然是为了 容易求电流了,

    而且 既然追求简单,我们自然要贯彻到底,就可以设电流源流出的电流 为  1.,

    而且 上面我已经强调过几次了,我们只需要用到 n-1 个节点,所以 我们可以不用 节点1 并设其电压为 0.

    这样子 我们就可以列增广矩阵,求解 各节点电压,然后 用

        (节点 n 的电压 - 0 (节点 1的电压)) / 1(节点1和节点n 之间的 总电流)= 等效电阻

    化简一下就是, 节点 n 的电压 = 等效电阻

    为了更直观,我用题目的下标再画一个增广矩阵矩阵吧。

     注意节点1 是不用求的,所以我们只用到 节点2 到 节点n.  而我的代码里的增广矩阵是从下标  0 开始的,

    各位要看清楚,a[0][0] 对应的是 G21,即 节点1 和 节点 2 之间电阻的倒数。

    而且 各节点间只有  节点1 和 节点n 之间有独立电流源引起的电流,所以 x1 和 xn 为 1 (当然,x1 没用到),其他皆为 0

    证明:节点电压法可列 必有解 (还不会证明,等我线代学完)

    首先,我们先 观察一下 n 个节点,n 个方程的增广矩阵,注意一下,这里多列了一条线性没有贡献的方程,但不止多了一行,而且多了一列。

    原先是 (n-1)*(n-1+1) ,现在是 n*(n+1)的矩阵。(+1 是因为有一列常数项向量)的矩阵)

    因为这样比较容易看出 节点电压法所列的增广矩阵的特点。

    特点①:系数矩阵 是关于主对角线对称的,即 G( i , j )=G( j , i )

    特点②:系数矩阵的每一行加起来和为 0,如:G(1,1)= - (G(1,2) + G(1,3) + ..+ G(1,n)),所以 G(1,1)+G(1,2) + G(1,3) + ..+ G(1,n) = 0

    Let's go back to 节点方程所列的增广矩阵,怎么证明该方程必有解呢?

    我们将线性方程组记为: Ax=B,只要 A 可逆,x 必有解

    其中 A 为系数矩阵, B 为 常数项向量,那么怎么证明 A 可逆呢?

    只要 A 满足 两个条件,A 为方阵,且 det(A) != 0 即可,

    于是,对于 A 对应的行列式:

    ============ ========= ========= ======= ====== ===== ===== === == =

        一剪梅·舟过吴江   宋代: 蒋捷

    一片春愁待酒浇。江上舟摇,楼上帘招。
    秋娘渡与泰娘桥,风又飘飘,雨又萧萧。(渡 一作:度。桥 一作:娇)

    何日归家洗客袍?银字笙调,心字香烧。
    流光容易把人抛,红了樱桃,绿了芭蕉。
  • 相关阅读:
    3.6 符号表的应用
    将博客搬至CSDN
    webpack打包vue项目IE报错,“对象不支持“use”属性或方法”
    移动端解决input被输入法挡住的问题
    javascript中对象的深复制的几种方法
    如何随机洗牌一个数组
    setInterval中this指向的问题
    css中的各种常见布局写法
    vue设置全局变量或函数
    【nodejs爬虫】使用async控制并发写一个小说爬虫
  • 原文地址:https://www.cnblogs.com/asdfknjhu/p/13812581.html
Copyright © 2011-2022 走看看