算法介紹 矩陣求逆在程序中很常見,主要應(yīng)用于求Billboard矩陣。按照定義的計(jì)算方法乘法運(yùn)算,嚴(yán)重影響了性能。在需要大量Billboard矩陣運(yùn)算時,矩陣求逆的優(yōu)化能極大提高性能。這里要介紹的矩陣求逆算法稱為全選主元高斯-約旦法。 高斯-約旦法(全選主元)求逆的步驟如下: 首先,對于 k 從 0 到 n - 1 作如下幾步: 從第 k 行、第 k 列開始的右下角子陣中選取絕對值最大的元素,并記住次元素所在的行號和列號,在通過行交換和列交換將它交換到主元素位置上。這一步稱為全選主元。 m(k, k) = 1 / m(k, k) m(k, j) = m(k, j) * m(k, k),j = 0, 1, ..., n-1;j != k m(i, j) = m(i, j) - m(i, k) * m(k, j),i, j = 0, 1, ..., n-1;i, j != k m(i, k) = -m(i, k) * m(k, k),i = 0, 1, ..., n-1;i != k 最后,根據(jù)在全選主元過程中所記錄的行、列交換的信息進(jìn)行恢復(fù),恢復(fù)的原則如下:在全選主元過程中,先交換的行(列)后進(jìn)行恢復(fù);原來的行(列)交換用列(行)交換來恢復(fù)。
上傳時間: 2015-04-09
上傳用戶:wang5829
一、問題的提出: 某廠根據(jù)計(jì)劃安排,擬將n臺相同的設(shè)備分配給m個車間,各車間獲得這種設(shè)備后,可以為國家提供盈利Ci j(i臺設(shè)備提供給j號車間將得到的利潤,1≤i≤n,1≤j≤m) 。問如何分配,才使國家得到最大的盈利L 二.算法的基本思想: 利用動態(tài)規(guī)劃算法的思想,設(shè)將i臺設(shè)備分配給j-1個車間,可以為國家得到最大利潤Li (j-1)(1≤i≤n,1≤j≤m),那么將這i臺設(shè)備分配給j個車間,第j個車間只能被分配到0~i臺,所以我們只要算出當(dāng)?shù)趈個車間分配到t(0<=t<=i)臺時提供的最大利潤Lt(j-1)+C(i-t)j,
標(biāo)簽:
上傳時間: 2016-09-19
上傳用戶:希醬大魔王
成績顯示三個部份abc #include<stdio.h> #include<stdlib.h> int main(void) { float gread printf("請輸入分?jǐn)?shù)\n") scanf("%f",&gread) if(gread>=80&&gread<=100) printf("成績?yōu)锳\n") else if(gread>=60&&gread<=79) { printf("成績?yōu)锽\n") } else if(gread>=0&&gread<60) { printf("成績?yōu)镃\n") } else { printf("分?jǐn)?shù)輸入錯誤\n") } system("pause") return 0 }
標(biāo)簽: include stdlib float gread
上傳時間: 2014-01-15
上傳用戶:waizhang
實(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("請輸入矩陣第%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("請輸入矩陣的行數(shù) i: "); scanf("%d",&k); 四川大學(xué)實(shí)驗(yàn)報(bào)告 printf("請輸入矩陣的列數(shù) j: "); scanf("%d",&n); warshall(k,n); }
標(biāo)簽: warshall 離散 實(shí)驗(yàn)
上傳時間: 2016-06-27
上傳用戶:梁雪文以
1.Describe a Θ(n lg n)-time algorithm that, given a set S of n integers and another integer x, determines whether or not there exist two elements in S whose sum is exactly x. (Implement exercise 2.3-7.) #include<stdio.h> #include<stdlib.h> void merge(int arr[],int low,int mid,int high){ int i,k; int *tmp=(int*)malloc((high-low+1)*sizeof(int)); int left_low=low; int left_high=mid; int right_low=mid+1; int right_high=high; for(k=0;left_low<=left_high&&right_low<=right_high;k++) { if(arr[left_low]<=arr[right_low]){ tmp[k]=arr[left_low++]; } else{ tmp[k]=arr[right_low++]; } } if(left_low<=left_high){ for(i=left_low;i<=left_high;i++){ tmp[k++]=arr[i]; } } if(right_low<=right_high){ for(i=right_low;i<=right_high;i++) tmp[k++]=arr[i]; } for(i=0;i<high-low+1;i++) arr[low+i]=tmp[i]; } void merge_sort(int a[],int p,int r){ int q; if(p<r){ q=(p+r)/2; merge_sort(a,p,q); merge_sort(a,q+1,r); merge(a,p,q,r); } } int main(){ int a[8]={3,5,8,6,4,1,1}; int i,j; int x=10; merge_sort(a,0,6); printf("after Merging-Sort:\n"); for(i=0;i<7;i++){ printf("%d",a[i]); } printf("\n"); i=0;j=6; do{ if(a[i]+a[j]==x){ printf("exist"); break; } if(a[i]+a[j]>x) j--; if(a[i]+a[j]<x) i++; }while(i<=j); if(i>j) printf("not exist"); system("pause"); return 0; }
上傳時間: 2017-04-01
上傳用戶:糖兒水嘻嘻
# include<stdio.h> # include<math.h> # define N 3 main(){ float NF2(float *x,float *y); float A[N][N]={{10,-1,-2},{-1,10,-2},{-1,-1,5}}; float b[N]={7.2,8.3,4.2},sum=0; float x[N]= {0,0,0},y[N]={0},x0[N]={}; int i,j,n=0; for(i=0;i<N;i++) { x[i]=x0[i]; } for(n=0;;n++){ //計(jì)算下一個值 for(i=0;i<N;i++){ sum=0; for(j=0;j<N;j++){ if(j!=i){ sum=sum+A[i][j]*x[j]; } } y[i]=(1/A[i][i])*(b[i]-sum); //sum=0; } //判斷誤差大小 if(NF2(x,y)>0.01){ for(i=0;i<N;i++){ x[i]=y[i]; } } else break; } printf("經(jīng)過%d次雅可比迭代解出方程組的解:\n",n+1); for(i=0;i<N;i++){ printf("%f ",y[i]); } } //求兩個向量差的二范數(shù)函數(shù) float NF2(float *x,float *y){ int i; float z,sum1=0; for(i=0;i<N;i++){ sum1=sum1+pow(y[i]-x[i],2); } z=sqrt(sum1); return z; }
上傳時間: 2019-10-13
上傳用戶:大萌萌撒
家具行業(yè)的成本核算報(bào)價系統(tǒng),主要征對家個產(chǎn)品的結(jié)構(gòu)展開進(jìn)行材料成本及人工制造費(fèi)用統(tǒng)計(jì),加上可調(diào)節(jié)的利潤設(shè)定,將其成本核算出來,同時將報(bào)價單作出來
上傳時間: 2014-01-21
上傳用戶:songnanhua
PCB Layout Rule Rev1.70, 規(guī)範(fàn)內(nèi)容如附件所示, 其中分為: 為確保產(chǎn)品之製造性, R&D在設(shè)計(jì)階段必須遵循Layout相關(guān)規(guī)範(fàn), 以利製造單位能順利生產(chǎn), 確保產(chǎn)品良率, 降低因設(shè)計(jì)而重工之浪費(fèi).
標(biāo)簽: Layout 1.70 Rule PCB
上傳時間: 2015-05-23
上傳用戶:it男一枚
本書以最新的資訊家電、智慧型手機(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)域的寶典 第三代行動通訊終端設(shè)備與內(nèi)容服務(wù)的必備知識.
上傳時間: 2015-09-03
上傳用戶:阿四AIR
交換式電源轉(zhuǎn)換器(Switching Power Supply)為目前電子產(chǎn)品中,非常廣 泛使用的電源裝置,在日常生活中隨處可見 ,它主要的功能是調(diào)節(jié)電壓準(zhǔn) 位,亦可說 是直流 的變壓器。與傳統(tǒng)線性式電源轉(zhuǎn)換器比較,體積小、重 量 輕、效率 高以及有較大的輸入電壓範(fàn)圍是交換式電源轉(zhuǎn)換器的優(yōu)點(diǎn)。 交換式電源轉(zhuǎn)換器廣泛被應(yīng)用在電源供應(yīng)器以及新一代電腦內(nèi)。因 此,如何控制交換式電源轉(zhuǎn)換器使其在輸入電壓與輸出負(fù)載變動的情況 下,能夠自動調(diào)節(jié)輸出電壓為所預(yù)設(shè)的位準(zhǔn),實(shí)為一項(xiàng)重要的研究。
標(biāo)簽: Switching Supply Power
上傳時間: 2014-09-08
上傳用戶:com1com2
蟲蟲下載站版權(quán)所有 京ICP備2021023401號-1