我想在labview中实现自己编的c语言功能,请问用什么方法比较合适,不太明白,希望各位大侠指导一下谢谢!!!!
我知道了Xy的值,然后用二分法求的Z的值。
#include<STDIO.H>
#include<STDLIB.H>
#include<MATH.H>
#include<ASSERT.H>
float f(float x,float y, float z);
float t(float x, float y);
float f(float x, float y, float z) //定义导通角、触发角、功率因素角
{
return sin(x+y-z)-sin(y-z)*exp(-x*cos(z)/sin(z));
}
main()
{
float x,y,z,a,b,L;
double p;
printf("input x y:");
scanf("%f,%f",&x,&y);
x=x*3.1415926/180.0;
y=y*3.1415926/180.0;
a=20*3.1415926/180;
b=80*3.1415926/180;
L=0.00001;
if(fabs(f(x,y,a))<=L)
{
p= a;
return;
}
else if (fabs(f(x,y,b))<=L)
{
p=b;
return ;
}
else if (f(x,y,a)*f(x,y,b)>0)
{
return ;
}
else
{
while(fabs(b-a)>L)
{
double c=(a+b)/2;
if(f(x,y,a)*f(x,y,c)<0)
b=c;
else
a=c;
}
p=(a+b)*180/6.2831852;
//turn (a+b)/2;
}
printf("power factor: %f\n",p);
return 0;
} |