利用稀疏矩阵的程序(完整版)实用资料.doc
上传人:天马****23 上传时间:2024-09-10 格式:DOC 页数:30 大小:1.9MB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

利用稀疏矩阵的程序(完整版)实用资料.doc

利用稀疏矩阵的程序(完整版)实用资料.doc

预览

免费试读已结束,剩余 20 页请下载文档后查看

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

利用稀疏矩阵的程序(完整版)实用资料(可以直接使用,可编辑完整版实用资料,欢迎下载)#defineR1#defineG2#defineVS3#defineCS4#defineVCCS5#defineVCVS6#defineCCCS7#defineCCVS8#defineOPAMP9typedefstructtagBranch{intnumber;//支路号chartype;//类型号intnfrom;//始节点intnto;//终节点floatvalue;//参数值intncfrom;//控制始节点/控制终节点;G/R支路的“设置为电压定义支路”标记intncto;//控制终节点;G/R支路的“控制用电压定义支路”标记}BRANCH;BRANCHBranch0;*BRANCH;Branch=newBRANCH[BranchNumber+1];intBranchNumber;intNodeNumber;intvBranchNumber;intNN;doubleval[NN];introw[NN];intcol[NN];intup[NN];intdown[NN];intleft[NN];intright[NN];intrp[NN];intcp[NN];intdel[NN];intnza;intn;typedefstructtagLINKED_LIST{intnza;//非零元素个数intn;//矩阵阶数int*row;//元素行号int*col;//元素列号int*up;//元素的上邻元素号int*down;//元素的下邻元素号int*left;//元素的左邻元素号int*right;//元素的右邻元素号int*rp;//行链指针int*cp;//列链指针char*del;//元素删除标志;1=删除}LINKED_LIST;typedefstructtagTRIANGULAR_TABLE{intnza;//非零元素个数intn;//矩阵阶数double*val;//矩阵及右端向量/中间解向量元素值int*roco;//对角元素行列号,U元素列号,L元素行号int*urp;//U阵行指针int*lcp;//L阵列指针intlun;//由符号LU分解确定的需修正的元素个数intfen;//由符号前消确定的需修正的向量元素个数int*lup;//由符号LU分解确定的需修正的元素号int*fep;//前消需修正的元素号}TRIANGULAR_TABLE;typedefstructtagTRIANGULAR_TABLE_C{intnza;intn;intlun;intfen;double*vre;double*vim;int*roco;int*urp;int*lcp;int*lup;int*fep;}tagTRIANGULAR_TABLE_C;#include"XISHU.h"//创建双重链接表voidnew_list(intrank_max,intnonzero,LINKED_LIST*list){row=newint[nonzero];col=newint[nonzero];up=newint[nonzero];down=newint[nonzero];left=newint[nonzero];right=newint[nonzero];rp=newint[rank_max];cp=newint[rank_max];del=newint[nonzero];nza=0;//创建时尚无元素inti;for(i=0;i<rank_max;i++){//初始化rp[i]=0;cp[i]=0;}for(i=0;i<nonzero+1;i++){row[i]=0;col[i]=0;up[i]=0;down[i]=0;left[i]=0;right[i]=0;del[i]=0;}}//-----------------------------------------------------------------charinsert_row(intnza,intx,inty,LINKED_LIST*list){intk,kl,z;k=(*list).rp[x];if(k==0){//第x行还未有非零元素,a[x][y]为第一个元素(*