| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 379 人关注过本帖
标题:求助,一个c++程序
取消只看楼主 加入收藏
ailing
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2008-9-3
收藏
 问题点数:0 回复次数:0 
求助,一个c++程序
#include<iostream>
#include<iomanip>
using namespace std;
const float h=0.01; //步长
const float Tmax=10;//最大时间
void gauss(float arr[][3],int n);
int main(){
    //变量说明
    float I3[1001],U3[1001],I5[1001],U5[1001];
    float YN[2][3];//结点方程的增广阵
    float t; //时间变量
    int m=2;//阶数
    float Gl,Gc;
    int k;
    //输入电路参数
    float Is=1,R2=20,R4=2,L=2,C=0.2;
    //计算Gl,Gc
    Gl=h/(2*L);
    Gc=2*C/h;
    //初始值计算
    I3[0]=0;U5[0]=1;
    I5[0]=(-1-R2)/(R2+R4);
    U3[0]=(1-I5[0])*R2;
    t=0.01;k=0;
    while(t<=Tmax){
        //增广阵
        YN[0][0]=1/R2+1/R4+Gl;
             YN[0][1]=-1/R4;
        YN[1][0]=-1/R4;
        YN[1][1]=1/R4+Gc;
       
        YN[0][2]=Is-I3[k]-Gl*U3[k];
        YN[1][2]=I5[k]+Gc*U5[k];
        //调用gauss函数,解方程
                  gauss(YN,m);
        U3[k+1]=YN[0][2];
        U5[k+1]=YN[1][2];
        //计算下一次初值
        I3[k+1]=Gl*U3[k+1]+I3[k]+Gl*U3[k];
        I5[k+1]=Gc*(U5[k+1]-U5[k])-I5[k];
        //时间变量增加一个步长,k加1
        t=t+h;
        k++;
    }
    //每隔20个时间点输出
    cout<<"T(s)"<<setw(15)<<"IL3(A)"<<setw(15)<<"UC5(V)"<<endl;
    for(k=0;k<=1000;k++){
        if(k%20==0){
            cout<<k*h<<setw(15)<<I3[k]<<setw(15)<<U5[k]<<endl;
        }
    }
    return 0;
}
//gaus function
void gauss(float arr[][3],int n){
    int m;
    m=n+1;
    int i,j,k;
    
    //消元
    float a;
    for(k=0;k<=n-2;k++){
        for(i=k+1;i<=n-1;i++){
          a=arr[i][k]/arr[k][k];
            for(j=0;j<=n;j++){
               arr[i][j]=arr[i][j]-a*arr[k][j];
            }
        }
    }
    //回代求解
    arr[n-1][n]=arr[n-1][n]/arr[n-1][n-1];
    for(j=n-1;j>=1;j--){
        for(i=j-1;i>=0;i--){
        arr[i][n]=arr[i][n]-arr[i][j]*arr[j][n];
        }
        arr[j-1][n]=arr[j-1][n]/arr[j-1][j-1];
    }
}
这是一个解电路计算的程序,计算最后一次值U3[1000],U5[1000]时,结果不对,不知道怎么回事,请大侠帮忙看看
搜索更多相关主题的帖子: include 
2008-09-03 16:32
快速回复:求助,一个c++程序
数据加载中...
 
   



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

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