Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“的组成”;“战俘”;C语言中的函数_C_Integration_Pow_Function Composition - Fatal编程技术网

“的组成”;“战俘”;C语言中的函数

“的组成”;“战俘”;C语言中的函数,c,integration,pow,function-composition,C,Integration,Pow,Function Composition,我正试图整合几个方程式,但程序无法编译。出现的错误消息是:“函数pow的参数太多” 我将展示代码中有问题的部分,然后提出两个具体问题 #include <stdio.h> #include <math.h> struct Par{ double gamma1, gamma2; } aa; void ecuaciones(int n, double v[], double dv[], double t){ dv[0]=v[6] ; d

我正试图整合几个方程式,但程序无法编译。出现的错误消息是:“函数pow的参数太多”

我将展示代码中有问题的部分,然后提出两个具体问题

 #include <stdio.h> 
 #include <math.h>


 struct Par{
   double gamma1, gamma2;
 } aa;



 void ecuaciones(int n, double v[], double dv[], double t){
 dv[0]=v[6]   ; 

 dv[1]=v[7]   ;

 dv[2]=v[8]   ;

 dv[3]=v[9]   ; 

 dv[4]=v[10]   ; 

 dv[5]=v[11]   ; 

 dv[6]= aa.gamma1*(v[3]-v[0])*pow( (pow(v[0]-v[3], 2)+pow( v[1]-v[4], 2)+pow( v[2]-v[5], 2)), -1,5)  ; 

 dv[7]= aa.gamma1*(v[4]-v[1])*pow( (pow(v[0]-v[3], 2)+pow( v[1]-v[4], 2)+pow( v[2]-v[5], 2)), -1,5)    ; 

 dv[8]= aa.gamma1*(v[5]-v[2])*pow( (pow(v[0]-v[3], 2)+pow( v[1]-v[4], 2)+pow( v[2]-v[5], 2)), -1,5)   ; 

 dv[9]=  -aa.gamma2*(v[3]-v[0])*pow( (pow(v[0]-v[3], 2)+pow( v[1]-v[4], 2)+pow( v[2]-v[5], 2)), -1,5)  ; 

 dv[10]=  -aa.gamma2*(v[4]-v[1])*pow( (pow(v[0]-v[3], 2)+pow( v[1]-v[4], 2)+pow( v[2]-v[5], 2)), -1,5)  ; 

 dv[11]=  -aa.gamma2*(v[5]-v[2])*pow( (pow(v[0]-v[3], 2)+pow( v[1]-v[4], 2)+pow( v[2]-v[5], 2)), -1,5) ; 
#包括
#包括
结构标准杆{
双gamma1,gamma2;
}aa;
无效电子货币(整数n,双v[],双dv[],双t){
dv[0]=v[6];
dv[1]=v[7];
dv[2]=v[8];
dv[3]=v[9];
dv[4]=v[10];
dv[5]=v[11];
dv[6]=aa.gamma1*(v[3]-v[0])*pow((pow(v[0]-v[3],2)+pow(v[1]-v[4],2)+pow(v[2]-v[5],2)),-1,5);
dv[7]=aa.gamma1*(v[4]-v[1])*pow((pow(v[0]-v[3],2)+pow(v[1]-v[4],2)+pow(v[2]-v[5],2)),-1,5);
dv[8]=aa.gamma1*(v[5]-v[2])*pow((pow(v[0]-v[3],2)+pow(v[1]-v[4],2)+pow(v[2]-v[5],2)),-1,5);
dv[9]=-aa.gamma2*(v[3]-v[0])*pow((pow(v[0]-v[3],2)+pow(v[1]-v[4],2)+pow(v[2]-v[5],2)),-1,5);
dv[10]=-aa.gamma2*(v[4]-v[1])*pow((pow(v[0]-v[3],2)+pow(v[1]-v[4],2)+pow(v[2]-v[5],2)),-1,5);
dv[11]=-aa.gamma2*(v[5]-v[2])*pow((pow(v[0]-v[3],2)+pow(v[1]-v[4],2)+pow(v[2]-v[5],2)),-1,5);
所以…问题是dv从6到11。问题如下:

在这种情况下使用“pow”函数可以吗,还是仅为常量基数定义? 如果答案是肯定的(我几乎可以肯定),那么就会出现以下疑问: 如何将pow函数与另一个函数组合

为了清楚起见,我想用“pow”函数的组合来表达以下内容:


请注意,至少有一种方法可以解决这个问题:那就是以A*A=A的平方形式写出基数的平方项,而不是使用pow。鉴于基数可以提升为非整数次幂,我的观点是,一般情况下的解决方案仍然非常重要。

可以使用
pow
fu在这种情况下,这是一个错误

收到错误是因为外部
pow
函数各有三个参数,而
pow
只接受两个参数

pow( (pow(v[0]-v[3], 2)+pow( v[1]-v[4], 2)+pow( v[2]-v[5], 2)), -1,5)
简化为

pow(some_number, -1, 5)

因此,这需要修正,以便
pow
只有一个基数和一个指数。

将所有
-1,5
更改为
-1.5
。我假设您正在尝试计算3/2的幂次。

除非我在我的微型平板电脑屏幕上计算的帕伦斯数错了,即封装的pow()调用正在传递3个参数。如果
-1,5
-1.5
?您不能为
pow
函数提供3个参数。是的,确实是一个输入错误。为您的时间修复了它。谢谢!愚蠢的输入错误…请注意,您可以将
pow(n,2)
简化为
double sqr(n){return n*n;}
,然后得到
pow(sqr(v[0]-v[3])+sqr(v[1]-v[4])+sqr(v[2]-v[5]),-1.5)
。还要注意
pow(n,-1.5)
相当于
1.0/(n*sqrt(n))
。哦,我明白了……事实上,如果你检查我上传的图像,它应该是3/2=1.5,这是一个打字错误。@Gato Mazzei不希望在帖子中使用指向场外URL的链接。请在此处发布相关数据。