| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 942 人关注过本帖
标题:请教高手:我这个程序错在哪里?
只看楼主 加入收藏
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
快速回复:请教高手:我这个程序错在哪里?
数据加载中...
 
   



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

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