




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、牛顿迭代法解三元二次方程组(C+版) *方程组为:Y1=-X1+0.3X2*X3-X32+0.6=0Y2=-0.1X12-X2 +0.8X1*X3-X3+0.4=0Y3=0.3X1-0.5X22 +0.7X1*X2-X3+0.5=0 * #include<fstream>#include<iostream>#include <iomanip>#include<cmath>#include <cstdlib>#define N 3 / 非线性方程组中变量个数及方程个数const int N2=N*N; / jacobi矩阵的元素个数#d
2、efine eps 0.00001 / 收敛精度#define Max 2000 / 最大迭代次数using namespace std;double main()double x0N,yN,x1N,es,esmax,jacobiNN,aij;int i,j,k,it=0,iter=0; ofstream fpout1("d:Program FilesMicrosoft Visual StudioMyProjectsxieFCZx0.txt",ios:out); if(!fpout1)cout<<"fpout open fail!"<&
3、lt;endl;return 0; /打开文件失败则结束运行ifstream fpin("d:Program FilesMicrosoft Visual StudioMyProjectsxieFCZX0.txt",ios:in);if(!fpin)cout<<"fpin open fail!"<<endl;return 0; /打开文件失败则结束运行 ofstream fpout2("d:Program FilesMicrosoft Visual StudioMyProjectsxieFCZanswer.txt"
4、;,ios:out); if(!fpout2)cout<<"fpout open fail!"<<endl;return 0; /打开文件失败则结束运行cout<<"* Please input X0 *"<<endl; / 技巧一:为保证jacobi矩阵尽快收敛,初值最好在 0 附近for(i=0;i<N;i+)cin>>x0i;cout<<"输入的初值为:"<<endl;for(i=0;i<N;i+)cout<<x0i<
5、;<"t"cout<<endl;fpout1<<"输入的初值为:"<<endl;do it+;for(i=0;i<N;i+)fpout1<<x0i<<"t"fpout1<<endl;/jacobi have N2 element /计算jacobi矩阵的值jacobi00=0;jacobi01=0.3*x02;jacobi02=0.3*x01-2*x02;jacobi10=-0.2*x00+0.8*x02;jacobi11=0;jacobi12=0.8
6、*x00-1;jacobi20=0.3+0.7*x01;jacobi21=-x01+0.7*x00;jacobi22=0;fpout2<<"第 "<<it<<" 次jacobi矩阵是:"<<endl;for(i=0;i<N;i+) for(j=0;j<N;j+) fpout2.setf(cout.showpoint); /固定小数位数输出fpout2<<setprecision(8)<<jacobiij<<"t"fpout2<<
7、endl;fpout2<<endl;aij=0;for(i=0;i<N;i+) /计算jacobi矩阵元素的平方和aijfor(j=0;j<N;j+)aij=aij+jacobiij*jacobiij;if(aij>1)cout<<"Sorry, aij>1"<<endl;k=rand()%3; x0k=(double)rand()/RAND_MAX;cout<<endl<<"由计算机第 "<<it<<" 次随机产生初值:"&l
8、t;<endl;fpout1<<endl<<"由计算机第 "<<it<<" 次随机产生初值:"<<endl;cout<<" "for(i=0;i<N;i+) cout<<x0i<<"t" cout<<endl; while(aij>1); /保证aij<1for(i=0;i<N;i+)x1i=x0i;fpout2<<"* 牛顿迭代如下 *"<
9、<endl;fpout2<<"迭代次数 x1tt x2tt x3"<<endl<<endl;doiter=iter+1;fpout2<<" "<<iter<<" "<<"t"for(i=0;i<N;i+)fpout2<<x1i<<"t"fpout2<<endl;/迭代格式y0=0.3*x11*x12-x12*x12+0.6; y1=-0.1*x10*x10+0.8*
10、x10*x12-x12+0.4;y2=0.3*x10-0.5*x11*x11+0.7*x10*x11+0.5;/技巧二:由于要使最终的aij小于0,可让方程同除某个数使其系数小于1esmax=0.0;for(i=0;i<N;i+)es=yi-x1i;if(fabs(es)>fabs(esmax)esmax=es;if(fabs(esmax)<eps)fpout2<<endl<<endl<<"方程组的解为 : "<<endl;cout<<endl<<endl<<"方程组的解为 : "<<endl;for(i=0;i<N;i+)cout<<x1i<<"t"fpout2<<x1i<<"t"cout<<endl<<endl;fpout2<<endl;break;for(i=0;i<N;i+)x1i=yi;while(iter<Max);fpin.close();fpo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 沈阳市皇姑区2025届三年级数学第二学期期末复习检测试题含解析
- 湖南中医药大学湘杏学院《食品工程与机械2》2023-2024学年第二学期期末试卷
- 天府新区航空职业学院《高级朝鲜语I》2023-2024学年第二学期期末试卷
- 河北女子职业技术学院《生物信息学实践》2023-2024学年第二学期期末试卷
- 各行各业职业探索家长进课堂五花八门的行业工作教育课件
- 皮鞋品牌的社会责任与可持续发展报告考核试卷
- 电动车维修与保养考核试卷
- 渔业资源保护与海洋资源恢复工程考核试卷
- 冷藏车运输与国际冷链标准对接考核试卷
- 畜牧兽医技术研究与推广考核试卷
- 《大学英语口译》an introduction to interpreting
- 人工挖孔桩施工监测监控措施
- 我国中学导师制的历程、现状及问题分析
- 安全带检测报告(共8页)
- 公司erp项目激励制度
- Excel函数和公式练习
- 国际石油合同讲座1018
- 某核电项目机械贯穿件安装施工管理技术研究
- JGJ_T231-2021建筑施工承插型盘扣式钢管脚手架安全技术标准(高清-最新版)
- 基于单片机的接触器控制器设计
- 50t汽车吊性能表
评论
0/150
提交评论