#include <stdio.h>
#include <math.h>
#define PI 3.1415926535
#define alf PI/9
#define T 2 // кол-во передатчиков
#define R 4 // колво приемников
// массив входных данных действительной части
float P[T][R]=
{
{20185.6307892704, 26157.9028131346, 968.811215301280, 7356.27944215395}, // заполняем данным для отладки
{7333.36415682048, 5156.84985013773, 26961.4877099863, 23874.3048617488} // Массив квадратур
};
// массив входных данных мнимой части
float Q[T][R]=
{
{10594.1080977662, 3197.26498682182, 118.417221734142, 3860.82656624133},
{6180.55439712540, 1516.42541384513, 437.184282013782, 7020.48802706079}
};
//массив данных
const float b[4][4]=
{
{0.75, 0.50, -0.25, 0.00},
{0.25, 0.50, 0.25, 0.00},
{0.00, 0.25, 0.50, 0.25},
{0.00, -0.25, 0.50, 0.75}
};
float At0[R]={2.98576190768632, 1.84255182961598, 1.07631339396699, 0.687046600739365}; //
float At[R];
float Ph[R];
int s=0;
unsigned char i,k;
int main(void)
{
for (i=0;i<R;i++)
{
Ph[i]=0;
At[i]=-At0[i];
// printf("%f\n",At[i];
s=1;
for (k=0;k<R;k++)
{
if (b[i][k]!=0)
if ((P[0][k]==0 && Q[0][k]==0) || (P[1][k]==0 && Q[1][k]==0))
{
Ph[i]=1e999;
At[i]=1e999;
}
else
{
Ph
[i
]=Ph
[i
]+s
*b
[i
][k
]*atan2(Q
[0][k
]*P
[1][k
] - Q
[1][k
]*P
[0][k
] , P
[0][k
]*P
[1][k
] + Q
[0][k
]*Q
[1][k
]); At
[i
]=At
[i
]-s
*b
[i
][k
]*0.5*log( (P
[0][k
]*P
[0][k
] + Q
[0][k
]*Q
[0][k
]) / (P
[1][k
]*P
[1][k
] + Q
[1][k
]*Q
[1][k
]) ); }
s=-s;
}
}
for (i
=0;i
<R
;i
++) {printf("%f,", Ph
[i
]); } for (i
=0;i
<R
;i
++) {printf("%f,", At
[i
]); }
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxtYXRoLmg+CgogI2RlZmluZSBQSSAzLjE0MTU5MjY1MzUKICNkZWZpbmUgYWxmIFBJLzkKICNkZWZpbmUgVCAyCQkvLyDQutC+0Lst0LLQviDQv9C10YDQtdC00LDRgtGH0LjQutC+0LIKICNkZWZpbmUgUiA0CQkvLyDQutC+0LvQstC+INC/0YDQuNC10LzQvdC40LrQvtCyCgovLyDQvNCw0YHRgdC40LIg0LLRhdC+0LTQvdGL0YUg0LTQsNC90L3Ri9GFINC00LXQudGB0YLQstC40YLQtdC70YzQvdC+0Lkg0YfQsNGB0YLQuAogZmxvYXQgUFtUXVtSXT0KICB7CiAgICAgezIwMTg1LjYzMDc4OTI3MDQsIDI2MTU3LjkwMjgxMzEzNDYsIDk2OC44MTEyMTUzMDEyODAsIDczNTYuMjc5NDQyMTUzOTV9LCAgICAgICAgICAgICAvLyDQt9Cw0L/QvtC70L3Rj9C10Lwg0LTQsNC90L3Ri9C8INC00LvRjyDQvtGC0LvQsNC00LrQuAogICAgIHs3MzMzLjM2NDE1NjgyMDQ4LCA1MTU2Ljg0OTg1MDEzNzczLCAyNjk2MS40ODc3MDk5ODYzLCAyMzg3NC4zMDQ4NjE3NDg4fSAgICAgICAgICAgICAgIC8vICAgICAgINCc0LDRgdGB0LjQsiDQutCy0LDQtNGA0LDRgtGD0YAKICB9OwoKLy8g0LzQsNGB0YHQuNCyINCy0YXQvtC00L3Ri9GFINC00LDQvdC90YvRhSDQvNC90LjQvNC+0Lkg0YfQsNGB0YLQuApmbG9hdCBRW1RdW1JdPQogIHsKICAgICB7MTA1OTQuMTA4MDk3NzY2MiwgMzE5Ny4yNjQ5ODY4MjE4MiwgMTE4LjQxNzIyMTczNDE0MiwgMzg2MC44MjY1NjYyNDEzM30sCiAgICAgezYxODAuNTU0Mzk3MTI1NDAsIDE1MTYuNDI1NDEzODQ1MTMsIDQzNy4xODQyODIwMTM3ODIsIDcwMjAuNDg4MDI3MDYwNzl9CiAgfTsKLy/QvNCw0YHRgdC40LIg0LTQsNC90L3Ri9GFIApjb25zdCBmbG9hdCBiWzRdWzRdPQogIHsJCQkJCgl7MC43NSwgIDAuNTAsICAgLTAuMjUsIDAuMDB9LAoJezAuMjUsICAwLjUwLAkwLjI1LCAgMC4wMH0sCgl7MC4wMCwJMC4yNSwJMC41MCwgIDAuMjV9LAoJezAuMDAsICAtMC4yNSwgIDAuNTAsICAwLjc1fQogIH07CgpmbG9hdCBBdDBbUl09ezIuOTg1NzYxOTA3Njg2MzIsIDEuODQyNTUxODI5NjE1OTgsIDEuMDc2MzEzMzkzOTY2OTksIDAuNjg3MDQ2NjAwNzM5MzY1fTsgICAgLy8KZmxvYXQgQXRbUl07CmZsb2F0IFBoW1JdOwppbnQgcz0wOwp1bnNpZ25lZCBjaGFyIGksazsKCgppbnQgbWFpbih2b2lkKQp7CmZvciAoaT0wO2k8UjtpKyspCgl7CgkJUGhbaV09MDsKCQlBdFtpXT0tQXQwW2ldOwoJLy8JcHJpbnRmKCIlZlxuIixBdFtpXTsJCQoJCXM9MTsKCQlmb3IgKGs9MDtrPFI7aysrKQoJCXsKCQkJaWYgKGJbaV1ba10hPTApICAgCgkJCQlpZiAgKChQWzBdW2tdPT0wICYmIFFbMF1ba109PTApIHx8IChQWzFdW2tdPT0wICYmIFFbMV1ba109PTApKQoJCQkJCXsKCQkJCQkJUGhbaV09MWU5OTk7CQoJCQkJCQlBdFtpXT0xZTk5OTsKCQkJCQl9CgkJCQllbHNlICAKCQkJCQl7CgkJCQkJCVBoW2ldPVBoW2ldK3MqYltpXVtrXSphdGFuMihRWzBdW2tdKlBbMV1ba10gLSBRWzFdW2tdKlBbMF1ba10gLCBQWzBdW2tdKlBbMV1ba10gKyBRWzBdW2tdKlFbMV1ba10pOwoJCQkJCQlBdFtpXT1BdFtpXS1zKmJbaV1ba10qMC41KmxvZyggKFBbMF1ba10qUFswXVtrXSArIFFbMF1ba10qUVswXVtrXSkgLyAoUFsxXVtrXSpQWzFdW2tdICsgUVsxXVtrXSpRWzFdW2tdKSApOwoJCQkJCX0JCgkJCXM9LXM7CQoJCX0KCQkKCX0KCmZvciAoaT0wO2k8UjtpKyspIHtwcmludGYoIiVmLCIsIFBoW2ldKTsgICB9CmZvciAoaT0wO2k8UjtpKyspIHtwcmludGYoIiVmLCIsIEF0W2ldKTsgICB9CgkKCnJldHVybiAwOwkKfQo=