2016 Update
This commit is contained in:
parent
948b86eafa
commit
dcf5d15da3
7965 changed files with 139854 additions and 31002 deletions
|
|
@ -0,0 +1,56 @@
|
|||
function cholesky ($a) {
|
||||
$l = @()
|
||||
if ($a) {
|
||||
$n = $a.count
|
||||
$end = $n - 1
|
||||
$l = @(0) * $n
|
||||
foreach ($i in 0..$end) {$l[$i] = @(0) * $n}
|
||||
foreach ($k in 0..$end) {
|
||||
$m = $k - 1
|
||||
$sum = 0
|
||||
if(0 -lt $k) {
|
||||
foreach ($j in 0..$m) {$sum += $l[$k][$j]*$l[$k][$j]}
|
||||
}
|
||||
$l[$k][$k] = [Math]::Sqrt($a[$k][$k] - $sum)
|
||||
if ($k -lt $end) {
|
||||
foreach ($i in ($k+1)..$end) {
|
||||
$sum = 0
|
||||
if (0 -lt $k) {
|
||||
foreach ($j in 0..$m) {$sum += $l[$i][$j]*$l[$k][$j]}
|
||||
}
|
||||
$l[$i][$k] = ($a[$i][$k] - $sum)/$l[$k][$k]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$l
|
||||
}
|
||||
|
||||
function show($a) {
|
||||
if($a) {
|
||||
0..($a.Count - 1) | foreach{ if($a[$_]){"$($a[$_])"}else{""} }
|
||||
}
|
||||
}
|
||||
|
||||
$a1 = @(
|
||||
@(25, 15, -5),
|
||||
@(15, 18, 0),
|
||||
@(-5, 0, 11)
|
||||
)
|
||||
"a1 ="
|
||||
show $a1
|
||||
""
|
||||
"l1 ="
|
||||
show (cholesky $a1)
|
||||
""
|
||||
$a2 = @(
|
||||
@(18, 22, 54, 42),
|
||||
@(22, 70, 86, 62),
|
||||
@(54, 86, 174, 134),
|
||||
@(42, 62, 134, 106)
|
||||
)
|
||||
"a2 ="
|
||||
show $a2
|
||||
""
|
||||
"l2 ="
|
||||
show (cholesky $a2)
|
||||
Loading…
Add table
Add a link
Reference in a new issue