آره مثل اینکه دارد!
کد تصحیح شده در زبان R (امید وارم این بار درست باشد!)
> A=matrix(1:4,2)
> A
[,1] [,2]
[1,] 1 3
[2,] 2 4
> diag(diag(A)) # Just keep the diag
[,1] [,2]
[1,] 1 0
[2,] 0 4
> result=svd(A)
> result
$d
[1] 5.4649857 0.3659662
$u
[,1] [,2]
[1,] -0.5760484 -0.8174156
[2,] -0.8174156 0.5760484
$v
[,1] [,2]
[1,] -0.4045536 0.9145143
[2,] -0.9145143 -0.4045536
> diag(result$d)
[,1] [,2]
[1,] 5.464986 0.0000000
[2,] 0.000000 0.3659662
البته با eigen(A)
هم میشه مستقیم مقادیر eigen را بدست آورد.
واقعیتش من حتی دوره دبیرستان هم رشتم ریاضی نبوده ولی حدس می زدم یک جای کار مشکل داره!