let m, n be non zero Nat; for f being PartFunc of (REAL m),(REAL n)
for x being Element of REAL m st f is_differentiable_in x holds
diff (f,x) = Mx2Tran (Jacobian (f,x))
let f be PartFunc of (REAL m),(REAL n); for x being Element of REAL m st f is_differentiable_in x holds
diff (f,x) = Mx2Tran (Jacobian (f,x))
let x be Element of REAL m; ( f is_differentiable_in x implies diff (f,x) = Mx2Tran (Jacobian (f,x)) )
assume A1:
f is_differentiable_in x
; diff (f,x) = Mx2Tran (Jacobian (f,x))
set M = Jacobian (f,x);
A2:
( the carrier of (TOP-REAL n) = REAL n & the carrier of (TOP-REAL m) = REAL m )
by EUCLID:22;
for dx being Element of REAL m holds (diff (f,x)) . dx = (Mx2Tran (Jacobian (f,x))) . dx
proof
let dx be
Element of
REAL m;
(diff (f,x)) . dx = (Mx2Tran (Jacobian (f,x))) . dx
reconsider fdx =
(diff (f,x)) . dx as
Element of
REAL n ;
reconsider Mdx =
(Mx2Tran (Jacobian (f,x))) . dx as
Element of
REAL n by A2, FUNCT_2:5;
A3:
len fdx = n
by CARD_1:def 7;
A4:
len Mdx = n
by CARD_1:def 7;
for
j being
Nat st 1
<= j &
j <= len fdx holds
fdx . j = Mdx . j
proof
let j be
Nat;
( 1 <= j & j <= len fdx implies fdx . j = Mdx . j )
assume A5:
( 1
<= j &
j <= len fdx )
;
fdx . j = Mdx . j
then consider fj being
PartFunc of
(REAL m),
REAL such that A6:
(
fj = (proj (j,n)) * f &
fj is_differentiable_in x )
by A1, A3, Th19;
consider dy being
FinSequence of
REAL such that A7:
(
dom dy = Seg m & ( for
i being
Nat st 1
<= i &
i <= m holds
dy . i = ((proj (i,m)) . dx) * (partdiff (fj,x,i)) ) &
(diff (fj,x)) . dx = Sum dy )
by A6, Th26;
A8:
j in Seg n
by A3, A5;
A9:
for
i being
Nat st
i in Seg m holds
(Jacobian (f,x)) * (
i,
j)
= partdiff (
fj,
x,
i)
proof
let i be
Nat;
( i in Seg m implies (Jacobian (f,x)) * (i,j) = partdiff (fj,x,i) )
assume
i in Seg m
;
(Jacobian (f,x)) * (i,j) = partdiff (fj,x,i)
hence (Jacobian (f,x)) * (
i,
j) =
partdiff (
f,
x,
i,
j)
by A8, Def1
.=
partdiff (
fj,
x,
i)
by A6
;
verum
end;
A10:
for
i being
Nat st 1
<= i &
i <= m holds
dy . i = ((proj (i,m)) . dx) * ((Jacobian (f,x)) * (i,j))
proof
let i be
Nat;
( 1 <= i & i <= m implies dy . i = ((proj (i,m)) . dx) * ((Jacobian (f,x)) * (i,j)) )
assume A11:
( 1
<= i &
i <= m )
;
dy . i = ((proj (i,m)) . dx) * ((Jacobian (f,x)) * (i,j))
then A12:
i in Seg m
;
thus dy . i =
((proj (i,m)) . dx) * (partdiff (fj,x,i))
by A7, A11
.=
((proj (i,m)) . dx) * ((Jacobian (f,x)) * (i,j))
by A9, A12
;
verum
end;
set dxM =
(LineVec2Mx (@ dx)) * (Jacobian (f,x));
A13:
(
len (Jacobian (f,x)) = m &
width (Jacobian (f,x)) = n &
Indices (Jacobian (f,x)) = [:(Seg m),(Seg n):] )
by MATRIX_0:23;
A14:
(
LineVec2Mx (@ dx) = <*(@ dx)*> &
LineVec2Mx (@ dx) is
Matrix of 1,
len (@ dx),
F_Real )
by MATRIX15:def 1;
A15:
len (@ dx) =
len dx
by MATRTOP1:def 1
.=
m
by CARD_1:def 7
;
then A16:
(
len (LineVec2Mx (@ dx)) = 1 &
width (LineVec2Mx (@ dx)) = m &
Indices (LineVec2Mx (@ dx)) = [:(Seg 1),(Seg m):] )
by MATRIX_0:23;
then A17:
(
len ((LineVec2Mx (@ dx)) * (Jacobian (f,x))) = len (LineVec2Mx (@ dx)) &
width ((LineVec2Mx (@ dx)) * (Jacobian (f,x))) = width (Jacobian (f,x)) & ( for
i,
j being
Nat st
[i,j] in Indices ((LineVec2Mx (@ dx)) * (Jacobian (f,x))) holds
((LineVec2Mx (@ dx)) * (Jacobian (f,x))) * (
i,
j)
= (Line ((LineVec2Mx (@ dx)),i)) "*" (Col ((Jacobian (f,x)),j)) ) )
by A13, MATRIX_3:def 4;
A18:
Mdx = Line (
((LineVec2Mx (@ dx)) * (Jacobian (f,x))),1)
by MATRTOP1:def 3;
A19:
j in Seg (width ((LineVec2Mx (@ dx)) * (Jacobian (f,x))))
by A3, A5, A13, A17;
then A20:
Mdx . j = ((LineVec2Mx (@ dx)) * (Jacobian (f,x))) * (1,
j)
by A18, MATRIX_0:def 7;
len ((LineVec2Mx (@ dx)) * (Jacobian (f,x))) = 1
by A16, MATRIX_3:def 4, A13;
then
dom ((LineVec2Mx (@ dx)) * (Jacobian (f,x))) = Seg 1
by FINSEQ_1:def 3;
then
1
in dom ((LineVec2Mx (@ dx)) * (Jacobian (f,x)))
;
then
[1,j] in Indices ((LineVec2Mx (@ dx)) * (Jacobian (f,x)))
by A19, ZFMISC_1:87;
then A22:
Mdx . j = (Line ((LineVec2Mx (@ dx)),1)) "*" (Col ((Jacobian (f,x)),j))
by A13, A16, A20, MATRIX_3:def 4;
set u =
mlt (
(Line ((LineVec2Mx (@ dx)),1)),
(Col ((Jacobian (f,x)),j)));
len (Line ((LineVec2Mx (@ dx)),1)) =
width (LineVec2Mx (@ dx))
by MATRIX_0:def 7
.=
m
by A15, MATRIX_0:23
;
then reconsider a =
Line (
(LineVec2Mx (@ dx)),1) as
Element of
m -tuples_on the
carrier of
F_Real by FINSEQ_2:92;
len (Col ((Jacobian (f,x)),j)) =
len (Jacobian (f,x))
by MATRIX_0:def 8
.=
m
by MATRIX_0:23
;
then reconsider b =
Col (
(Jacobian (f,x)),
j) as
Element of
m -tuples_on the
carrier of
F_Real by FINSEQ_2:92;
mlt (
(Line ((LineVec2Mx (@ dx)),1)),
(Col ((Jacobian (f,x)),j)))
= mlt (
a,
b)
;
then
mlt (
(Line ((LineVec2Mx (@ dx)),1)),
(Col ((Jacobian (f,x)),j)))
in { s where s is Element of the carrier of F_Real * : len s = m }
;
then A23:
ex
u0 being
Element of the
carrier of
F_Real * st
(
u0 = mlt (
(Line ((LineVec2Mx (@ dx)),1)),
(Col ((Jacobian (f,x)),j))) &
len u0 = m )
;
m is
Element of
NAT
by ORDINAL1:def 12;
then A24:
len dy = m
by A7, FINSEQ_1:def 3;
A25:
for
i being
Nat st 1
<= i &
i <= len dy holds
dy . i = (mlt ((Line ((LineVec2Mx (@ dx)),1)),(Col ((Jacobian (f,x)),j)))) . i
proof
let i be
Nat;
( 1 <= i & i <= len dy implies dy . i = (mlt ((Line ((LineVec2Mx (@ dx)),1)),(Col ((Jacobian (f,x)),j)))) . i )
assume A26:
( 1
<= i &
i <= len dy )
;
dy . i = (mlt ((Line ((LineVec2Mx (@ dx)),1)),(Col ((Jacobian (f,x)),j)))) . i
then A27:
i in Seg m
by A24;
reconsider s =
(proj (i,m)) . dx as
Element of
F_Real ;
reconsider t =
(Jacobian (f,x)) * (
i,
j) as
Element of
F_Real ;
1
in Seg 1
;
then
[1,i] in Indices (LineVec2Mx (@ dx))
by A16, A27, ZFMISC_1:87;
then A28:
ex
p being
FinSequence of the
carrier of
F_Real st
(
p = (LineVec2Mx (@ dx)) . 1 &
(LineVec2Mx (@ dx)) * (1,
i)
= p . i )
by MATRIX_0:def 5;
(LineVec2Mx (@ dx)) . 1 =
@ dx
by A14
.=
dx
by MATRTOP1:def 1
;
then
a . i = dx . i
by A16, A27, A28, MATRIX_0:def 7;
then A30:
a . i = (proj (i,m)) . dx
by PDIFF_1:def 1;
i in dom (Jacobian (f,x))
by A13, A27, FINSEQ_1:def 3;
then
b . i = (Jacobian (f,x)) * (
i,
j)
by MATRIX_0:def 8;
then (mlt ((Line ((LineVec2Mx (@ dx)),1)),(Col ((Jacobian (f,x)),j)))) . i =
s * t
by A27, A30, FVSUM_1:61
.=
((proj (i,m)) . dx) * ((Jacobian (f,x)) * (i,j))
;
hence
dy . i = (mlt ((Line ((LineVec2Mx (@ dx)),1)),(Col ((Jacobian (f,x)),j)))) . i
by A10, A24, A26;
verum
end;
A33:
dom (diff (f,x)) = REAL m
by FUNCT_2:def 1;
(diff (fj,x)) . dx =
((proj (j,n)) * (diff (f,x))) . dx
by A1, A3, A5, A6, Th20
.=
(proj (j,n)) . ((diff (f,x)) . dx)
by A33, FUNCT_1:13
.=
fdx . j
by PDIFF_1:def 1
;
hence
fdx . j = Mdx . j
by A7, A22, A23, A24, A25, FINSEQ_1:14;
verum
end;
hence
(diff (f,x)) . dx = (Mx2Tran (Jacobian (f,x))) . dx
by A4, FINSEQ_1:14, CARD_1:def 7;
verum
end;
hence
diff (f,x) = Mx2Tran (Jacobian (f,x))
by EUCLID:22; verum