天气与日历 切换到窄版

 找回密码
 立即注册
中国膜结构网
十大进口膜材评选 十大国产膜材评选 十大膜结构设计评选 十大膜结构公司评选
查看: 8|回复: 0

利用Cayley-Haminton定理和Boucher公式求逆矩阵

[复制链接]

该用户从未签到

主题

0

回帖

2912

积分

管理员

积分
2912
发表于 2024-6-22 09:46:18 | 显示全部楼层 |阅读模式
[code] Matrix Inverse
; based on Cayley-Hamilton theorem
; and Boucher formula

(princ "\nType mInverse to run ")

(defun c:mInverse ( / ma uma msize mp mplist spn splist fan falist
         falist-1 mplist-1 faz mma rma mm i maStr okStr)

(defun *error* ( msg )
(if (and msg (not (wcmatch (strcase msg t) "*break,*cancel*,*exit*")))
   (princ (strcat "\nError : " msg))
)
(princ)
) ; end *error*

(vl-load-com)

;; Matrix Transpose  -  Doug Wilson
;; Args: m - nxn matrix
(defun mTrp ( m )
    (apply 'mapcar (cons 'list m))
) ; end mTrp

;; Matrix x Vector  -  Vladimir Nesterovsky
;; Args: m - nxn matrix, v - vector in R^n
(defun MxV ( m v )
    (mapcar '(lambda ( r ) (apply '+ (mapcar '* r v))) m)
) ; end MxV

;; Matrix x Matrix  -  Vladimir Nesterovsky
;; Args: m1, m2 - nxn matrices
(defun MxM ( m1 m2 )   

   (mapcar (function (lambda (r) (MxV (mTrp m2) r))) m1)

   ;((lambda ( a ) (mapcar '(lambda ( r ) (MxV a r)) m1)) (mTrp m2))
) ; end MxM

;; matrix + matrix
;; Args: m1, m2 - nxn matrices
(defun MpM (m1 m2)
   (mapcar '(lambda (a b) (mapcar '+ a b)) m1 m2)
) ; end MpM

; e.g : (mpm '((1 2) (3 4)) '((5 6) (7 8)))
; ->    ((6 8) (10 12))

;; Make Vector
(defun make-vector (num n / vec)

(setq vec (list))
(repeat n
   (setq vec (append vec (list num)))
)
   vec
) ; end make-vector


; make vector matrix
(defun make-Vmatrix (num n / vma)

(setq vma (list))
(repeat n
   (setq vma (append vma (list (make-vector num n))))
) ; end repeat

  vma

) ; end make-Vmatrix


;; matrix scalar product
(defun Masp (num ma / vnum)
   (setq vnum (make-vector num (length ma)))
   (mapcar '(lambda (x) (mapcar '* vnum x)) ma)
) ; end masp

; e.g : (masp 2 '((1 2) (3 4)))
; ->    ((2 4) (6 8))

;; make unit matrix
(defun Make-Umatrix (num n / i j nlst zlst zmatrix zrow irow Umatrix itm mastr)

(setq i 0)
(setq nlst (list))
(repeat n
   (setq nlst (append nlst (list i)))
   (setq i (1+ i))
)

(setq zmatrix (list))
(repeat n
   (setq zlst (list))
   (setq zlst (make-vector 0 n))
   (setq zmatrix (append zmatrix (list zlst)))
)

(setq i 0)
(setq Umatrix (list))
(while (< i n)

   (setq zrow (nth i zmatrix))
   (setq j 0)
   (setq irow (list))
   (while (< j n)
      (setq itm (nth j zrow))
      (if (= j i)
         (setq itm NUM)
      )
      (setq irow (append irow (list itm)))
      (setq j (1+ j))
   ) ; end while
   (setq Umatrix (append Umatrix (list irow)))

(setq i (1+ i))
) ; end while

  Umatrix

) ; end make-Umatrix

; e.g : (make-Umatrix 1 3)
; -> ((1 0 0) (0 1 0) (0 0 1))

; sum of numbers on main cross of matrix
(defun Sum-MaCross (ma / i j n mrow numlst sum)

(setq n (length ma))

(setq numlst (list))

(setq i 0)
(while (< i n)

   (setq mrow (nth i ma))
   (setq j 0)
   
   (while (< j n)
      (setq itm (nth j mrow))
      (if (= j i)         
         (setq numlst (append numlst (list itm)))
      )
      (setq j (1+ j))
   ) ; end while   

(setq i (1+ i))
) ; end while

(apply '+ numlst)

) ; end Sum-MaCross

; e.g: (Sum-MaCross '((1 0 0) (0 1 0) (0 0 1)))
; ->   3

;; string to list [Lee-Mac]
(defun String-to-list ( str del / len lst pos )
    (setq len (1+ (strlen del)))
    (while (setq pos (vl-string-search del str))
        (setq lst (cons (substr str 1 pos) lst)
              str (substr str (+ pos len))
        )
    )
    (reverse (cons str lst))

)    ; end String-to-list

(defun Check-Input-String (str / lst msize i itm row ma)

(setq lst (mapcar 'atof (String-to-list str ",")))
(setq msize (fix (sqrt (length lst))))
(if (/= (expt msize 2) (length lst))
(progn
   (alert (strcat "Invalid Input" "\nExit"))
   (exit)
)
)

(setq ma (list) row (list) i 0)
(while lst
   (setq itm (car lst))            
   (setq row (append row (list itm)))   
   (setq lst (cdr lst))   
   (setq i (1+ i))
   (if (= (rem i msize) 0)
   (progn
    (setq Ma (append Ma (list Row)))
    (setq row (list))
   )
   )
) ; end while
   Ma
) ; end Check-Input-String

; e.g : (Check-Input-String "1,2,3,4")
;    ->((1.0 2.0) (3.0 4.0))

;; + + + + + + + +
;; Main program
;; + + + + + + + +

(if (null maStr0)
   (setq maStr0 "1,2,3,4")
)

(setq maStr (getstring (strcat "\nInput define matrix String or [eXit] <" maStr0 "> : ")))

(cond
( (= (strcase maStr) "X")
   (exit)
)
( (= maStr "")
   (setq maStr maStr0)
)
(T
   (setq okStr maStr)
)
) ; end cond

; supplied matrix
(setq ma (Check-Input-String maStr))

; convert to floating number
(setq ma (mapcar '(lambda(x) (mapcar 'float x)) ma))

; matrix size
(setq msize (length ma))

; unit matrix 1.0
(setq uma (make-Umatrix 1.0 msize))

; a factor list
(setq falist (list))   

; matrix power list
(setq mplist (list))

; specialize polynomical list
(setq splist (list))

(setq i 1)
(repeat msize
   (if (null mp)       ; matrix power   
   (setq mp ma)
   (setq mp (MxM ma mp))
   )
   (setq mplist (append (list mp) mplist))

   (setq spn (Sum-MaCross mp))   
   
   ; follow Boucher formula
   (if (null splist)
   (setq fan (/ spn (* i -1.0)))
   (setq fan (/ (+ spn (apply '+ (mapcar '* (reverse splist) falist))) (* i -1.0)))
   )
   (setq falist (append falist (list fan)))
   (setq splist (append splist (list spn)))

(setq i (1+ i))
) ; end repeat

;; !!!
;; the end factor
;; this must be Non-Zero
(setq faz (last falist))

(if (= faz 0)
(progn
   (alert (strcat "Cannot calculate"
         "\nInverse Matrix"
         "\n*Exit*"
      )
   )
   (exit)
)
)

; when faz satisfied non-zero
(setq maStr0 okStr)
         
; add 1.0 to remain factor list
(setq falist-1 (cons 1.0 (reverse (cdr (reverse falist)))))   

; add unit matrix to matrix power list
(setq mplist-1 (append (cdr mplist) (list uma)))   

; multiply matrix
(setq mma (mapcar '(lambda(n m) (Masp n m))
         falist-1 mplist-1
      )
)

; result matrix
; unit matrix 0.0
(setq Rma (make-Vmatrix 0.0 msize))

; follow Cayley-Haminton theorem
(foreach mm mma
   (setq Rma (MpM mm Rma))   
) ; end foreach

(setq rma (Masp (/ -1.0 faz) rma))

(princ "[")
(mapcar 'print rma)
(princ "\n]")   
         
(*error* nil)
(princ)
) ; end c:mInverse

; result
; inverse matrix of
; [(1.0 2.0) (3.0 4.0)] is :
; [(-2.0 1.0) (1.5 -0.5)][/code]

 

 

 

 

利用Cayley-Haminton定理和Boucher公式求逆矩阵

该用户从未签到

主题

0

回帖

0

积分

管理员

积分
0
发表于 2024-7-28 09:28:43 | 显示全部楼层
  法拉利膜材作为一种高性能的建筑材料,在建筑、汽车及广告等多个领域有着广泛的应用。以下是对法拉利膜材型号、特点及优点的详细分析:
[img]http://www.mjgou.com/data/attachment/forum/202403/13/223041uiqmeujen4jjj6zv.jpg[/img]
[b]一、法拉利膜材型号[/b]
法拉利膜材有多种型号,包括但不限于以下几种:1302 S2 Flexlight Advanced:这是一种高性能IV型柔性复合膜材,以其卓越的透光性、耐久性和易维护性而受到青睐。942、1202 S2、1002 S2、902 S2、1212 S2、912 S2:这些型号同样属于法拉利膜材系列,各自具有不同的特性和适用范围,但具体特点需根据具体型号进一步分析。需要注意的是,法拉利膜材的型号可能随着产品更新换代而有所变化,具体型号及其特性请参考最新产品资料。
[img=860,1255]http://www.mjgou.com/data/attachment/forum/202403/13/223254bbblwlbvbvsbwlsl.jpg[/img]
[b]二、法拉利膜材特点[/b]
法拉利膜材的特点主要体现在以下几个方面:
1、高强度与耐用性:法拉利膜材采用高强度材料制成,具有良好的抗拉强度和撕裂强度,能够承受较大的外力作用而不易破损。耐用性强,能够在恶劣气候条件下保持稳定的性能,延长使用寿命。
2、透光性与美观性:部分型号如1302 S2 Flexlight Advanced具有高透光性,能够在保持室内光线充足的同时,提供清晰的视野。膜材表面平整光滑,色彩丰富多样,能够满足不同建筑和装饰需求,提升整体美观性。
3、轻质与灵活性:法拉利膜材重量较轻,便于运输和安装,能够降低施工成本和时间。膜材具有一定的柔韧性,能够适应各种复杂形状和结构的设计要求。
4、环保与可回收性:法拉利膜材符合环保要求,部分材料可回收利用,减少了对环境的影响。
[img]http://www.mjgou.com/data/attachment/forum/202403/13/223128owhn0099rrds5h5y.jpg[/img]
[b]三、法拉利膜材优点[/b]
法拉利膜材的优点主要体现在以下几个方面:
1、提升建筑性能:高强度与耐用性使得法拉利膜材能够提升建筑的稳定性和安全性,延长使用寿命。透光性与美观性使得建筑内部光线充足、视野开阔,同时提升整体美观度。
2、降低施工成本:轻质特性使得运输和安装成本降低,施工效率提高。膜材的柔韧性使得施工更加灵活多变,能够适应各种复杂地形和结构要求。
3、节能环保:部分材料可回收利用,符合环保要求,减少了对环境的影响。良好的透光性能够减少室内照明需求,降低能耗。
4、广泛应用领域:
法拉利膜材不仅适用于建筑领域(如体育设施、商业设施、文化设施、交通设施等),还广泛应用于汽车及广告领域(如高档车辆贴膜保护和装饰、广告招贴等),展现出其多功能的特性。

综上所述,法拉利膜材以其高强度、耐用性、透光性、美观性、轻质灵活性以及环保可回收性等优点,在建筑、汽车及广告等多个领域发挥着重要作用。具体型号的选择应根据实际需求和应用场景进行综合考虑。
[url=http://www.mjgou.com/forum-17-1.html][size=88040][color=Red]法拉利膜材中国代理商 - 膜结构网[/color][/size][/url]
利用Cayley-Haminton定理和Boucher公式求逆矩阵

该用户从未签到

主题

0

回帖

4

积分

新手上路

积分
4
发表于 2024-8-6 10:42:43 | 显示全部楼层
中兴化成(中兴化成工业株式会社)作为一家在氟树脂领域享有盛誉的企业,其进口PTFE膜材在市场上也备受关注。以下是对中兴化成进口PTFE膜材的详细介绍:
[b]一、品牌与产品系列[/b]
中兴化成工业株式会社创立于1963年,致力于开发、制造以氟树脂为主的高功能树脂产品。其PTFE膜材产品系列丰富,包括FGT系列等,这些产品广泛应用于半导体、通信、汽车、食品、化学、建筑等多个领域。
[b]二、产品特点[/b]
耐高温性:
中兴化成的PTFE膜材可耐700~800℃的高温,表现出色的耐热性能。
耐候性:
不受低温和紫外线的影响,长期保持材料的稳定性和功能性。
不粘附性与疏水性:
氟树脂的非粘着性和防水性使得膜材表面不易粘附灰尘和污物,具备自洁功能。
高强度与安全性:
使用世界上最细的玻璃纤维B纱作为基材,赋予膜材足够的强度和安全性。
透光性与热性能:
自然光通过膜材后变为自然扩散光,营造柔和的空间氛围。同时,膜材能反射大部分太阳能,抑制热量传导到建筑物内部,提高隔热效果。
自动清洁性:
雨水能自动冲洗掉膜材表面的灰尘和污染物,保持膜材的清洁和美观。
吸音性:
作为内部装修材料时,氟树脂膜材的柔软性和透气性有助于提升建筑物内的音响效果。
[b]三、应用领域[/b]
中兴化成的PTFE膜材广泛应用于以下领域:
屋顶材料:作为建筑物的屋顶覆盖材料,提供优异的隔热、防水和自洁功能。
天花板材料:为室内空间创造柔和的光线环境,同时具备良好的隔音效果。
内部装修材料:用于墙面、隔断等内部装修,提升整体装修品质和空间舒适度。
[b]四、总结[/b]
中兴化成的进口PTFE膜材凭借其卓越的耐高温性、耐候性、高强度和自洁性等特点,在建筑、装饰等多个领域展现出广泛的应用前景。作为氟树脂产品的综合加工制造商,中兴化成始终致力于提供最优质的产品和服务,满足客户的多样化需求。

 

 

 

 

利用Cayley-Haminton定理和Boucher公式求逆矩阵
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|中国膜结构网|中国膜结构协会|进口膜材|国产膜材|ETFE|PVDF|PTFE|设计|施工|安装|车棚|看台|污水池|中国膜结构网_中国空间膜结构协会

GMT+8, 2024-11-1 13:25 , Processed in 0.167253 second(s), 28 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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