-
# 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ì)算下一個(gè)值
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)過(guò)%d次雅可比迭代解出方程組的解:\n",n+1);
for(i=0;i<N;i++){
printf("%f ",y[i]);
}
}
//求兩個(gè)向量差的二范數(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;
}
標(biāo)簽:
C語(yǔ)言
編寫(xiě)
迭代
上傳時(shí)間:
2019-10-13
上傳用戶(hù):大萌萌撒
-
#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)隔開(kāi)):");
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");
}
}
標(biāo)簽:
數(shù)組
子系統(tǒng)
上傳時(shí)間:
2020-06-11
上傳用戶(hù):ccccy
-
1.2 源代碼表示不考慮主題,列舉 15 000行源代碼本身就是一件難事。下面是所有源代碼都使用的文本格式:1.2.1 將擁塞窗口設(shè)置為13 8 7 - 3 8 8 這是文件t c p _ s u b r . c中的函數(shù)t c p _ q u e n c h。這些源文件名引用4 . 4 B S D - L i t e發(fā)布的文件。4 . 4 B S D在1 . 1 3節(jié)中討論。每個(gè)非空白行都有編號(hào)。正文所描述的代碼的起始和結(jié)束位置的行號(hào)記于行開(kāi)始處,如本段所示。有時(shí)在段前有一個(gè)簡(jiǎn)短的描述性題頭,對(duì)所描述的代碼提供一個(gè)概述。這些源代碼同4 . 4 B S D - L i t e發(fā)行版一樣,偶爾也包含一些錯(cuò)誤,在遇到時(shí)我們會(huì)提出來(lái)并加以討論,偶爾還包括一些原作者的編者評(píng)論。這些代碼已通過(guò)了 G N U縮進(jìn)程序的運(yùn)行,使它們從版面上看起來(lái)具有一致性。制表符的位置被設(shè)置成 4個(gè)欄的界線使得這些行在一個(gè)頁(yè)面中顯示得很合適。在定義常量時(shí),有些 # i f d e f語(yǔ)句和它們的對(duì)應(yīng)語(yǔ)句 # e n d i f被刪去(如:G A T E W A Y和M R O U T I N G,因?yàn)槲覀兗僭O(shè)系統(tǒng)被作為一個(gè)路由器或多播路由器 )。所有r e g i s t e r說(shuō)明符被刪去。有些地方加了一些注釋?zhuān)⑶乙恍┳⑨屩械挠∷㈠e(cuò)誤被修改了,但代碼的其他部分被保留下來(lái)。這些函數(shù)大小不一,從幾行 (如前面的t c p _ q u e n c h)到最大11 0 0行(t c p _ i n p u t)。超過(guò)大約4 0行的函數(shù)一般被分成段,一段一段地顯示。雖然盡量使代碼和相應(yīng)的描述文字放在同一頁(yè)或?qū)﹂_(kāi)的兩頁(yè)上,但為了節(jié)約版面,不可能完全做到。本書(shū)中有很多對(duì)其他函數(shù)的交叉引用。為了避免給每個(gè)引用都添加一個(gè)圖號(hào)和頁(yè)碼,書(shū)封底內(nèi)頁(yè)中有一個(gè)本書(shū)中描述的所有函數(shù)和宏的字母交叉引用表和描述的起始頁(yè)碼。因?yàn)楸緯?shū)的源代碼來(lái)自公開(kāi)的 4 . 4 B S D _ L i t e版,因此很容易獲得它的一個(gè)拷貝:附錄 B詳細(xì)說(shuō)明了各種方法。當(dāng)你閱讀文章時(shí),有時(shí)它會(huì)幫助你搜索一個(gè)在線拷貝 [例如U n i x程序grep ( 1 )]。描述一個(gè)源代碼模塊的各章通常以所討論的源文件的列表開(kāi)始,接著是全局變量、代碼維護(hù)的相關(guān)統(tǒng)計(jì)以及一個(gè)實(shí)際系統(tǒng)的一些例子統(tǒng)計(jì),最后是與所描述協(xié)議相關(guān)的 S N M P變量。全局變量的定義通??缭礁鞣N源文件和頭文件,因此我們將它們集中到的一個(gè)表中以便于參考。這樣顯示所有的統(tǒng)計(jì),簡(jiǎn)化了后面當(dāng)統(tǒng)計(jì)更新時(shí)對(duì)代碼的討論。卷 1的第2 5章提供了S N M P的所有細(xì)節(jié)。我們?cè)诒疚闹嘘P(guān)心的是由內(nèi)核中的 T C P / I P例程維護(hù)的、支持在系統(tǒng)上運(yùn)行的S N M P代理的信息。TCP IP詳解 卷1協(xié)議 :http://dl.21ic.com/download/tcpip-288223.html TCP IP詳解 卷2實(shí)現(xiàn) :http://dl.21ic.com/download/tcpip-288224.html TCPIP詳解卷三:TCP事務(wù)協(xié)議,HTTP,NNTP和UNIX域協(xié)議 :http://dl.21ic.com/download/tcpip-288225.html
標(biāo)簽:
tcp-ip
實(shí)現(xiàn)
上傳時(shí)間:
2022-07-27
上傳用戶(hù):
-
n個(gè)石頭(每相鄰兩個(gè)的距離是1米,最邊上石頭和岸的距離也是1米),禮物放在第m個(gè)石頭上,青蛙第i次跳2*i-1米.問(wèn)能否得到禮物.(n>=49肯定能得到禮物,n<49,可以bfs或遞歸)
標(biāo)簽:
49
bfs
gt
lt
上傳時(shí)間:
2013-12-30
上傳用戶(hù):linlin
-
本章介紹L i n u x內(nèi)核是如何維護(hù)它支持的文件系統(tǒng)中的文件的.
標(biāo)簽:
內(nèi)核
文件系統(tǒng)
上傳時(shí)間:
2014-12-04
上傳用戶(hù):xmsmh
-
程序存儲(chǔ)問(wèn)題:設(shè)有n 個(gè)程序{1,2,…, n }要存放在長(zhǎng)度為L(zhǎng)的磁帶上。程序i存放在磁帶上的長(zhǎng)度是Li ,1≤i≤n 程序存儲(chǔ)問(wèn)題要求確定這n 個(gè)程序在磁帶上的一個(gè)存儲(chǔ)方案,使得能夠在磁帶上存儲(chǔ)盡可能多的程序。 編程任務(wù): 對(duì)于給定的n個(gè)程序存放在磁帶上的長(zhǎng)度,編程計(jì)算磁帶上最多可以存儲(chǔ)的程序數(shù)。 數(shù)據(jù)輸入:由文件input.txt給出輸入數(shù)據(jù)。第一行是正整數(shù)n,表示文件個(gè)數(shù)。接下來(lái)的1 行中,有n 個(gè)正整數(shù),表示程序存放在磁帶上的長(zhǎng)度。 結(jié)果輸出: input.txt output.txt 6 50 5 2 3 13 8 80 20
標(biāo)簽:
程序
磁帶
長(zhǎng)度
程序存儲(chǔ)
上傳時(shí)間:
2013-12-20
上傳用戶(hù):dongqiangqiang
-
/*最大k乘積問(wèn)題 問(wèn)題描述: 設(shè)I是一個(gè)n位十進(jìn)制整數(shù)。如果將I劃分為k段,則可得到k個(gè)整數(shù)。這k個(gè)整數(shù)的乘積稱(chēng)為I的一個(gè)k乘積 。 試設(shè)計(jì)一個(gè)算法,對(duì)于給定的I和k,求出I的最大k乘積(n<=10)。 示例:輸入為 : 4 3 結(jié)果:1234 */
標(biāo)簽:
十進(jìn)制
分
整數(shù)
上傳時(shí)間:
2013-12-14
上傳用戶(hù):caixiaoxu26
-
(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,則說(shuō)明網(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)和最遲開(kāi)始時(shí)間l(s).若某條弧滿足條件e(s)=l(s),則為關(guān)鍵活動(dòng).
標(biāo)簽:
lt
ve
AOE
gt
上傳時(shí)間:
2014-11-28
上傳用戶(hù):fredguo
-
有趣的文字鼠標(biāo)跟隨,l o a d i n g字母組成,在打開(kāi)頁(yè)面等待的時(shí)候可以用
標(biāo)簽:
鼠標(biāo)
字母
上傳時(shí)間:
2013-12-21
上傳用戶(hù):2525775
-
給定n 個(gè)物品, 物品i重為wi 并且價(jià)值為 vi ,背包所能承載的最大容量為 W.
0-1 背包問(wèn)題即是選擇含有著最大總價(jià)值的物品的子集且它的容量 ≤W .
用動(dòng)態(tài)規(guī)劃實(shí)現(xiàn)
標(biāo)簽:
vi
價(jià)值
上傳時(shí)間:
2015-04-21
上傳用戶(hù):四只眼