[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: x = Z\z
From: |
Martin Helm |
Subject: |
Re: x = Z\z |
Date: |
Fri, 7 Jan 2011 00:56:05 +0100 |
User-agent: |
KMail/1.13.5 (Linux/2.6.34.7-0.7-desktop; KDE/4.5.4; x86_64; ; ) |
Am Freitag, 7. Januar 2011, 00:08:39 schrieb oort:
> Hello.
>
> If x = Z\z is the solution of Zx=z and only square systems have solution
> then why the operation of non-square matrices Z gives "numerical values"?
> Don't you think that it should give some error message?
>
> For instance:
>
> octave:1> A = [3, 2, 6; 2, -2, 1; -1, 0.5, 3]
> A =
>
> 3.00000 2.00000 6.00000
> 2.00000 -2.00000 1.00000
> -1.00000 0.50000 3.00000
>
> octave:2> a = [1; 2; 3]
> a =
>
> 1
> 2
> 3
>
> octave:3> A\a
> ans =
>
> -0.74684
> -1.26582
> 0.96203
>
> OK... "A" is a 3x3 matrice and "a" is a 3x1 matrice
>
> But:
>
> octave:4> B = [3, 2; 2, -2; -1, 0.5]
> B =
>
> 3.00000 2.00000
> 2.00000 -2.00000
> -1.00000 0.50000
>
> octave:5> b = [1; 2; 3]
> b =
>
> 1
> 2
> 3
>
> octave:6> B\b
> ans =
>
> 0.29801
> -0.11479
>
> Now we have a system of 3 equations and 2 variables. It's a overdefined
> system. Curiously B*x does not give equal to "b"...
>
>
> And if we use a underdefined system we aldo reach a "numeric" result.
>
> octave:7> C = [3, 2, 6; 2, -2, 1]
> C =
>
> 3 2 6
> 2 -2 1
>
> octave:8> c = [1; 2]
> c =
>
> 1
> 2
>
> octave:9> C\c
> ans =
>
> 0.42175
> -0.51459
> 0.12732
>
> How it is possible to have a "result" from a underdifined system?
> Curiously if we put a third row with zeros in C and if we calculate C*x we
> obtain "c". However in octave x = [0.42175; -0.51459; 0.12732] and in
> MATLAB x = [0; -0.7857; 0.4286]
Ocatve \ operator also solves under- and overdetermined systems in the
minimum norm and least squares sense respectively. that is the reason why this
works. it is not an error.
- x = Z\z, oort, 2011/01/06
- Re: x = Z\z, David Bateman, 2011/01/06
- Re: x = Z\z,
Martin Helm <=