實(shí)驗(yàn)源代碼 //Warshall.cpp #include<stdio.h> void warshall(int k,int n) { int i , j, t; int temp[20][20]; for(int a=0;a<k;a++) { printf("請(qǐng)輸入矩陣第%d 行元素:",a); for(int b=0;b<n;b++) { scanf ("%d",&temp[a][b]); } } for(i=0;i<k;i++){ for( j=0;j<k;j++){ if(temp[ j][i]==1) { for(t=0;t<n;t++) { temp[ j][t]=temp[i][t]||temp[ j][t]; } } } } printf("可傳遞閉包關(guān)系矩陣是:\n"); for(i=0;i<k;i++) { for( j=0;j<n;j++) { printf("%d", temp[i][ j]); } printf("\n"); } } void main() { printf("利用 Warshall 算法求二元關(guān)系的可傳遞閉包\n"); void warshall(int,int); int k , n; printf("請(qǐng)輸入矩陣的行數(shù) i: "); scanf("%d",&k); 四川大學(xué)實(shí)驗(yàn)報(bào)告 printf("請(qǐng)輸入矩陣的列數(shù) j: "); scanf("%d",&n); warshall(k,n); }
標(biāo)簽: warshall 離散 實(shí)驗(yàn)
上傳時(shí)間: 2016-06-27
上傳用戶:梁雪文以
function [alpha,N,U]=youxianchafen2(r1,r2,up,under,num,deta) %[alpha,N,U]=youxianchafen2(a,r1,r2,up,under,num,deta) %該函數(shù)用有限差分法求解有兩種介質(zhì)的正方形區(qū)域的二維拉普拉斯方程的數(shù)值解 %函數(shù)返回迭代因子、迭代次數(shù)以及迭代完成后所求區(qū)域內(nèi)網(wǎng)格節(jié)點(diǎn)處的值 %a為正方形求解區(qū)域的邊長 %r1,r2分別表示兩種介質(zhì)的電導(dǎo)率 %up,under分別為上下邊界值 %num表示將區(qū)域每邊的網(wǎng)格剖分個(gè)數(shù) %deta為迭代過程中所允許的相對(duì)誤差限 n=num+1; %每邊節(jié)點(diǎn)數(shù) U(n,n)=0; %節(jié)點(diǎn)處數(shù)值矩陣 N=0; %迭代次數(shù)初值 alpha=2/(1+sin(pi/num));%超松弛迭代因子 k=r1/r2; %兩介質(zhì)電導(dǎo)率之比 U(1,1:n)=up; %求解區(qū)域上邊界第一類邊界條件 U(n,1:n)=under; %求解區(qū)域下邊界第一類邊界條件 U(2:num,1)=0;U(2:num,n)=0; for i=2:num U(i,2:num)=up-(up-under)/num*(i-1);%采用線性賦值對(duì)上下邊界之間的節(jié)點(diǎn)賦迭代初值 end G=1; while G>0 %迭代條件:不滿足相對(duì)誤差限要求的節(jié)點(diǎn)數(shù)目G不為零 Un=U; %完成第n次迭代后所有節(jié)點(diǎn)處的值 G=0; %每完成一次迭代將不滿足相對(duì)誤差限要求的節(jié)點(diǎn)數(shù)目歸零 for j=1:n for i=2:num U1=U(i,j); %第n次迭代時(shí)網(wǎng)格節(jié)點(diǎn)處的值 if j==1 %第n+1次迭代左邊界第二類邊界條件 U(i,j)=1/4*(2*U(i,j+1)+U(i-1,j)+U(i+1,j)); end if (j>1)&&(j U2=1/4*(U(i,j+1)+ U(i-1,j)+ U(i,j-1)+ U(i+1,j)); U(i,j)=U1+alpha*(U2-U1); %引入超松弛迭代因子后的網(wǎng)格節(jié)點(diǎn)處的值 end if i==n+1-j %第n+1次迭代兩介質(zhì)分界面(與網(wǎng)格對(duì)角線重合)第二類邊界條件 U(i,j)=1/4*(2/(1+k)*(U(i,j+1)+U(i+1,j))+2*k/(1+k)*(U(i-1,j)+U(i,j-1))); end if j==n %第n+1次迭代右邊界第二類邊界條件 U(i,n)=1/4*(2*U(i,j-1)+U(i-1,j)+U(i+1,j)); end end end N=N+1 %顯示迭代次數(shù) Un1=U; %完成第n+1次迭代后所有節(jié)點(diǎn)處的值 err=abs((Un1-Un)./Un1);%第n+1次迭代與第n次迭代所有節(jié)點(diǎn)值的相對(duì)誤差 err(1,1:n)=0; %上邊界節(jié)點(diǎn)相對(duì)誤差置零 err(n,1:n)=0; %下邊界節(jié)點(diǎn)相對(duì)誤差置零 G=sum(sum(err>deta))%顯示每次迭代后不滿足相對(duì)誤差限要求的節(jié)點(diǎn)數(shù)目G end
標(biāo)簽: 有限差分
上傳時(shí)間: 2018-07-13
上傳用戶:Kemin
#include <stdio.h> #include <stdlib.h> #define SMAX 100 typedef struct SPNode { int i,j,v; }SPNode; struct sparmatrix { int rows,cols,terms; SPNode data [SMAX]; }; sparmatrix CreateSparmatrix() { sparmatrix A; printf("\n\t\t請(qǐng)輸入稀疏矩陣的行數(shù),列數(shù)和非零元素個(gè)數(shù)(用逗號(hào)隔開):"); scanf("%d,%d,%d",&A.cols,&A.terms); for(int n=0;n<=A.terms-1;n++) { printf("\n\t\t輸入非零元素值(格式:行號(hào),列號(hào),值):"); scanf("%d,%d,%d",&A.data[n].i,&A.data[n].j,&A.data[n].v); } return A; } void ShowSparmatrix(sparmatrix A) { int k; printf("\n\t\t"); for(int x=0;x<=A.rows-1;x++) { for(int y=0;y<=A.cols-1;y++) { k=0; for(int n=0;n<=A.terms-1;n++) { if((A.data[n].i-1==x)&&(A.data[n].j-1==y)) { printf("%8d",A.data[n].v); k=1; } } if(k==0) printf("%8d",k); } printf("\n\t\t"); } } void sumsparmatrix(sparmatrix A) { SPNode *p; p=(SPNode*)malloc(sizeof(SPNode)); p->v=0; int k; k=0; printf("\n\t\t"); for(int x=0;x<=A.rows-1;x++) { for(int y=0;y<=A.cols-1;y++) { for(int n=0;n<=A.terms;n++) { if((A.data[n].i==x)&&(A.data[n].j==y)&&(x==y)) { p->v=p->v+A.data[n].v; k=1; } } } printf("\n\t\t"); } if(k==1) printf("\n\t\t對(duì)角線元素的和::%d\n",p->v); else printf("\n\t\t對(duì)角線元素的和為::0"); } int main() { int ch=1,choice; struct sparmatrix A; A.terms=0; while(ch) { printf("\n"); printf("\n\t\t 稀疏矩陣的三元組系統(tǒng) "); printf("\n\t\t*********************************"); printf("\n\t\t 1------------創(chuàng)建 "); printf("\n\t\t 2------------顯示 "); printf("\n\t\t 3------------求對(duì)角線元素和"); printf("\n\t\t 4------------返回 "); printf("\n\t\t*********************************"); printf("\n\t\t請(qǐng)選擇菜單號(hào)(0-3):"); scanf("%d",&choice); switch(choice) { case 1: A=CreateSparmatrix(); break; case 2: ShowSparmatrix(A); break; case 3: SumSparmatrix(A); break; default: system("cls"); printf("\n\t\t輸入錯(cuò)誤!請(qǐng)重新輸入!\n"); break; } if (choice==1||choice==2||choice==3) { printf("\n\t\t"); system("pause"); system("cls"); } else system("cls"); } }
上傳時(shí)間: 2020-06-11
上傳用戶:ccccy
(1)輸入E條弧<j,k>,建立AOE-網(wǎng)的存儲(chǔ)結(jié)構(gòu) (2)從源點(diǎn)v出發(fā),令ve[0]=0,按拓?fù)渑判蚯笃溆喔黜?xiàng)頂點(diǎn)的最早發(fā)生時(shí)間ve[i](1<=i<=n-1).如果得到的拓樸有序序列中頂點(diǎn)個(gè)數(shù)小于網(wǎng)中頂點(diǎn)數(shù)n,則說明網(wǎng)中存在環(huán),不能求關(guān)鍵路徑,算法終止 否則執(zhí)行步驟(3)(3)從匯點(diǎn)v出發(fā),令vl[n-1]=ve[n-1],按逆拓樸排序求其余各頂點(diǎn)的最遲發(fā)生時(shí)間vl[i](n-2>=i>=2). (4)根據(jù)各頂點(diǎn)的ve和vl值,求每條弧s的最早發(fā)生時(shí)間e(s)和最遲開始時(shí)間l(s).若某條弧滿足條件e(s)=l(s),則為關(guān)鍵活動(dòng).
上傳時(shí)間: 2014-11-28
上傳用戶:fredguo
頻率計(jì)程序﹐一個(gè)基于PIC單片機(jī)的頻率計(jì)程序和電路圖。
上傳時(shí)間: 2013-12-26
上傳用戶:liansi
slickeditv10.0linuxcrackz.w.t.zip SlickEdit v10.0 for linux 注冊(cè)機(jī) 在國內(nèi)網(wǎng)站上找了N天都沒找到,在國外一家網(wǎng)站找到。雖然不是源代碼,但是SlickEdit是Linux下最好用的30多種編程IDE。這個(gè)是注冊(cè)機(jī)安裝文件在百度裡找吧
標(biāo)簽: 10.0 linuxcrackz slickeditv SlickEdit
上傳時(shí)間: 2013-12-10
上傳用戶:大融融rr
一個(gè)手機(jī)程序(電子詞典),一個(gè)不可多得的源碼程序,是學(xué)習(xí)J2ME的好東東.
上傳時(shí)間: 2013-12-12
上傳用戶:silenthink
針對(duì)dBm及volts及watts轉(zhuǎn)換,適用於電子業(yè)界工程師
上傳時(shí)間: 2015-08-31
上傳用戶:wangyi39
本書以最新的資訊家電、智慧型手機(jī)、PDA產(chǎn)品為出發(fā)點(diǎn),廣泛並深入分析相關(guān)的嵌入式系統(tǒng)技術(shù)。 適合閱讀: 產(chǎn)品主管、系統(tǒng)設(shè)計(jì)分析人員、欲進(jìn)入此領(lǐng)域的工程師、大專院校教學(xué). 本書效益: 為開發(fā)嵌入式系統(tǒng)產(chǎn)品必備入門聖經(jīng) 進(jìn)入嵌入式系統(tǒng)領(lǐng)域的寶典 第三代行動(dòng)通訊終端設(shè)備與內(nèi)容服務(wù)的必備知識(shí).
上傳時(shí)間: 2015-09-03
上傳用戶:阿四AIR
九十三學(xué)年 度 全國大學(xué)校院嵌入式軟體設(shè)計(jì)競賽 多媒體組決賽報(bào)告書 具效能與耗電可調(diào)適性之智慧型數 位相機(jī)
標(biāo)簽: 63886 63849 64001 嵌入式
上傳時(shí)間: 2014-11-29
上傳用戶:jjj0202
蟲蟲下載站版權(quán)所有 京ICP備2021023401號(hào)-1