91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 314KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-05-29
  • 語言: C/C++
  • 標簽: C++實現??

資源簡介

雅可比迭代C++實現,包括雅可比迭代介紹和程序注釋

資源截圖

代碼片段和文件信息

/*
-----------------------------------------------
此方法的局限:
1:n?*?n?階方陣?,?程序限制?
2:aii?=?0??是充分條件,不知道是不是必要?
3:|A|!=0??說明只有一個解?
?假設有如下方程組:
?Ax=b
?用Jacobi迭代法求解方程組的解

方法:將A分裂為A=D-L-U,等價的迭代方程組為x=Bx+f。

有關算法的詳細說明,參看http://www.loujing.com/mywork/c++/project/Jacobi.pdf


-----------------------------------------------
*/

?

#include?
#include?
#include?
using?namespace?std;

double*?allocMem(int?);?//分配內存空間函數
void?GaussLineMain(double*double*double*int?);//采用高斯列主元素消去法求解x的初始向量值
void?Jacobi(double*double*double*double*intint);//利用雅可比迭代公式求解x的值


int?main()
{
?short?matrixNum;?//矩陣的行數(列數)
?double?*matrixA;?//矩陣A,初始系數矩陣
?double?*matrixD;?//矩陣D為A中的主對角陣
?double?*matrixL;?//矩陣L為A中的下三角陣
?double?*matrixU;?//矩陣U為A中的上三角陣
?double?*B;???//矩陣B為雅可比方法迭代矩陣
?double?*f;???//矩陣f為中間的過渡的矩陣
?double?*x;???//x為一維數組,存放結果
?double?*xk;???//xk為一維數組,用來在迭代中使用
?double?*b;???//b為一維數組,存放方程組右邊系數


?int?ijk;


?cout<<“<<請輸入矩陣的行數(列數與行數一致)>>:“;
?cin>>matrixNum;

?//分別為A、D、L、U、B、f、x、b分配內存空間
?matrixA=allocMem(matrixNum*matrixNum);
?matrixD=allocMem(matrixNum*matrixNum);
?matrixL=allocMem(matrixNum*matrixNum);
?matrixU=allocMem(matrixNum*matrixNum);
?B=allocMem(matrixNum*matrixNum);
?f=allocMem(matrixNum);
?x=allocMem(matrixNum);
?xk=allocMem(matrixNum);
?b=allocMem(matrixNum);


?
?//輸入系數矩陣各元素值
?cout<??<>:“<?for(i=0;i?{
??cout<<“請輸入矩陣中第?“<??for(j=0;j???cin>>*(matrixA+i*matrixNum+j);
?}

?//輸入方程組右邊系數b的各元素值
?cout<??“?個“<<“>>:“<?for(i=0;i??cin>>*(b+i);

?

?/*??下面將A分裂為A=D-L-U?*/
?
?//首先將D、L、U做初始化工作
?for(i=0;i??for(j=0;j???*(matrixD+i*matrixNum+j)=*(matrixL+i*matrixNum+j)=*(matrixU+i*matrixNum+j)=0;

?//D、L、U分別得到A的主對角線、下三角和上三角;其中D取逆矩陣、L和U各元素取相反數
?for(i=0;i??for(j=0;j???if(i==j&&*(matrixA+i*matrixNum+j))?*(matrixD+i*matrixNum+j)=1/(*(matrixA+i*matrixNum+j));
???else?if(i>j)?*(matrixL+i*matrixNum+j)=-*(matrixA+i*matrixNum+j);
???else?*(matrixU+i*matrixNum+j)=-*(matrixA+i*matrixNum+j);

?//求B矩陣中的元素
?for(i=0;i??for(j=0;j??{
???double?temp=0;
???for(k=0;k????temp+=*(matrixD+i*matrixNum+k)*(*(matrixL+k*matrixNum+j)+*(matrixU+k*matrixNum+j));
???*(B+i*matrixNum+j)=temp;
??}

?//求f中的元素
?for(i=0;i?{
??double?temp=0;
??for(j=0;j???temp+=*(matrixD+i*matrixNum+j)*(*(b+j));
??*(f+i)=temp;
?}

?

?/*??計算x的初始向量值?*/
?GaussLineMain(matrixAxbmatrixNum);

?

?/*?利用雅可比迭代公式求解xk的值?*/
?int?JacobiTime;
?cout<>:“;
?cin>>JacobiTime;
?while(JacobiTime<=0)?
?{
??cout<<“迭代次數必須大于0,請重新輸入:“;
??cin>>JacobiTime;
?}
?Jacob

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件?????204109??2008-04-14?23:11??雅可比(Jacobi)迭代算法的C++實現\Jacobi.pdf

?????文件?????????30??2008-04-14?00:22??雅可比(Jacobi)迭代算法的C++實現\r.txt

?????文件????????828??2008-04-14?00:13??雅可比(Jacobi)迭代算法的C++實現\Jacobi\Jacobi.dev

?????文件?????479154??2008-04-14?00:17??雅可比(Jacobi)迭代算法的C++實現\Jacobi\Jacobi.exe

?????文件???????6296??2008-04-15?00:42??雅可比(Jacobi)迭代算法的C++實現\Jacobi\main.cpp

?????文件?????479154??2008-04-14?23:52??雅可比(Jacobi)迭代算法的C++實現\Jacobi\main.exe

?????文件???????7817??2008-04-14?00:17??雅可比(Jacobi)迭代算法的C++實現\Jacobi\main.o

?????文件????????779??2008-04-14?00:18??雅可比(Jacobi)迭代算法的C++實現\Jacobi\Makefile.win

?????目錄??????????0??2009-12-13?20:36??雅可比(Jacobi)迭代算法的C++實現\Jacobi

?????目錄??????????0??2009-12-13?20:36??雅可比(Jacobi)迭代算法的C++實現

-----------?---------??----------?-----??----

??????????????1178167????????????????????10


評論

共有 條評論