博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
雅可比迭代法
阅读量:5115 次
发布时间:2019-06-13

本文共 1427 字,大约阅读时间需要 4 分钟。

1 //  如下程序中的for语句未修改前为:for(j=0;j!=i&&j<6;j++) ,输出结果为5次迭代而不是正确的27次,j!=i放在for语句中则会减少迭代次数从而产生误解 2 #include
3 4 #include
5 6 using namespace std; 7 double fanshu(double x[], double y[], int n) 8 { 9 double sums = 0;10 for(int p = 0; p < n; p++)11 sums += (y[p] - x[p]) * (y[p] - x[p]);12 return sqrt(sums);13 }14 void main()15 {16 double A[6][6] = {
4, -1, 0, -1, 0, 0, -1, 4, -1, 0, -1, 0, 0, -1, 4, -1, 0, -1, -1, 0, -1, 4, -1, 0, 0, -1, 0, -1, 4, -1, 0, 0, -1, 0, -1, 4};17 double b[6] = {
0, 5, -2, 5, -2, 6};18 double x[6] = {
0, 0, 0, 0, 0, 0}; //设置X初值全为0;19 double y[6] = {
0, 0, 0, 0, 0, 0};20 int N = 50;21 int k, i, j, l;22 double e;23 for(k = 0; k < N; k++)24 {25 for(i = 0; i < 6; i++)26 {27 double sum = 0;28 for(j = 0; j < 6; j++)29 if(j != i)30 {31 sum += A[i][j] * x[j];32 }33 y[i] = (b[i] - sum) / A[i][i];34 }35 e = fanshu(x, y, 6);36 if(e < 0.0001)37 {38 break;39 }40 for(l = 0; l < 6; l++)41 x[l] = y[l];42 }43 cout << "迭代次数为:" << k << endl;44 cout << "结果为: ";45 for(int h = 0; h < 6; h++)46 cout << y[h] << " ";47 cout << endl;48 }

 

转载于:https://www.cnblogs.com/allenben/p/3663072.html

你可能感兴趣的文章
【工具相关】iOS-Reveal的使用
查看>>
数据库3
查看>>
存储分类
查看>>
下一代操作系统与软件
查看>>
【iOS越狱开发】如何将应用打包成.ipa文件
查看>>
[NOIP2013提高组] CODEVS 3287 火车运输(MST+LCA)
查看>>
Yii2 Lesson - 03 Forms in Yii
查看>>
Python IO模型
查看>>
Ugly Windows
查看>>
DataGridView的行的字体颜色变化
查看>>
Java再学习——关于ConcurrentHashMap
查看>>
如何处理Win10电脑黑屏后出现代码0xc0000225的错误?
查看>>
局域网内手机访问电脑网站注意几点
查看>>
[Serializable]的应用--注册码的生成,加密和验证
查看>>
Day19内容回顾
查看>>
第七次作业
查看>>
SpringBoot项目打包
查看>>
Linux操作系统 和 Windows操作系统 的区别
查看>>
《QQ欢乐斗地主》山寨版
查看>>
文件流的使用以及序列化和反序列化的方法使用
查看>>