




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
5.C語(yǔ)言實(shí)現(xiàn)三相短路電流的計(jì)算程序
代碼使用C++編寫的:
#ifndefPLURAL_HPP
#definePLURAL_HPP
〃類名稱:Plural
〃方法:GctR,GctI,SctRI,SctR,SctI
〃數(shù)據(jù):m_pluralR,m_pluralI
classPlural
(
public:
Plural();
Plural(floatpR,floatpl);
~Plural();
floatGetR()const;
floatGctl()const;
voidSetRKfloatpR,floatpl);
voidSetR(floatpR);
voidSeil(floatpl);
private:
floatm_pluralR;
floatm_plurall;
};
//名稱:復(fù)數(shù)乘法,PluralMul(Pluralplural1,Pluralplural2)
〃參數(shù):復(fù)數(shù)plural1plural2
〃返回值:復(fù)數(shù)
PluralPluralMuKPluralplural1.Pluralplural2);
〃函數(shù)名:復(fù)數(shù)除法,運(yùn)算浮點(diǎn)數(shù)除以復(fù)數(shù)
〃參數(shù):num,分子,是一個(gè)浮點(diǎn)數(shù)。den,分母,是一個(gè)復(fù)數(shù)
〃返回值:結(jié)果的復(fù)數(shù)
PluralPluralDiv(floatnum,Pluralden);
〃函數(shù)名:復(fù)數(shù)求倒數(shù)
〃參數(shù):den,分母,是一個(gè)復(fù)數(shù)
〃返回值:此復(fù)數(shù)的倒數(shù)
PluralPluralDiv(Pluralplu);
〃參數(shù):mal為待變換的復(fù)數(shù)矩陣的數(shù)組名,n為階數(shù)
〃返回值:無(wú)
〃說明:變換后的結(jié)果依舊保存在mal中
voidMatrixInv(Plural*mat,intn):
#endif
#inchide"plural.hpp"
#include<stdio.h>
#include<stdlib.h>
#includc<math.h>
〃類名稱:Plural
〃方法:GetR,GetI,SetRI,SetR,SetI
//數(shù)據(jù):m_pkiralR,m_pkirail
Plural::Plural()
(
m_pluralR=0;
m_plurall=0;
)
Plural::Plural(floatpR,floatpl)
(
m_pluralR=pR;
m_plurall=pl;
)
Plural::~Plural(){}
floatPlural::GetR()const
(
returnm_pluralR;
}
floatPlural::GetI()const
{
returnm_plurall;
)
voidPlural::SctRI(floatpR.floatpl)
(
m_pkiralR=pR;
m_plurall=pl;
)
voidPlural::SetR(floatpR)
(
m_pluralR=pR;
)
voidPlural::Sctl(floatpl)
{
m_pkirall=pl;
)
〃名稱:復(fù)數(shù)乘法,PluralMul(Pluralplural1,Pluralpkiral2)
〃參數(shù):復(fù)數(shù)plural1plural2
〃返回值:復(fù)數(shù)
PluralPluralMul(Pluralplural1,Pluralplura12)
(
Pluralresult;
result.SetRI(plural1.GetR()*plural2.GetR()-plural1.Getl()*plura!2.GetI(),pluralI.GetR()*plural2.Ge(I()+
plurall.GetIO*plural2.GetR());
returnresult;
)
〃函數(shù)名:復(fù)數(shù)除法,運(yùn)算浮點(diǎn)數(shù)除以復(fù)數(shù)
〃參數(shù):num,分子,是一個(gè)浮點(diǎn)數(shù)。den,分母,是一個(gè)復(fù)數(shù)
〃返回值:結(jié)果的復(fù)數(shù)
PluralPluralDiv(floatnum.Pluralden)
Pluralresult;
floatk;
k=den.GetR()*den.GetR()+den.GetI()*dcn.GetI();
result.SetR(num*den.GetR()/k);
rcsult.Sctl(-1.O*nuin*dcn.GctlO/k);
returnresult;
I
〃函數(shù)名:復(fù)數(shù)求倒數(shù)
//參數(shù):den,分母,是一個(gè)復(fù)數(shù)
〃返回值:此復(fù)數(shù)的倒數(shù)
PluralPluralDiv(Pluralplu)
(
Pluralresult;
floatk;
k=plu.GetR()*plu.GeiR()+plu.GelI()*plu.GelI();
result.SetR(pki.GetR()/k);
resuli.SeiI(-1.O^plu.GeilO/k);
returnresult;
)
〃說明:以下3個(gè)函數(shù)組合用來(lái)求復(fù)數(shù)矩陣的逆。
double*inv(double*A,double*A:nv,intn);
voidmulAB(double*A,double*B,double*C,iniam,inlan,inlbm,inlbn);
〃參數(shù):mat為待變換的復(fù)數(shù)矩陣的數(shù)組名,n為階數(shù)
〃返回值:無(wú)
〃說明:變換后的結(jié)果依舊保存在mat中
voidMatrixInv(Plura)*mat,intn):
〃能陣求逆。A為原矩陣,Ainv為求逆之后矩陣,n為階數(shù)
double*inv(doublc*A,double*Ainv,intn)
{
int*is,*js,i,j,k,1,u,v;
doubled,p;
for(i=0;i<n*n;i++)
*(Ainv+i)=*(A+i);
is=(int*)malloc(n*sizeof(int));
js=(int*)malloc(n*sizcof(int));
for(k=0;k<=n-l;k++)
{
d=0.0;
for(i=k;i<=n-l;i++)
for(j=k;j<=n-l;j++)
(
1=i*n+j;
p=fabs(Ainv[l]);
if(P>d)
for(i=0;i<=n-l;i++)
if(i!=k)
1
u=i*n+k;
Ainv[u]=-Ainv[u]*Ainv[lJ;)
}
for(k=n-1;k>=0;k-)
1
if(js[k]!=k)
for(j=0;j<=n-l;j++)
{
u=k*n+j:
v=jsfkl*n+j;
p=Ainv[uJ;
Ainv[u]=Ainv[v];
Ainvfv]=p;
)
if(is[k]!=k)
for(i=0;i<=n-1;i++)
■
u=i*n+k;
v=i*n+is[k];
p=Ainv[u];
Ainv[u]=Ainv[v];
Ainv[v]=p;
I
)
free(is);
free(js);
returnAinv;
)
〃參數(shù):a為原矩陣,b為逆矩陣,c為結(jié)果。其他在此都為n
voidmulAB(double*a,double*b.double*c,intam,intan,intbm,intbn)
{
inti,j,1,u;
if(an!=bm)
{
printf("不能完成原矩陣和其逆矩陣矩陣相乘\n”);
return;
)
for(i=0;i<am;i++)
for(j=0;j<bn;j++)
(
u=i*bn+j;
c[ul=0.0;
for(1=0;l<an:1++)
c[u]=c[u]+a[i*an+l]*b[l*bn+j]:
relum;
)
〃復(fù)數(shù)矩陣求逆。參數(shù):mat為待求矩陣,n為階數(shù)
voidMatrixinv(PIural*mat,intn)
(
inii,j;
doublepluralR[n][n],pluralI[nHn];
double=NULL,*b=NULL,氣=NULL;
double*resultR=NULL,*resultl=NULL;
Pluralresult[n][n];
for(i=0;i<n;i++)
:
for(j=0;j<n;j++)
{
pluralR[i][j]=mat[i*n+j].GetR();
plurall[i][j]=mat[i*n4j].GetI();
)
}
printf("原始矩陣為八n");
for(i=0;i<n;i++)
!
for(j=0;j<n;j++)
printf("%10.4f+j%0.4f\t",(*pluralR)[i*n+j],(*pluralI)[i*n4-j]);
printf("\n");
}
a=(double*)malloc(n*n*sizeof(double));
b=(double*)malloc(n*n*sizeof(double));
c=(double*)malloc(n*n*sizcof(doublc));
resultR=inv(*pluralR,a,n);
resultl=inv(*piurall,b5n);
if(resultl!=NULL)
(
printf("\n求逆之后虛部是后虛
if(n%2==0)
{
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%10.4f+j%0.4f\t",resultR==NULLO:resultR[i*n+j],resultI==NULLO:resultl[i*n+j]);
printf("\n");
else
for(i=0;i<n;i++)
for(j=O;j<n;j++)
printf("%10.4f+j%0.4f\t",resultR==NULLO:resultR[i*n+j],resultI==NULL0:-1.0*resultI[i*n+j]);
printf("\n");
//測(cè)試所求實(shí)部逆矩陣
//niulAB(*pluralR,a,c,n,n,n,n);
//printf("\n\n求逆后原實(shí)部和現(xiàn)在的實(shí)部乘積是\n");
//for(i=0;i<n;i++)
//{
//ror(j=0;j<n;j++)
//printf("%10.4iAr,c[i*n+j]);
//printfCNn'1);
〃}
//測(cè)試用所求逆矩陣
//rnulAB(*pluralI,b,c,n,n,n,n);
//prin(f("\n\n求逆之后原虛部和現(xiàn)在的虛部乘積是:\n");
//for(i=0;i<n;i++)
〃{
//for(j=0;j<n;j++)
//printf("%10.4f\t",-1.0*c[i*n+j]);
//prinlf("\n'^);
〃}
I
for(i=0;i<n;i++)
f
for(j=0;j<n;j++)
mat[i*n+j].SetRI(resultR==NULLO:resuItR[i*n+j],resultl==NULLO:resultl[i*n+j]);
I
free(a);
free(b);
free(c);
)
#include<iostream>
#includc"plural.hpp"
//#include"input.hpp"
usingnamespacestd;
voidNodlnit()
{
floatglS,glX,g2S,g2X,1IL,I1D,12L,12D,tlS,HU,t2S,t2U;
coutvv”請(qǐng)輸入發(fā)電機(jī)G1的容量S(無(wú)窮大請(qǐng)輸入0):
cin?glS;
coutvv”請(qǐng)輸入發(fā)電機(jī)G1的電抗Xd(沒有請(qǐng)輸入0):”;
cin?glX;
cout?endl?”******************************************"?endl?end卜
cout<<”請(qǐng)輸入發(fā)電機(jī)G2的容量S[無(wú)窮大請(qǐng)輸入0):
cin?g2S;
coutvv”請(qǐng)輸入發(fā)電機(jī)G2的電抗Xd(沒有請(qǐng)輸入0):
cin?g2X;
cout?endl?*******************************************"?endl?endl,
cout<<”請(qǐng)輸入線路1的長(zhǎng)度L(KM):
cin?11L;
coutV〈"請(qǐng)輸入線路1每千米電抗值:";
cin?11D;
cout?endl?'‘**************************木********木*******?endl?endl,
cout?”請(qǐng)輸入線路2的長(zhǎng)度L(KM):
cin?12L;
cout<<”請(qǐng)輸入線路2每千米電抗值:";
cin?12D;
木********木*x********木***************木***
cout?endl??I**11?endl?endl;
cout<<”請(qǐng)輸入變壓器T1的容置S(MVA):
cin?tlS;
cou(?”請(qǐng)輸入變壓器Ti的Uk%:";
cin?tlU;
cout?endl?**************x*************************?**"<<endl?endl;
coinw”請(qǐng)輸入變壓器T2的容量S(MVA):
cin?t2S;
cout?”請(qǐng)輸入變壓器T2的Uk%:
cin?t2U;
intmain()
I
NodlnitO;
Pluralmatrix2[3][3];
matrix2[0][0].SetRI(0,1);matrix2[0][1].SelRI(0,2);matrix2[1][0].SetRI(0,1);matrix2[I][I].SetRI(0J);
matrix2[0][2].SetRI(0,2);matrix2[1][2].SetRI(0,1);matrix2[2][0].SetRI(0,3);matrix2[2][1].SetRI(0,2);matrix2[2
][2].SetRI(0,l);
Matrixlnv(*matrix2,3);
printf("\nl點(diǎn)短路電流是\n");
printf("%f+j%f',PluralDiv(matrix2[0][0]).GetR(),PIuralDiv(matrix2[0][0]).GetI());
printf("\n2點(diǎn)短路電流是\n");
printf("%f+j%f\PluralDiv(matrix2[1][1]).GetR(),PkiralDiv(matrix2[1][1]).GetI());
printf("\n3點(diǎn)短路電流是\n");
printf("%f+j%f\PluralDiv(matrix2[1]f1]).GetR(),PkiralDiv(matrix2[1][1]).GetI());
getchar();
return0;
#inchide"stdafx.h"
#include,'stdio.h"
include1'math.h"
#defineSd100
#defineUavl37
#defineUav26.3
intmain(intargc,char*argv[])
(
doublexg1,S2,11,12,xT,Sn,xg
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)戰(zhàn)略與持續(xù)改進(jìn)試題及答案
- 2025年新興市場(chǎng)風(fēng)險(xiǎn)試題及答案
- 理財(cái)規(guī)劃的關(guān)鍵步驟計(jì)劃
- 網(wǎng)絡(luò)管理員考試回顧與試題及答案總結(jié)
- 2025屆江蘇省如皋實(shí)驗(yàn)數(shù)學(xué)七下期末復(fù)習(xí)檢測(cè)試題含解析
- 深層次理解軟件設(shè)計(jì)師考試內(nèi)容的試題及答案
- 重點(diǎn)強(qiáng)化實(shí)際操作技能2025年計(jì)算機(jī)二級(jí)VB考試試題及答案
- 行業(yè)經(jīng)驗(yàn)傳承與知識(shí)管理計(jì)劃
- 法學(xué)概論考試復(fù)習(xí)中的常見問題試題及答案
- 信息處理技術(shù)員考試前的最后沖刺試題及答案
- 消費(fèi)心理學(xué)-理論、案例與實(shí)踐-綜合練習(xí)題及答案
- 《深度解析張旭課程》課件
- 【重慶】2024年度重慶房地產(chǎn)市場(chǎng)研究報(bào)告正式版
- 測(cè)繪設(shè)備投入計(jì)劃
- 2025年復(fù)旦大學(xué)自主招生個(gè)人陳述范文分享
- 2025年度新能源充電樁建設(shè)運(yùn)營(yíng)合同意見書
- 中華人民共和國(guó)工會(huì)法課件
- 漁業(yè)船員安全培訓(xùn)課件
- 2024年北京東城中小學(xué)教師招聘真題
- 2025屆湖北省武漢市高考數(shù)學(xué)一模試卷含解析
- 2024-2025學(xué)年高中英語(yǔ)人教版選擇性必修第四冊(cè)詞性轉(zhuǎn)換練習(xí)
評(píng)論
0/150
提交評(píng)論