#defineMAX_M2048#"> #defineMAX_M2048#" />
共轭梯度法的c+=语言实现

共轭梯度法的c+=语言实现

ID:30067294

大小:55.61 KB

页数:5页

时间:2018-12-26

共轭梯度法的c+=语言实现_第1页
共轭梯度法的c+=语言实现_第2页
共轭梯度法的c+=语言实现_第3页
共轭梯度法的c+=语言实现_第4页
共轭梯度法的c+=语言实现_第5页
资源描述:

《共轭梯度法的c+=语言实现》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、共轭梯度法的C+=语言实现---------------------基于成都理工大学最优化教材#include#include"Matrix.h"#include#defineMAX_M2048#include#definebeta(sqrt(5)-1)/2#defineeclipse0.01CMatrixhesse(){CMatrixtemp(2,2);temp.A[0][0]=2;temp.A[0][1]=0;temp.A[1][0]=0;temp.A[1][1]=8;return

2、temp;}doublefun(doublet,CMatrix&X1,CMatrix&X2){doublex1=X1.A[0][0]+t*X2.A[0][0];doublex2=X1.A[1][0]+t*X2.A[1][0];returnx1*x1+4*x2*x2;}doubleMax_Num(doublea,doubleb){if(a>b){returna;}else{returnb;}}doubleMin_Num(doublea,doubleb){if(a

3、Search(double&a,double&b,CMatrix&mt1,CMatrix&mt2){doublet[MAX_M]={0};doubleh[MAX_M]={0};doublef[MAX_M]={0};doubleresult=0;doublep=2.1;t[0]=0;h[0]=1;f[0]=fun(t[0],mt1,mt2);for(intk=0;k

4、lt=t[k];t[k]=t[k+1];f[k]=f[k+1];}elseif(k==0){h[k]=-h[k];result=t[k+1];}else{a=Min_Num(result,t[k+1]);b=Max_Num(result,t[k+1]);}}}doubleFibonacci(double&a,double&b,CMatrixmt1,CMatrixmt2){doublet2,t1,result_1,result_2;t2=a+beta*(b-a);result_2=fun(t2,mt1,mt1);while(true){t1=a+

5、b-t2;result_1=fun(t1,mt1,mt2);if(fabs(t1-t2)

6、stance(CMatrix&X1,CMatrix&X2){doublex1=X1.A[0][0]-X2.A[0][0];doublex2=X1.A[1][0]-X2.A[1][0];returnx1*x1+x2*x2;}CMatrixdiff_fun(CMatrix&mt){CMatrixtemp(2,1);temp.A[0][0]=2*mt.A[0][0];temp.A[1][0]=8*mt.A[1][0];returntemp;}doublefanshu(CMatrixmt){returnsqrt(mt.A[0][0]*mt.A[0][0

7、]+mt.A[1][0]*mt.A[1][0]);}voidmain(){inti=0;intn=2000;CMatrixtemp_X1;CMatrixX1(2,1);X1.A[0][0]=1;X1.A[1][0]=1;CMatrixm_temp=hesse();CMatrixn_temp=diff_fun(X1);CMatrixX2=(m_temp.Inverse()*n_temp).Matrix_Multiply(-1);doublea,b;StepAdding_Search(a,b,X1,X2);doublem=Fibonacci(a,b

8、,X1,X2);temp_X1=X1;CMatrixX3=X1+X2.Matrix_Multiply(m);while(distance(X1,X3)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。