Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

nbento.neves

Algoritmo Simplificar Equação

Mensagens Recomendadas

nbento.neves

Viva,

Já coloquei esta duvida na secção do java pois é em java que estou a desenvolver este método. Mas infelizmente deparei-me com uma duvida que ainda não consegui resolver. Um dos membros do P@P deu-me um exemplo de como pode ser feito isto e até pareceu dar resultado. Estou a escrever este tópico para saber a vossa opinião. "O tempo é pequeno e tenho que me decidir como fazer"  :cheesygrin:

O Tópico esta em: http://www.portugal-a-programar.pt/index.php?showtopic=49127

A dúvida é a seguinte:

Estou a tentar fazer um método para simplificar uma equação de um plano "alfa".

A ideia é a seguinte:

Plano "alfa": 7(x-5)-2.2(y-4)+1/2(z-3)=0

Isto pode ser simplificado e fica 7x-35-2.2y+8.8+1/2z-3/2=0 <-> 7x-2.2y+1/2z-227/10=0

Correcto???  🤔


A ideia de um membro do P@P foi:

Hmm... sugeria o seguinte, mas é capaz de dar algum trabalho...

1. criar uma estrutura (árvore?) para a expressão/expressões matemáticas

2. criar estratégias/operações de avaliação das expressões, por exemplo:

Adicionar/Subtrair um Determinado Valor a Ambos os Membros da Equação

Multiplicar/Dividir Ambos os Membros da Equação por um Determinado Valor

Realizar Multiplicação Distributiva

Fatoração

Permutar um Membro com o Outro

Isolar Uma Variável

3. criar método que avalie a expressão utilizando uma operação (2), gerando uma nova estrutura

4. criar um algoritmo que permita repetir várias vezes o passo 3 até chegar a uma solução pre-definida, ou mostrar todas as soluções...

O que vos parece?  :D

Alguma sugestão?  🤔

Muito Obrigado pelo tempo perdido com a leitura deste tópico

Cumprimentos, Nuno Neves

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
KTachyon

A sugestão tem lógica. Claro que há ferramentas e ferramentas para resolver esse problema. Fazer o parsing deste tipo de expressões à mão em Java é capaz de ser chato. Eu utilizaria Lex/Yacc para resolver isto, que é precisamente para estas coisas que essas ferramentas existem :D

De qualquer forma, se precisas de desenvolver isso em Java, é perfeitamente possível, e, apesar de ser chato de fazer, a solução descrita deverá funcionar (pelo menos da forma como eu estou a interpretar o que o taviroquai sugeriu, sim, funciona).


“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
taviroquai

Viva,

A solução que sugeri é genérica e pretende resolver qualquer equação; é capaz de faltarem muitas operações no ponto 2 e nem sei bem no ponto 4 quais os melhores algoritmos para isto... talvez algoritmos de optimização...

Mas se o teu problema é especificamente só para resolver esses 3 passos para essa equação, então será mais simples implementares o ponto 1, no ponto 2, apenas as operações necessárias (2 operações) para chegar á ultima expressão e está feito! :D

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
nbento.neves

Este trabalho é para um projecto da faculdade. Ainda estou no primeiro ano e sinceramente acho que só podemos mesmo usar java. Só não entendo como é que eles podem para fazer uma coisa destas se existem alunos que nunca tiveram programação. Ou então sou eu que estou a interpretar mal o enunciado  :wallbash:

Muito Obrigado KTachyon pela resposta  :D nunca tinha ouvido falar em Lax/Yacc  🤔 vou ver se investigo e estudo um pouco sobre isso para aprender mais umas coisinhas, mesmo que não tenha que utilizar esse tipo de programação no projecto.

Mais uma vez muito Obrigado.

Cumprimentos, Nuno Neves

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Warrior

O objectivo é exactamente simplificar equações ou é simplificar ESSA equação? É um problema bastante diferente.

Dado ser para o primeiro ano, diria ser o primeiro caso, mas confirma sff.

Quando digo ESSA quero dizer equações polinomiais com várias variáveis.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
nbento.neves

O objectivo é exactamente simplificar equações ou é simplificar ESSA equação? É um problema bastante diferente.

Dado ser para o primeiro ano, diria ser o primeiro caso, mas confirma sff.

Quando digo ESSA quero dizer equações polinomiais com várias variáveis.

Parece-me ser para equações polinomiais com várias variáveis. Já vi que respondeste a minha duvida colocada na secção de Matemática (http://www.portugal-a-programar.pt/index.php?showtopic=49153).

Exacto, esta matéria é dada no 11º ano o problema é que venho de matemática b, e nunca na vida dei Geometria Analítica :wallbash:

Por isso é que estou nestas ferias a matar-me a estudar isto e a ver possíveis soluções. Sem ajuda de um professor esta a ser bastante difícil entender certas coisas.

Obrigado pelas respostas. Cumprimentos

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.