QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5857|回复: 1
打印 上一主题 下一主题

[求助][原创]共轭梯度法的matlab源程序

[复制链接]
字体大小: 正常 放大
zhcf        

6

主题

3

听众

35

积分

升级  31.58%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2006-7-20 14:18 |只看该作者 |倒序浏览
|招呼Ta 关注Ta

以下是同学写的,好像有错,谁能帮忙修改下呀~~或者帮忙写个共轭梯度法编程实现的程序,c,fortran,matlab...都行~~

共轭梯度法的matlab源程序

function g=conjugate_grad_2d(x0,t)
%please input this:conjugate_grad_2d([2,2],0.05)
x=x0;
syms xi yi a
f=xi^2-xi*yi+3*yi^2;
fx=diff(f,xi);
fy=diff(f,yi);
fx=subs(fx,{xi,yi},x0);
fy=subs(fy,{xi,yi},x0);
fi=[fx,fy];
count=0;
while double(sqrt(fx^2+fy^2))>t
s=-fi;
if count<=0
s=-fi;
else
s=s1;
end
x=x+a*s;
f=subs(f,{xi,yi},x);
f1=diff(f);
f1=solve(f1);
if f1~=0
ai=double(f1);
else
break
x,f=subs(f,{xi,yi},x),count
end
x=subs(x,a,ai);
f=xi^2-xi*yi+3*yi^2;
fxi=diff(f,xi);
fyi=diff(f,yi);
fxi=subs(fxi,{xi,yi},x);
fyi=subs(fyi,{xi,yi},x);
fii=[fxi,fyi];
d=(fxi^2+fyi^2)/(fx^2+fy^2);
s1=-fii+d*s;
count=count+1;
fx=fxi;
fy=fyi;
end
x,f=subs(f,{xi,yi},x),count

zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

0

主题

0

听众

2

积分

升级  40%

该用户从未签到

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册地址

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

GMT+8, 2025-8-22 16:48 , Processed in 0.419077 second(s), 63 queries .

回顶部