数学建模社区-数学中国

标题: 怎样去掉Hesse矩阵的方括号和逗号? [打印本页]

作者: tiansifei1    时间: 2012-2-7 17:48
标题: 怎样去掉Hesse矩阵的方括号和逗号?
我用Matlab编了一段程序,求解函数f的梯度和Hesse矩阵,程序如下:
syms x1 x2 x3;
f=2*x1^2+3*x1*x2+4*x2*x3+x3^2;
a=diff(f,x1);b=diff(f,x2);c=diff(f,x3);
grad=[a,b,c]
fxx=diff(a,x1);fxy=diff(a,x2);fxz=diff(a,x3);
fyx=diff(b,x1);fyy=diff(b,x2);fyz=diff(b,x3);
fzx=diff(c,x1);fzy=diff(c,x2);fzz=diff(c,x3);
Hesse=[fxx fxy fxz;fyx fyy fyz;fzx fzy fzz]
运行的结果是:
grad =
[ 4*x1+3*x2, 3*x1+4*x3, 4*x2+2*x3]
Hesse =
[ 4, 3, 0]
[ 3, 0, 4]
[ 0, 4, 2]
怎样才能把Hesse矩阵中的方括号和逗号去掉啊?按理说结果中不应该有方括号的。谢谢!
作者: alair006    时间: 2012-2-8 08:35
强人,佩服死了。428456379797383
作者: IIvEvII    时间: 2012-2-8 08:54
楼主 虽然我不懂你写的是什么 但我想办法把[]与,去掉了 将最后一行程序改为
Hesse=double([fxx fxy fxz;fyx fyy fyz;fzx fzy fzz])
作者: alair006    时间: 2012-2-8 10:55
好贴,顶起,慢慢看,thank you6779477050245392
作者: tiansifei1    时间: 2012-2-11 15:44
加了double之后就对了,但是还想请教一下原理,谢谢!




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5