 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Pedro Invitado
|
Publicado: Vie 09 Jul, 2004 11:36 am Asunto: Fórmulas matemáticas |
|
|
Sencillo, cómo podría hacer la siguiente operación en el builder 5 , q librerias incluyo, y como lo hago?
c(u,v) 7 7 2*x+1 2*y+1
F(u,v) = --------- * sum sum f(x,y) * cos (------- *u*PI)* cos (------ *v*PI)
4 x=0 y=0 16 16
u,v = 0,1,...,7 ;
{ 1/2 when u=v=0
c(u,v) = { 1/sqrt(2) when u=0, v!=0
{ 1/sqrt(2) when u!=0, v=0
{ 1 otherwise |
|
| Volver arriba |
|
 |
Cerúleo Master


Registrado: 04 Ago 2003Mensajes: 332Ubicación: Santander, España
|
Publicado: Vie 09 Jul, 2004 11:49 am Asunto: |
|
|
Hola Pedro.
Menudo lío has montado. ¿Cuáles son las variables de la función: x-y o u-v? ¿Son dos funciones?
Escríbelas mejor y te echaremos una mano. Por cierto, tienen toda la pinta de ser funciones de Fourier bidimensionales.
Un saludo. _________________ Nunca digas "Es imposible" sin intentarlo antes. |
|
| Volver arriba |
|
 |
Pedro Invitado
|
Publicado: Vie 09 Jul, 2004 12:32 pm Asunto: |
|
|
no se pq se desplaza los numeradores y denominadores pero mira ciertamente se trata de la transformada DCT te escribo lo mejor q pueda la fórmula : ( si no la entiendes del todo con q me digas como se puede hacer el coseno el sumatorio ...etc me conformo ) Gracias.
F(u,v)=(C(u,v)/4)*sum(x=0..7)sum(y=0..7)(cos((2x+1)/16)*u*pi)* cos(2y..v)
u,v = 0,1,...,7
{ 1/2 when u=v=0
c(u,v) = { 1/sqrt(2) when u=0, v!=0
{ 1/sqrt(2) when u!=0, v=0
{ 1 otherwise |
|
| Volver arriba |
|
 |
mopa Cmdr

Registrado: 29 Jun 2004Mensajes: 145
|
Publicado: Vie 09 Jul, 2004 10:20 pm Asunto: |
|
|
existen dos includes basicamente para las funciones matematicas..
<math.h> y <Math.hpp>
Mira bien la ayuda tienen todo lo que necesitas.
Un saludo |
|
| Volver arriba |
|
 |
Cerúleo Master


Registrado: 04 Ago 2003Mensajes: 332Ubicación: Santander, España
|
Publicado: Dom 11 Jul, 2004 11:59 am Asunto: |
|
|
Hola Pedro.
Si no he interpretado mal tus fórmulas...
| Cita: | F(u,v)=(C(u,v)/4)*sum(x=0..7)sum(y=0..7)(cos((2x+1)/16)*u*pi)* cos(2y..v)
u,v = 0,1,...,7
{ 1/2 when u=v=0
c(u,v) = { 1/sqrt(2) when u=0, v!=0
{ 1/sqrt(2) when u!=0, v=0
{ 1 otherwise |
...creo que el código que buscas es algo así:
| Código: | // ****************** FUNCIÓN C(u,v): ******************
double C(int u,int v){
if(u==0&v==0)
return (1.0/2.0);
else if((u==0&v!=0)||(u!=0&v==0))
return 1.0/sqrt(2.0)
else
return 1.0;
}
//****************** FUNCIÓN F(u,v): ******************
double F(int u,intv){
int x,y;
double sum=0.0;
for(x=0;x<=7;x++)
for(y=0;y<=7;y++)
sum+=cos((2*x+1)/16.0*u*pi)*cos((2*y+1)/16.0*v*pi);
sum*=C(u,v)/4.0;
} |
Espero que sea algo así lo que querías.
Un saludo. _________________ Nunca digas "Es imposible" sin intentarlo antes. |
|
| Volver arriba |
|
 |
Invitado
|
Publicado: Dom 11 Jul, 2004 9:29 pm Asunto: |
|
|
No se como lo llevas, pero por si acaso da un vistazo a esta pagina,para temas de math es fenomenal.http://mathforum.org/mathed/index.html
Bueno a mi me ha funcionado,espero haberte ayudado |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|