形如 f(x)=(x1-x2)^2+(x2-x3)^2+......+(x200-x201)^2 的函数如何表示
我刚自学matlab,遇到以下问题:f(x)=(x1-x2)^2+(x2-x3)^2+......+(x200-x201)^2这种函数怎么在matlab中写出来!
请高人指教!:'(
[ 本帖最后由 eight 于 2007-10-12 23:08 编辑 ] 看上去怎么有点像正定矩阵的多项式展开
好像这样x*A*x'=x1^2+x2^2+...+xn^2 那如果是这样的式子呢:f(x)=1/((x1-x2)^2+(y1-y2)^2)+1/((x2-x3)^2+(y2-y3)^2)+......+1/((x200-x201)^2+(y200-y201)^2) 原帖由 pingpang 于 2007-10-13 09:24 发表 http://www.chinavib.com/forum/images/common/back.gif
那如果是这样的式子呢:f(x)=1/((x1-x2)^2+(y1-y2)^2)+1/((x2-x3)^2+(y2-y3)^2)+......+1/((x200-x201)^2+(y200-y201)^2) n=201;%定义变量个数
x=sym(ones(1,n));y=sym(ones(1,n));%给符号变量矩阵x,y赋初值
for ii=1:n
x(ii)=['x' num2str(ii)];%定义符号变量的形式为x1,...,xn
end
for ii=1:n
y(ii)=['y' num2str(ii)];%定义符号变量的形式为y1,...,yn
end
fx=1/(x(1)-x(2))^2+1/(y(1)-y(2))^2;%给符号变量fx赋初值
%利用循环表示出f(x)=1/((x1-x2)^2+(y1-y2)^2)+1/((x2-x3)^2+(y2-y3)^2)+......+1/((x200-x201)^2+(y200-y201)^2)
for ii=2:200
fx=fx+1/(x(ii)-x(ii+1))^2+1/(y(ii)-y(ii+1))^2;
end
参看我昨天发的帖子:http://www.chinavib.com/forum/thread-53077-1-1.html
[ 本帖最后由 ling0 于 2007-10-13 18:09 编辑 ] 我已经写出来了,和楼上的差不多。
谢谢大家的帮助!
回复 #5 pingpang 的帖子
最好能把你写的结果帖上来和大家分享:@) 我的编完这个样子的。n=108; %定义变量个数
x=sym(ones(1,n)); %给符号变量矩阵x,y,z,f赋初值
y=sym(ones(1,n));
z=sym(ones(1,n));
f=sym(ones(1,n));
for ii=1:n;
x(ii)=['x' num2str(ii)];
y(ii)=['y' num2str(ii)];)]; %定义符号变量的形式
z(ii)=['z' num2str(ii)];
end
for kk=1:107;
f(kk)=1/((x(kk)-x(kk+1)).^2+(y(kk)-y(kk+1)).^2+ (z(kk)-z(kk+1)).^2)^12-1/((x(kk)-x(kk+1)).^2+(y(kk)-y(kk+1)).^2+ (z(kk)-z(kk+1)).^2)^6;
end
fxyz=sum(f);
我现在不知道继续该怎么办了,因为一开始我是要用steepest descent方法,在给定初值的情况下求这个函数的局部极小值(现在是符号形式),感觉是满头雾水,请高人指点一下,我是不是走错方向了? 利用subs,符号形式都可以用来计算数值解。
举个简单的例子:
syms x y z
fx=x^2+1/y+sin(z);
fx_value=subs(fx,{x,y,z},{1,2,3});
上面的代码求的是x^2+1/y+sin(z)在x=1,y=2,z=3的函数值。
你上面得到了fxyz的符号形式,如果知道了x,y,z的值,就可以求fxyz的值
回复 #7 pingpang 的帖子
要相信自己,思路不错方向一般也不会错。只是走没走弯路的问题
页:
[1]