2つの方程式を統合しようとしていますが、プログラムがコンパイルできません。表示されるエラーメッセージには、「関数powの引数が多すぎます」C言語での "pow"関数の構成
コードの問題の部分が表示され、次に2つの具体的な質問が表示されます。
#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) ;
だから... ...問題は、6から11にdv'sにある質問は次のとおりです。
が、それはこの場合には、「POW」機能を使用しても大丈夫ですか、それはあります一定の基底に対してのみ定義されていますか? 答えが「はい」(これはほとんど確信しています)の場合、次の疑いが表示されます。 別のものでpow関数を作成するにはどうすればよいですか?
明確にするために、これは私が「POW」機能の組成物を用いて表現したいものです。この問題を回避行くための少なくとも一つの方法をthere's
注:それは書くことですA * A = Aの形の基底からの2乗項は、powを使用する代わりに2乗されます。ベースが非整数の力に上げることができるという事実を考えると、私の意見は、一般的なケースの解決策は依然として非常に重要であるということです。
小さなタブレット画面で間違ったparensを数えるのでなければ、包囲しているpow()コールに3つの引数が渡されています。 –
'-1.5'は' -1.5'でしょうか? 'pow'関数に3つの引数を与えることはできません。 – thelaws
はい、実際にはタイプミスでした。あなたの時間のためのThx –