jacobian2 := proc(fun,p,n)
local i,j,s ;
s := seq(p[i], i=1..n) ;
j := jacobian([fun( [s] )], [s]) ;
RETURN(unapply( j , s) );
end ;
mathieuH a écrit:
> fun_der([3,2]);
Error, (in fun_der) fun_der uses a 2nd argument, p_2, which is missing
mathieuH a écrit:Certes, je me suis un peu troué...
bon disons que mon dernier post correspond à ce que je voudrais..
with(linalg) :
jacobian2 := proc(f,n) local p,L,fp,s ;
fp := f(p) ;
L := [seq([seq( diff(fp[i,1], p[j]), j=1..n)], i=1..rowdim(fp))];
s := seq(p[i],i=1..n) ;
RETURN( matrix@unapply(L, s)@op );
end :
> f := p -> matrix(2,1,[p[1]*p[2]+p[3]^4,p[2]^2*p[3]]);
4 2
f := p -> matrix(2, 1, [p[1] p[2] + p[3] , p[2] p[3]])
> jf := jacobian2(f,4) ;
jf := matrix@((p_1, p_2, p_3, p_4) ->
3 2
[[p_2, p_1, 4 p_3 , 0], [0, 2 p_2 p_3, p_2 , 0]])@op
> jf([a,b,c,d]);
[ 3 ]
[b a 4 c 0]
[ ]
[ 2 ]
[0 2 b c b 0]
>
with(linalg) :
jacobian2 := proc(f,n) local p,L,fp,s ;
fp := f(p) ;
L := [seq([seq( diff(fp[i,1], p[j]), j=1..n)], i=1..rowdim(fp))];
s := seq(p[i],i=1..n) ;
RETURN( matrix@unapply(L, s)@op );
end :
> f := p -> matrix(2,1,[p[1]*p[2]+p[3]^4,p[2]^2*p[3]]);
4 2
f := p -> matrix(2, 1, [p[1] p[2] + p[3] , p[2] p[3]])
> f(x);
[ 4]
[x[1] x[2] + x[3] ]
[ ]
[ 2 ]
[ x[2] x[3] ]
> jf := jacobian2(f,4) ;
jf := matrix@((p_1, p_2, p_3, p_4) ->
3 2
[[p_2, p_1, 4 p_3 , 0], [0, 2 p_2 p_3, p_2 , 0]])@op
> jf([a,b,c,d]);
[ 3 ]
[b a 4 c 0]
[ ]
[ 2 ]
[0 2 b c b 0]
>
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 44 invités
Tu pars déja ?
Identification
Pas encore inscrit ?
Ou identifiez-vous :