Я пытаюсь интегрировать пару уравнений, но программа не скомпилируется. Появившееся сообщение об ошибке говорит: «слишком много аргументов функции pow»Состав функций «pow» в C
Я покажу проблематичную часть кода, а затем задаю два конкретных вопроса.
#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) ;
Итак ... проблема в dv's от 6 до 11. вопросов являются следующие:
Это нормально, чтобы использовать функцию «POW» в данном случае, или это только что определен для постоянных оснований? В случае, если да, это почти наверняка, тогда появляется следующее сомнение: Как я могу создать функцию pow с другим?
Для ясности, это то, что я хочу выразить, используя состав «POW» функций:
Обратите внимание, что there's по крайней мере один способ, чтобы обойти эту проблему: что должен написать квадратные члены из базы в виде A * A = A вместо квадратов. Учитывая тот факт, что база может быть поднята до нецелочисленной власти, я считаю, что решение общего дела по-прежнему очень важно.
Если я не считаю, что на моем миниатюрном экране планшета неправильно, то вложенный вызов pow() передается по 3 аргумента. –
Должно ли '-1,5' быть' -1,5'? У вас не может быть 3 аргумента функции 'pow'. – thelaws
Да, это была опечатка. Thx для вашего времени –