Transformação linear
Publicado por Tiago Bittencourt Nazare 13/09/2006
[ Hits: 6.212 ]
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");
}
Automato Finito Determinístico
Fila com Lista Encadeada Descritor/Cabeçalho
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
[Resolvido] VirtualBox can't enable the AMD-V extension
Como verificar a saúde dos discos no Linux
Como instalar , particionar, formatar e montar um HD adicional no Linux?
Como automatizar sua instalação do Ubuntu para desenvolvimento de software.
Fiz uma pergunta no fórum mas não consigo localizar (13)
Quais os códigos mais dificeis que vcs sabem fazer? (2)
Não consigo instalar distro antiga no virtualbox nem direto no hd (7)
Servidor Ubuntu 24.04 HD 500 não tenho espaço na \home\adminis... [RES... (8)
Dá para criar um bom jogo usando a linguagem de programação C? [RESOLV... (1)









