Transformação linear
Publicado por Tiago Bittencourt Nazare 13/09/2006
[ Hits: 6.145 ]
Homepage: www.doctumcat.com.br/geranet
Verificar de um espaço vetorial R2 para R qualquer se existe transformação linear. Você digita as coordenadas de u e v, a equação e a constante. Verifica as duas condições e informa se é ou não uma transformação linear.
/* Tiago bittencourt
Verificar se eh transformação lienar
Espaço R2 para qualquer espaço*/
/* declaração de biblioteca */
#include <stdio.h>
#include <stdlib.h>
int main (void)
{
/* declaração das variáveis */
int x[10], y[10];
int vetux, vetuy, vetvx, vetvy, vetfx, vetfy;
int i, esp;
int tx[10], ty[10], txf[10];
int txvx[10], tyvy[10], txfu[10];
int txvxfv[10], tyvyfv[10], txfufv[10];
int fuv[10];
int k, xk, yk;
int kx1[10], kx2[10], kx1x[10], ktxfufv[10];
printf (" \n Vetores R2 para R qualquer \n ");
/* O usuario informa para qual espaço quer verificar */
printf (" \n Digite o espaco vetorial ==> ");
scanf ("%d",&esp);
/* O usuario informa as coordenadas x e y dos vetores u e v */
printf (" \n F(x,y) \n");
printf (" \n Digite os valores do vetor u \n");
printf (" \n Digite o valor de x ==> ");
scanf ("%d",&vetux);
printf (" \n Digite o valor de y ==> ");
scanf ("%d",&vetuy);
printf (" \n Digite os valores do vetor v \n");
printf (" \n Digite o valor de x ==> ");
scanf ("%d",&vetvx);
printf (" \n Digite o valor de y ==> ");
scanf ("%d",&vetvy);
/* Mostra os vetores u e v digitado */
printf (" \n Vetor u eh %d , %d ", vetux , vetuy);
printf (" \n ");
printf (" \n Vetor v eh %d , %d ", vetvx , vetvy);
vetfx=vetux+vetvx;
vetfy=vetuy+vetvy;
/* Mostra a soma de u + v */
printf (" \n \n F(u+v) ==> (%d, %d)", vetfx ,vetfy);
/* O usuário informa a equação */
for (i=1; i<=esp; i++)
{
printf (" \n \n O termo numero %d da equacao ", i);
printf (" \n \n Digite o valor de x ==> ");
scanf("%d",&x[i]);
printf (" \n Digite o valor de y ==> ");
scanf("%d",&y[i]);
printf (" \n \n ");
}
/* Verificando a primeira condição */
printf (" \n ******* A equacao ******** ");
printf (" \n \n ");
for (i=1; i<=esp; i++)
{
if (y[i]>=0)
printf (" %dx +%dy, ", x[i], y[i]);
else
printf (" %dx %dy, ", x[i], y[i]);
}
printf (" \n \n******* F(u+v) ******** \n\n");
printf (" \n \n F(u+v) ==> (%d, %d)\n", vetfx ,vetfy);
for (i=1; i<=esp; i++)
{
tx[i]=x[i]*vetfx;
ty[i]=y[i]*vetfy;
}
printf (" \n \n******* F(u+v) na equacao ******** \n \n ");
for (i=1; i<=esp; i++)
{
if (y[i]>=0)
txf[i]=tx[i]+ty[i];
else
txf[i]=ty[i]-tx[i];
printf ("%d ,",txf[i]);
}
for (i=1; i<=esp; i++)
{
txvx[i]=x[i]*vetvx;
tyvy[i]=y[i]*vetvy;
}
printf (" \n \n******* F(v) na equacao ******** \n \n ");
for (i=1; i<=esp; i++)
{
if (y[i]>=0)
txfu[i]=txvx[i]+tyvy[i];
else
txfu[i]=tyvy[i]-txvx[i];
printf ("%d ,",txfu[i]);
}
for (i=1; i<=esp; i++)
{
txvxfv[i]=x[i]*vetux;
tyvyfv[i]=y[i]*vetuy;
}
printf (" \n \n******* F(u) na equacao ******** \n \n ");
for (i=1; i<=esp; i++)
{
if (y[i]>=0)
txfufv[i]=txvxfv[i]+tyvyfv[i];
else
txfufv[i]=tyvyfv[i]-txvxfv[i];
printf ("%d ,",txfufv[i]);
}
printf (" \n \nSomando os vetores u+v depois de jogados na equacao \n\n");
for (i=1; i<=esp; i++)
{
fuv[i]=txfu[i]+txfufv[i];
printf ("%d,", fuv[i]);
}
printf (" \n \nComparando F(u+v) com F(u) + F(v) \n");
for (i=1; i<=esp; i++)
{
if (fuv[i]==txf[i])
printf (" \n %d = %d ", fuv[i] , txf[i]);
else
printf (" \n Condicao nao aceita \n");
}
/* Verificando a segunda condição */
printf (" \n \n Digite o valor do escalar ==>");
scanf ("%d",&k);
printf (" \n F(k*u) = k*F(u) \n ");
printf (" \n F(k*u) = ");
xk=k*vetux;
yk=k*vetuy;
printf ("%d,%d", xk , yk);
for (i=1; i<=esp; i++)
{
kx1[i]=x[i]*xk;
kx2[i]=y[i]*yk;
}
printf (" \n \n******* k*F(u) na equacao ******** \n \n ");
for (i=1; i<=esp; i++)
{
if (y[i]>=0)
kx1x[i]=kx1[i]+kx2[i];
else
kx1x[i]=kx2[i]-kx1[i];
printf ("%d ,",kx1x[i]);
}
printf (" \n \n******* k*F(u)******** \n \n ");
for (i=1; i<=esp; i++)
{
if (y[i]>=0)
ktxfufv[i]=2*(txvxfv[i]+tyvyfv[i]);
else
ktxfufv[i]=2*(tyvyfv[i]-txvxfv[i]);
printf ("%d ,",ktxfufv[i]);
}
printf (" \n \n ");
printf (" \n \n Verificando \n \n ");
for (i=1; i<=esp; i++)
{
if(kx1x[i]==ktxfufv[i])
printf (" \n %d = %d ", kx1x[i] ,ktxfufv[i]);
else
printf (" \n Condicao nao aceita \n");
}
printf (" \n \n \n ");
/* Caso rode no linux (compilador gcc)
esta linha tem de ser escluída */
/* Para windows o programa não dever
ser alterado */
system ("pause");
}
Retirar caracteres de uma frase
Bom treino, muito completo: classificação de atletas
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
Linux é a solução para o fim do Windows10? (6)
Assinador JNLP do Site Portal da Nota Fiscal Eletrônica (0)
Programa fora de escala na tela do pc (29)









