Transformação linear
Publicado por Tiago Bittencourt Nazare 13/09/2006
[ Hits: 6.252 ]
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");
}
METODO DA FALSE POSIÇÃO E BISSEÇÃO em "C"
Gentoo: detectando impressoras de rede e como fixar uma impressora por IP
Como o GNOME conseguiu o feito de ser preterido por outras interfaces gráficas
Gentoo binário em 2026: UEFI, LUKS, Btrfs e Systemd
Trabalhando Nativamente com Logs no Linux
Jogando Daikatana (Steam) com Patch 1.3 via Luxtorpeda no Linux
Por que sua empresa precisa de uma PKI (e como automatizar EMISSÕES de certificados via Web API)
Instalando NoMachine no Gentoo com Systemd (acesso Remoto em LAN)
Gentoo: Trocando wpa_supplicant pelo iwd no NetworkManager (Systemd)
Necessário autenticar ao imprimir - Ubuntu X Windowns (1)
O que houve com slackware ??? (11)
O Free Download Manager não abre no Fedora 43 KDE Plasma (2)









