| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 794 人关注过本帖
标题:请高手看完给个简单的流程图下午急用
取消只看楼主 加入收藏
babyface310
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-11-26
收藏
 问题点数:0 回复次数:2 
请高手看完给个简单的流程图下午急用
因为是初学者所以对这种程序很头疼
想看下简单的流程图 有点启示吧 呵呵
以下是程序
#include <stdio.h>
#include <math.h>
double  question_1(double C[5][501],double lanbata[2]);
double  question_11(double C[5][501],double beta[2]);
double  question(double C[5][501]);
int  max(int a,int b);
int  min(int a,int b);
void chushijuzhen(double C[5][501]);
main()
{
 double miu,tezhengzhi[40],beta[2];
 double lanbata[2],C[5][501];
 double cond_A,detA=1;
 int i, j, k;
 question_1(C, lanbata);
 chushijuzhen(C);
 question_11(C, beta);
 for(i=0;i<501;i++)
  detA = detA * C[2][i];
 printf("行列式为:detA= %.12f \n", detA);
 printf("模最小特征值:%.12f \n", 1/beta[1]);
 cond_A = fabs(lanbata[0] * beta[1]);
 printf("条件数cond(A): %.12f \n", cond_A);
 printf("40个与要求最接近的特征值为: \n");
 for(k=1;k<=39;k++)
 {
  chushijuzhen(C);
  miu=lanbata[0]+k*(lanbata[1]-lanbata[0])/40;
  for(i=0;i<501;i++)
   C[2][i]=C[2][i]-miu;
        question_11(C,beta);
  tezhengzhi[k-1]=1/beta[1]+miu;
  printf("%.12f\n", tezhengzhi[k-1]);
 }
}

double question_1(double C[5][501],double lanbata[2])
{
 int i;
 chushijuzhen(C);
 lanbata[0] = question(C);
 for(i=0; i<501; i++)
  C[2][i] = C[2][i] - lanbata[0];                          
 lanbata[1] = question(C);
 lanbata[1] = lanbata[1] + lanbata[0];
 printf("模最大特征值:%.12f \n", lanbata[0]);
 printf("与模最大特征值的差的模最大特征值:%.12f \n", lanbata[1]);
 return lanbata[0];
}

double question_11(double C[5][501],double beta[2])
{
 double u[501];
 double epuque = 1e-12,s;
 int l=1;
 int i, j, k, t;
 double yy[501], B1, B2;
 beta[0]=0;
 for(i=0;i<501;i++)
  u[i]=1;
 for(k=0;k<501;k++)
 {
  for(j=k;j<=min(k+2,500);j++)
  {
   double C1=0;
   for(t=max(0,j-2);t<=k-1;t++)
                C1=C1+C[k-t+2][t]*C[t-j+2][j];
   C[k-j+2][j]=C[k-j+2][j]-C1;
  }
  for(i=k+1;i<=min(k+2,500);i++)
  {
   double C2=0;
   for(t=max(0,i-2);t<=k-1;t++)
    C2=C2+C[i-t+2][t]*C[t-k+2][k];
   C[i-k+2][k]=(C[i-k+2][k]-C2)/C[2][k];
  }
 }
 do
 {
  double enta=0,y[501];
  for(i=0;i<501;i++)
   enta=enta+u[i]*u[i];
   enta=sqrt(enta);
  for(i=0;i<501;i++)
   y[i]=u[i]/enta;
  for(j=0;j<=500;j++)
   {
    yy[j]=y[j];
   }
  for(i=1;i<501;i++)
  {
   B1=0;
   for(t=max(0,i-2);t<=i-1;t++)
    B1=B1+C[i-t+2][t]*yy[t];
   yy[i]=yy[i]-B1;
  }
  u[500]=yy[500]/C[2][500];
  for(i=499;i>=0;i--)
  {
   B2=0;
   for(t=i+1;t<=min(i+2,500);t++)
    B2=B2+C[i-t+2][t]*u[t];
   u[i]=(yy[i]-B2)/C[2][i];
  }
  beta[1]=0;
  for(i=0;i<501;i++)
   beta[1]=beta[1]+y[i]*u[i];
  if(l>=2)
   s=fabs((1/beta[1]-1/beta[0])/(1/beta[1]));
  else
   s=1;
  beta[0]=beta[1];
  l++;
 }while(s>epuque);
    return beta[1];
}

double question(double C[5][501])
{
 double enta=0,y[501];
 double u[501],beta[2];
 double epuque=1e-12, s;
 int i,l=1, h;
 beta[0]=0;
 beta[1]=0;
 for(i=0;i<501;i++)
 {
  u[i]=1;
 }
 do
 {
  beta[1]=0;
  enta=0;
  for(i=0;i<501;i++)
  {
   enta=enta+u[i]*u[i];
  }
  enta=sqrt(enta);
  for(i=0;i<501;i++)
  {
   y[i]=u[i]/enta;
  }
  for(i=0;i<501;i++)
  {
   int k=0,g;
   g=max(0,(i-2));
   h=min(i+2,500);
      u[i]=0;
   for(k=g;k<=h;k++)
   {
       u[i]=u[i]+C[i-k+2][k]*y[k];
   }
  }
  for(i=0;i<501;i++)
  {
   beta[1]=beta[1]+y[i]*u[i];
  }
       if(l>=2)
    s=fabs((beta[1]-beta[0])/beta[1]);
  else
   s=1;
  beta[0]=beta[1];
  l++;
 }while(s>epuque);
return beta[1];
}

int max(int a,int b)
{
 int temp;
 if(a>b)
  temp=a;
 else
  temp=b;
 return temp;
}
int min(int a,int b)
{
 int temp;
 if(a<b)
  temp=a;
 else
  temp=b;
 return temp;
}

void chushijuzhen(double C[5][501])
{
 int i;
 for(i=0;i<501;i++)
 {
  C[2][i]=(1.64-0.024*(i+1))*sin(0.2*(i+1))-0.64*exp(0.1/(i+1));
     C[0][i]=-0.064;
  C[1][i]=0.16;
  C[3][i]=0.16;
  C[4][i]=-0.064;
 }
 C[0][0]=0;
 C[0][1]=0;
 C[1][0]=0;
 C[3][500]=0;
 C[4][499]=0;
 C[4][500]=0;
}
麻烦各位~~谢谢~~!
搜索更多相关主题的帖子: 流程图 
2007-11-26 11:40
babyface310
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-11-26
收藏
得分:0 
加我QQ也可以12243625
实在是很头疼啊....
2007-11-26 11:42
babyface310
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-11-26
收藏
得分:0 
等待中ing......
2007-11-26 11:53
快速回复:请高手看完给个简单的流程图下午急用
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019740 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved