您现在所在的是:

电脑编程

回帖:6个,阅读:1856 [上一页] [1] [下一页]
812
minjiyuxin
文章数:4
年度积分:50
历史总积分:812
注册时间:2009/12/19
发站内信
发表于:2009/12/19 23:58:11
#0楼
新人请教一道题,这是我们老师给我们的作业,主要是用到求积分的部分,我已经写了差不多了,但是最后有错,所以希望有高手给我指点一下,万分感谢!

首先题目如下:
一个铁芯线圈,线圈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;

}





[此贴子已经被作者于2009-12-19 23:59:01编辑过]
812
minjiyuxin
文章数:4
年度积分:50
历史总积分:812
注册时间:2009/12/19
发站内信
发表于:2009/12/22 19:13:28
#1楼
高人帮帮忙啊~
812
minjiyuxin
文章数:4
年度积分:50
历史总积分:812
注册时间:2009/12/19
发站内信
发表于:2009/12/23 20:42:40
#2楼
表情
812
minjiyuxin
文章数:4
年度积分:50
历史总积分:812
注册时间:2009/12/19
发站内信
发表于:2009/12/27 22:41:24
#3楼
表情
8164
shotgun
文章数:1453
年度积分:50
历史总积分:8164
注册时间:2007/9/19
发站内信
发表于:2009/12/31 8:54:45
#4楼
此楼内容不符合板块规定,不予显示! 查看原帖内容>>
16067
xilinxue
文章数:2441
年度积分:50
历史总积分:16067
注册时间:2007/12/27
发站内信
发表于:2010/2/16 8:53:55
#5楼
期待高手的出现
16067
xilinxue
文章数:2441
年度积分:50
历史总积分:16067
注册时间:2007/12/27
发站内信
发表于:2010/3/3 7:24:29
#6楼
这个也太长了点吧

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

62.4004