标题:请教高手:我这个程序错在哪里?
只看楼主
bazn
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-10-23
 问题点数:0 回复次数:2 
请教高手:我这个程序错在哪里?
syms x1 x2 ar;
f=x1^2+4*x2^2;
v=[x1,x2];
df=jacobian(f,v);
df=df.';
epson=2e-3;x0=[2,2]';g1=subs(df,{x1,x2},{x0(1,1),x0(2,1)});k=0;
while(norm(g1)>epson)
    p=-g1;
    y=subs(f,{x1,x2},{x0(1,1)+ar*p(1,1),x0(2,1)+ar*p(2,1)});
    dy=diff(y);
    arf=solve(dy);
    x0=x0+arf*p;
    g1=subs(df,{x1,x2},{x0(1,1),x0(2,1)});
    k=k+1;
    Y=subs(f,{x1,x2},{x0(1,1),x0(2,1)});
end;
k
x0
Y
搜索更多相关主题的帖子: epson 
2008-10-23 21:44
meteora1106
Rank: 2
等 级:新手上路
威 望:5
帖 子:126
专家分:0
注 册:2008-9-15
得分:0 
错误提示很明显,norm的的输入参数不能是sym型,你把这句改成这样就能运行了:
g1=double(subs(df,{x1,x2},{x0(1,1),x0(2,1)}));
用double把sym转一下
2008-10-23 22:00
bazn
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-10-23
得分:0 
谢谢版主大大!!
收到的鲜花
  • meteora11062008-10-25 12:26 送鲜花  35朵   附言:加油!
2008-10-24 11:33



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-240189-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.105510 second(s), 9 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved