



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#include#includeclass Vectorpublic:Vector()x1=0;x2=0;x3=0;Vector(double xx1,double xx2,double xx3)x1=xx1;x2=xx2;x3=xx3; friend Vector operator + (Vector v1,Vector v2); friend Vector operator - (Vector & v1,Vector & v2); friend Vector operator - (Vector & v1);friend double operator * (Vector & v1,Vector & v2);friend Vector operator * (double c,Vector & v);friend Vector operator * (Vector & v,double c);Vector()void display();/private:double x1,x2,x3;Vector operator + (Vector v1,Vector v2)return Vector(v1.x1+v2.x1,v1.x2+v2.x2,v1.x3+v2.x3);Vector operator - (Vector & v1,Vector & v2)return Vector(v1.x1-v2.x1,v1.x2-v2.x2,v1.x3-v2.x3); Vector operator - (Vector & v1)return Vector(-v1.x1,-v1.x2,-v1.x3);double operator * (Vector & v1,Vector & v2)return (v1.x1*v2.x1+v1.x2*v2.x2+v1.x3*v2.x3);Vector operator * (double c,Vector & v)return Vector(c*v.x1,c*v.x2,c*v.x3);Vector operator * (Vector & v,double c)return Vector(c*v.x1,c*v.x2,c*v.x3);void Vector:display() cout(x1,x2,x3)endl;double ValueFunction(Vector &p)/求某点处函数值的函数,返回值为一个double型数return p.x1*p.x1-2*p.x1*p.x2+2*p.x2*p.x2+p.x3*p.x3-p.x2*p.x3+2*p.x1+3*p.x2-p.x3;Vector GradFuction(Vector &p)/求梯度的函数,返回值为一个向量return Vector(2*(p.x1-p.x2)+2,-2*p.x1+4*p.x2-p.x3+3,2*p.x3-p.x2-1);double GetModulus(Vector &p)return sqrt(p.x1*p.x1+p.x2*p.x2+p.x3*p.x3);/*double GetFValue(double la) /求函数值f(xk+lamda*sk)return ValueFunction(xk+la*sk);*/void main()int n=3;/本题为三维问题double ValueFunction(Vector &p);Vector GradFuction(Vector &p);Vector startpoint(0,0,0);Vector x10000=startpoint,g10000,s10000;double lamda10000,lamdak;int k;cout选取初始点为:x0= ;x0.display();double precision=0.000001;step2:g0=GradFuction(x0);s0=-g0;k=0;step3: double GetFValue(double la); double f1,f0,la1,la0=1,h=10,e=0.0000001; step12: la1=la0+h;f1=ValueFunction(xk+la1*sk);f0=ValueFunction(xk+la0*sk);if(f1f0)/coutf1f0endl;la0=la1;h=h*2;goto step12;else /coutf0endl;if(fabs(h)e)lamdak=la0;/cout|h|为:fabs(h)endl;/coute为:eendl;/cout达到结束条件:|h|e,计算结束。endl;goto step15;else/couteendl;h=-h/4;goto step12;step15: cout极小值点为:lamdak=lamdakendl;/cout极值为:f(x)min=GetFValue(xx)endl;xk+1=xk+lamdak*sk; cout带入lamdak求得xk+1点为t; xk+1.display(); gk+1=GradFuction(xk+1);coutxk+1点的梯度为t;gk+1.display(); /step3结束step4: if (GetModulus(gk+1)precision) goto step6 ;else goto step5;step5: if (kn-1) sk+1=-gk+1+(pow(GetModulus(gk+1),2)/pow(GetModulus(gk),2)*sk; k+; goto step3; if (k=n-1) x0=xn; goto step2; step6: cout程序结束,求得极小点为:t;xk+1.display(); cout迭代次数为:tk+1endl;/*/-以下是测试部分Vector v1(1,2,0),v2(1,2,3),v3(3,1,2),v4,v5,v6,v7(0,3,4);double n;Vector v_arry133=v1,v2,v3;/int ia=;int l=45;v3=v1+v2;v_arry0=v3;/v3=GradFuction(v1);n=ValueFunction(v1);GradFuction(v1).display();v_arry0.display();v4=-v
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年医生初级面试必-备知识点与预测题详解
- 2025年村级环保人才招聘笔试模拟题及答案详解
- 公务员上岸面试题及答案
- 公务员面试题及答案合集
- 公务员遴选及答案面试题
- 2025年公墓设计师招聘笔试宝典全真模拟试题及答案
- 2025年医学影像诊断技术专业考试模拟试题及答案
- 校长科研知识培训课件
- 2025年海关聘用制工作人员招聘考试模拟试题及答案
- 2025年高职院校工会干事招聘面试指南及模拟题解析
- 充电桩巡查记录表
- 人教版(2024年新版)七年级上册美术全册教学设计
- 《证券投资学》全套教学课件
- 2024年秋季新北师大版一年级上册数学全册教案
- 人教版六年级数学上册第一单元测试卷
- 石料场开采施工方案
- 浙江省镇海中学高三一诊考试新高考物理试卷及答案解析
- JT-T-155-2021汽车举升机行业标准
- 化妆品质量意识培训大纲
- 2024年专业技术人员继续教育公需科目-低碳经济笔试参考题库含答案
- 八下单词表(Unit 1-10)大全
评论
0/150
提交评论