| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 507 人关注过本帖
标题:新手求助一道题,望高手帮忙改一下错,感谢!!
只看楼主 加入收藏
minjiyuxin
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2009-12-19
收藏
 问题点数:0 回复次数:2 
新手求助一道题,望高手帮忙改一下错,感谢!!
新人请教一道题,这是我们老师给我们的作业,主要是用到求积分的部分,我已经写了差不多了,但是最后有错,所以希望有高手给我指点一下,万分感谢!

首先题目如下:
一个铁芯线圈,线圈n=440,长度l=480mm,横断面积S=0.000156 平方米,磁场强度标为H,磁通量密度标为B。所有B和H的数据都包括在一个名为“BH”的txt文档里,第一列的数据为H,第二列为B。周期T=20ms

1) 求铁芯线圈消耗的功率。
     对这一问,老师给的方法是先求瞬时功率,P(t) = V(t)I(t),然后用瞬时功率再求消耗的功率,  
图片附件: 游客没有浏览图片的权限,请 登录注册

其中
图片附件: 游客没有浏览图片的权限,请 登录注册


2) 已知B(H)的图像下图所示,请求出曲线包围出的图像的面积。
图片附件: 游客没有浏览图片的权限,请 登录注册

     对于这一问,因为图像是对称的,所以只要求出H从0开始到最大值的面颊然后乘以2就可以了,首先就要求出Hmax,但是就是这里我不会,然后用求积分的方法求出两条线与横轴所组成的图形面积,用上面的面积减去下面的面积即可。
图片附件: 游客没有浏览图片的权限,请 登录注册




下面放上我的写的程序,高手帮忙改改吧!!万分感谢!!
#include<stdio.h>
#include<stdlib.h>
#include<math.h>

typedef float vect[500];
#define MAX=9.82490000e+02;

#define ns 440
#define S 0.00156
#define l 0.48

void lecture(vect x, vect y, int *n);
void lecture(vect x, vect y, int *n)
{
FILE *f;
f=fopen("CM.txt","r");
*n=0;
while(!feof(f))
    {
    fscanf(f,"%f %f",&x[*n],&y[*n]);// x=>H et y=>B
    *n=*n+1;
    printf("\n %d valeurs de B et H \n",*n);
    }   
    *n=*n-1;
}




void hmax(vect x, vect y, int *n);
void hmax(vect x, vect y, int *n)
{
float Hmax;
vect H;
int i;
FILE *f;
f=fopen("CM.txt","r");
*n=0;
while(!feof(f))
    {
    fscanf(f,"%f ",&x[*n]);
    }   
fclose(f);

printf("\n %d valeurs de H \n",*n);

if
H[i]>MAX
{
Hmax=H[i];
}
else
{
Hmax=MAX;   
}
printf("\n %d valeurs de H maximale est %d \n",Hmax)
}


float integraleB1 (vect u, float h, int n);
float integraleB1 (vect u, float h, int n)
{   
float b1=u[0]+u[n];   
int i;   
for(i=1;i<=n-1;i++)   
{b1 +=2*u[i];   
return h*b1/2;}   
}


float integraleB2 (vect v, float h, int n);
float integraleB2 (vect v, float h, int n)
{   
float b2=v[0]+v[n];   
int i;   
for(i=1;i<=n-1;i++)
{b2+=2*v[i];
return h*b2/2;    }
}



int main (void)
{   
int i,n;   
float h,Hmax;
float h1,h2;
float x0=0,xn=0.02;
float b10=0,b1n=MAX;
float b20=0,b2n=MAX;

vect pmoy,x,y;   
float s,s1,s2;
   
h=(xn-x0)/n;   
for(i=1;i<=n;i++)   
{        
pmoy[i]=(l*S/0.02)*(x0+i*h);        
printf("\n\n La puissance moyenne est %f\n\n", pmoy[i]);
}
printf("\n\nLa puissance moyenne est %f\n\n", pmoy[i]);

hmax(x,y,n);
printf("\n\nLa valeur de H maximale est %f\n\n", Hmax);


h1=(b1n-b10)/n;
h2=(b2n-b20)/n;
        
for(i=1;i<=n;i++)
{
s1=b10*(i*h1);
s2=b20*(i*h2);
s=s1-s2;
}

printf("\nLa surface est %f\n",s);

return 0;

}




[ 本帖最后由 minjiyuxin 于 2009-12-19 23:45 编辑 ]
搜索更多相关主题的帖子: 感谢 
2009-12-19 23:35
minjiyuxin
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2009-12-19
收藏
得分:0 
高人帮帮忙啊!!感谢~
2009-12-22 19:15
minjiyuxin
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2009-12-19
收藏
得分:0 

DD~
2009-12-23 20:46
快速回复:新手求助一道题,望高手帮忙改一下错,感谢!!
数据加载中...
 
   



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

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