Todos os comandos são inseridos no campo ENTER, o separador de comandos é um símbolo; (ponto e vírgula). Após inserir o comando, você deve pressionar a tecla Enter 2 EM wxMaxima você precisa pressionar Shift + Enter. para processá-lo e gerar o resultado. Em versões anteriores Máxima e algumas de suas conchas (por exemplo, xMaxima) a presença de ponto e vírgula após cada comando é estritamente necessária. Terminar a entrada com um símbolo $ (em vez de ponto e vírgula) permite calcular o resultado do comando inserido, mas não o exibe na tela. Caso a expressão precise ser exibida e não calculada, ela deve ser precedida do sinal " (aspas simples). Mas este método não funciona quando a expressão tem um valor explícito, por exemplo, a expressão é substituída por um valor igual a zero.
Duas aspas simples consecutivas aplicadas a uma expressão em uma string de entrada fazem com que a string de entrada seja substituída pelo resultado da avaliação da expressão de entrada.
Exemplo:
(%i3) sqrt(aa)+bb;
(%i4) "(sqrt(aa)+bb);
Após entrar, cada comando recebe um número de série. No exemplo considerado, os comandos inseridos são numerados de 1 a 5 e designados de acordo (%i1), (%i2), etc.
O resultado do cálculo também possui um número de série, por exemplo etc., onde eu- abreviatura do inglês. entrada (entrada) e Ó- Inglês saída. Este mecanismo permite evitar a repetição do registro completo dos comandos já executados em cálculos subsequentes, por exemplo (%i1)+(%i2) significará adicionar à expressão do primeiro comando a expressão do segundo e posterior cálculo do resultado . Você também pode usar números de resultados de cálculo, por exemplo
. Maxima possui uma notação especial para o último comando executado - .
Exemplo:
Calcule o valor da derivada de uma função :
(%i1) diferença(x^2*exp(-x),x);
(%i2)f(x):=""%;
As aspas duplas antes do caractere da operação anterior permitem substituir esse caractere por um valor, ou seja, string de texto obtida como resultado da diferenciação.
Outro exemplo (com conteúdo óbvio):
Regras para inserir números em Máxima exatamente o mesmo que para muitos outros programas semelhantes. As partes inteiras e fracionárias das frações decimais são separadas pelo símbolo de ponto. Os números negativos são precedidos por um sinal de menos. O numerador e o denominador das frações ordinárias são separados pelo símbolo / (barra). Observe que se o resultado de uma operação for uma determinada expressão simbólica, mas você precisar obter um valor numérico específico na forma de uma fração decimal, o uso do sinalizador permitirá que você resolva esse problema. Em particular, permite passar de frações ordinárias para decimais. A conversão para a forma de ponto flutuante também é realizada pela função.
(%i2) 3/7+5/3, flutuante;
(%i3) 3/7+5/3, número;
(%i4) float(5/7);
Notação de operações aritméticas em Máxima não é diferente da representação clássica: + , - , * , /. A exponenciação pode ser denotada de várias maneiras: ^, ^^, **. Extrair uma raiz de grau n é escrito como grau. A operação de encontrar um fatorial é indicada por um ponto de exclamação, por exemplo 5!. Para aumentar a prioridade de uma operação, como na matemática, são usados parênteses: (). A lista de operadores aritméticos e lógicos básicos é fornecida na tabela. 2.1 e tabela. 2.2 abaixo.
< | operador de comparação menor que |
> | operador de comparação maior que |
<= | operador de comparação menor ou igual a |
>= | operador de comparação maior ou igual a |
# | operador de comparação diferente |
= | operador de comparação é igual |
e | operador lógico e |
ou | operador lógico ou |
não | operador lógico não |
Apesar do seu tamanho modesto, o Maxima é um produto altamente inteligente, capaz de resolver problemas analíticos complexos. Como a maioria dos sistemas matemáticos computacionais, é um interpretador de comandos que interage com o usuário com base em perguntas e respostas. Portanto, a área de trabalho do sistema é uma sequência de células de entrada/saída (Fig. 1), marcadas com um rótulo (C para entrada do usuário, D para resultado) e um número. Essa notação fornece um mecanismo de link conveniente que permite inserir apenas o nome da célula desejada para acessar um dos resultados anteriores.
Operações Numéricas
Arroz. 1 |
Para cálculos com alta precisão, Maxima suporta operadores especiais que permitem calcular qualquer valor com uma grade de bits arbitrária (dentro dos limites, é claro, das capacidades do hardware). Isto também se aplica a números inteiros: seu valor no sistema não é limitado por software. Além disso, Maxima possui uma velocidade bastante decente de trabalho com aritmética de alta precisão, o que permite realizar cálculos com números inteiros de dezenas e centenas de milhares de dígitos com desempenho ao nível dos melhores sistemas comerciais.
Note que o Maxima adota uma abordagem sensível a maiúsculas e minúsculas para expressões de entrada. Se sua aparência estiver próxima do nome de uma função integrada, o programa usará esta função. De acordo com esta regra Pecado, pecado E PECADO significa a mesma coisa. No entanto, variáveis e funções de usuário diferenciam maiúsculas de minúsculas - X E x pode representar objetos diferentes.
O sistema também suporta aritmética complexa e uma série de constantes matemáticas conhecidas.
Operações Analíticas
A capacidade de realizar operações e transformações analíticas complexas foi, obviamente, a principal característica do produto que garantiu o sucesso do Maxima entre os especialistas. Isto inclui operações de análise padrão (diferenciação, integração, cálculo de limites), representação de expressões em forma expandida, expansão de funções em séries, simplificações, transformações, substituições, etc. Assim, é possível encontrar derivadas parciais e ordinárias de qualquer ordem, integrais podem ser ordinárias e múltiplas, o infinito é permitido como limites de integração, etc. Como sempre, o programa se esforçará para representar todos os valores calculados em um forma fechada (exata).
Se não for possível obter um resultado inequívoco para a expressão inserida, o programa fará perguntas importantes em linguagem quase natural (inglês). Por exemplo, ao tentar encontrar a integral da função x n Maxima irá esclarecer se é igual n+1 zero (como se sabe, o resultado depende significativamente disso). Porém, tais questões podem ser evitadas se você especificar antecipadamente, por meio de operadores especiais, a possibilidade de alteração dos parâmetros e variáveis utilizados.
A ferramenta analítica também suporta operações algébricas com polinômios (divisão de dois polinômios, cálculo do máximo divisor comum, fatoração) e expressões trigonométricas. Para aplicações práticas, as ferramentas integradas ao sistema para resolução de equações e sistemas de diversos tipos - algébricos, transcendentais e diferenciais - desempenham um papel importante.
Operações de álgebra linear
Maxima implementa um mecanismo de operações de matriz vetorial muito avançado que permite cálculos algébricos complexos. Matrizes são introduzidas pelo operador universal matriz, então as operações lineares usuais são aplicadas a eles - adição, subtração, multiplicação por um escalar (para escrevê-los, use notação matemática natural como A+B), bem como transposição, inversão, cálculo de determinantes, características espectrais, etc.
Capacidades gráficas
Um moderno sistema matemático computacional de tipo universal deve ter desenvolvido capacidades de visualização de dados. Eles também estão disponíveis no Maxima. Os gráficos do sistema são construídos usando duas funções - PLOT2D (bidimensional, Fig. 2) e PLOT3D (tridimensional, Fig. 3). Apesar dessa escolha relativamente limitada, essas ferramentas permitem exibir gráficos de diferentes tipos em um plano e no espaço com configurações bastante precisas - usando operadores especiais ou argumentos de função, você define o número de nós da grade nos quais o gráfico necessário é construído, dados gamas, cores e outras características. Além disso, você pode usar configurações interativas para alterar rapidamente a espessura das linhas, girar uma superfície tridimensional, etc. A escolha dos formatos de exportação do Maxima é muito restrita: os desenhos no programa são salvos, na verdade, apenas em PostScript. Em geral, as ferramentas visuais do sistema são relativamente modestas, embora possibilitem a obtenção de alguns tipos de gráficos de alta qualidade.
Ferramentas de programação
Como qualquer sistema matemático computacional, Maxima permite criar programas complexos e utilizá-los em problemas que podem ser difíceis e ineficientes de resolver usando a linha de comando.
No caso mais simples, uma função personalizada é definida diretamente na linha de comando
MinhaFunc(x,y):=x^2+y^2; |
uma:4*você; a:%PI; a[x]:mistério; |
Em geral, Maxima é escrito em Lisp e suporta diretamente muitos dos seus comandos. Podemos dizer que Lisp é o núcleo do sistema e pode ser acessado durante a programação de “baixo nível”. No entanto, na maioria dos casos, isso não é necessário. Maxima fornece um número suficiente de ferramentas prontas que são muito mais fáceis de usar do que os operadores Lisp.
Se necessário, os programas são salvos em arquivos externos. Os comandos são escritos da mesma forma em que são inseridos no sistema, existem apenas alguns recursos para o design das funções;
Cuidando do usuário
Além da documentação disponível no site do produto, o pacote inclui uma introdução ao Maxima e um tutorial sobre o sistema (ambos em formato HTML) - uma descrição detalhada suficiente para uma introdução aprofundada de todas as suas capacidades. No entanto, durante uma sessão de trabalho com o sistema, muitas vezes é necessário obter ajuda online. Para isso o Maxima fornece uma função DESCREVER(), que exibe informações detalhadas sobre o operador de interesse do usuário (que é passado a ele como argumento). Não importa se você não se lembra da sintaxe completa, digite as primeiras letras do nome - e o Maxima retornará todos os nomes disponíveis começando com esta combinação de caracteres. Se esta informação não for suficiente, você pode usar a função EXEMPLO(), que oferecerá exemplos típicos. As funções da mesma série incluem DEMONSTRAÇÃO(), que executa programas a partir dos arquivos de demonstração fornecidos com o sistema. Gostaria de destacar um recurso do sistema como a capacidade de apresentar resultados de cálculos no formato TeX usando uma função chamada -- TEX().
conclusões
Esperamos que após este breve material, os leitores ainda tenham uma ideia do Maxima como um sistema verdadeiramente profissional projetado para resolver problemas numéricos e analíticos complexos, bem como apresentação gráfica de dados. Especialmente, como observado no início, o programa é forte em cálculos analíticos e aritmética de alta precisão. É claro que o Maxima está longe de ser perfeito e, em muitos aspectos, fica aquém de produtos comerciais como Maple e Mathematica. No entanto, isto não diminui as suas vantagens - o Maxima pode ser usado tanto para fins educacionais como como plataforma para desenvolvimentos científicos bastante sérios.
0
|
O sistema Maxima possui muitas funções integradas. Cada função integrada pode ser descrita na documentação contida no sistema de ajuda. A ajuda pode ser acessada usando a tecla de função F1. Maxima também possui uma função especial que fornece informações da documentação para palavras específicas. Uma versão abreviada desta chamada de função: ?? nome (Fig. 12). Aqui?? é o nome do operador e o argumento deve ser separado dele por um espaço. Operador?? exibe uma lista das seções de ajuda e nomes de funções que contêm o texto especificado, após a qual eles solicitam que você insira o número da seção ou a descrição da função que deseja consultar:
Figura 12. Chamando ajuda em um comando de interesse do sistema Maxima
Note que no sistema Maxima não existe uma distinção clara entre operadores e funções. Além disso, cada instrução é na verdade uma função.
Todas as funções e operadores do Maxima funcionam não apenas com números reais, mas também com números complexos. Os próprios números complexos são escritos em forma algébrica, com a unidade imaginária denotada por %i; isto é, na forma a+b*%i, onde A E b são as partes reais e imaginárias de um número, respectivamente.
Vamos considerar sintaxe de função básica Sistemas Maxima.
1. Operadores aritméticos: + , -, *, /, -->. Exemplo:
3. Operadores lógicos: e, ou, não. Exemplo:
4. Função para encontrar o fatorial de um número: !
O fatorial é dado na forma mais geral e é, na verdade, uma função gama (mais precisamente, x! = gama(x+1)), ou seja, é definido no conjunto de todos os números complexos, exceto os inteiros negativos. O fatorial de um número natural (e zero) simplifica automaticamente para o mesmo número natural.
5. A função para encontrar o semifatorial é: !! (o produto de todos os números pares (para um operando par) ou ímpares menores ou iguais ao dado).
6. Função de negação de igualdade sintática: # A notação a#b é equivalente a not a=b.
7. Função para encontrar o módulo de um número x: abs(x) O módulo é definido para todos os números complexos. Exemplo:
8. Função que retorna o sinal do número x: signum(x)
9. Funções que retornam os maiores e menores valores de determinados números reais: max(x1,...,xn) e min(x1,...,xn).
10. Algumas funções matemáticas integradas:
quadrado(x) | Raiz quadrada de x |
acos(x) | Arco cosseno do argumento x |
acosh (x) | Arco hiperbólico cosseno de x |
um berço (x) | Arcotangente do argumento x |
acoth(x) | Arco hiperbólico cotangente do argumento x |
acsc(x) | Arcossecante do argumento x |
acsch(x) | Arcossecante hiperbólico do argumento x |
assec(x) | Arco secante do argumento x |
asech(x) | Arco secante hiperbólico do argumento x |
asin(x) | Arco seno do argumento x |
asinh(x) | Arco seno hiperbólico do argumento x |
atan (x) | Arco tangente do argumento x |
atanh (x) | Arco tangente hiperbólico do argumento x |
cosh(x) | Cosseno hiperbólico do argumento x |
coto(x) | Cotangente hiperbólica do argumento x |
csc(x) | Cosecante do argumento x |
csch(x) | Cosecante hiperbólica do argumento x |
segundo(x) | Secante do argumento x |
sech(x) | Secante hiperbólica do argumento x |
pecado (x) | Seno de x |
sinh(x) | Seno hiperbólico de x |
bronzeado (x) | Tangente x |
tanh(x) | Tangente hiperbólica do argumento x |
registro(x) | Logaritmo natural de x |
exp(x) | Expoente x |
11. Funções para trabalhar com matrizes:
determinante – encontrar o determinante de uma matriz:
autovalores – encontrando os autovalores da matriz:
invertido– obtenção da matriz inversa:
menor– define o menor da matriz. O primeiro argumento é uma matriz, o segundo e
o terceiro são os índices de linha e coluna, respectivamente:
classificação– classificação da matriz:
submatriz– retorna a matriz obtida do original removendo
linhas e/ou colunas correspondentes. Os parâmetros são:
número de linhas a serem excluídas, matriz original, número de colunas a serem excluídas.
transpor– transposição de matriz:
A linguagem do sistema Maxima contém os operadores executáveis básicos que são encontrados em qualquer linguagem de programação. Vamos dar uma olhada neles.
Operadores de atribuição de valor (expressões de nomenclatura).
1. Operador “:” (operador para definir o valor de uma variável).
2. Operador “:=” (operador para especificar uma função do usuário).
3.Versões estendidas de operadores de atribuição e de atribuição de função, denotados respectivamente por:: e::=.
Usar o operador de conjunto de funções do usuário torna o trabalho muito mais fácil porque você pode consultá-lo pelo nome e calcular de maneira fácil e conveniente o valor da função em determinados pontos.
Exemplo: encontre o valor de uma função f (x,y)=cosx + pecado sim no ponto
Operador de loop. O operador de loop pode ser especificado de diversas maneiras. O método de especificação depende se é conhecido antecipadamente quantas vezes o corpo do loop precisa ser executado.
Exemplo: Configurando um loop para exibir os valores de uma variável A na faixa de -3 a 10 em passos de 5:
A próxima característica importante do sistema Maxima é trabalhando com listas e arrays.
Para gerar listas, use o comando makelist. Por exemplo, usando o comando
formamos uma lista chamada x, composta por dez elementos, cujos valores são encontrados pela fórmula.
Para formar arrays, use o comando array. Por exemplo, usando o comando,
formamos um array bidimensional A composto por 10 linhas e 5 colunas. Para preencher o array com elementos, usaremos um loop com um parâmetro. Por exemplo,
Para exibir os elementos do array na tela, você pode usar o comando:
Um array pode ser formado sem declaração prévia. No exemplo a seguir, formamos um array unidimensional x, composto por 5 elementos, cujos valores são calculados usando a fórmula x( eu)=pecado eu
A desvantagem de trabalhar com arrays é que os valores dos elementos do array são exibidos em uma coluna. É muito mais conveniente se os valores de uma matriz (bidimensional) forem exibidos na forma de uma matriz. Para esses fins, você pode usar o comando genmatrix. Por exemplo, para gerar uma matriz bidimensional (matriz), você deve especificar um comando no seguinte formato:
Vamos gerar o array resultante:
6. As transformações mais simples de expressões.
Por padrão, a função Autosimplificação está ativa no sistema Maxima, ou seja, o sistema tenta simplificar a própria expressão inserida sem qualquer comando.
Exemplo. Suponha que você precise encontrar o valor da seguinte expressão numérica:
Vamos definir a expressão de acordo com as regras da linguagem do sistema Maxima.
Como você pode ver, o sistema respondeu com o valor da expressão, embora não tenhamos especificado nenhum comando.
Como você pode forçar o sistema a produzir não o resultado, mas a própria expressão? Para isso, a função de simplificação deve ser desabilitada através do comando simp: false$. Então obtemos:
Para ativar a função de simplificação, você deve especificar o comando simp:true$. A função autosimplify pode funcionar com expressões numéricas e algumas não numéricas. Por exemplo,
Ao entrar, podemos referir-nos a qualquer uma das células anteriores pelo seu nome, substituindo-o em quaisquer expressões. Além disso, a última célula de saída é indicada por% e a última célula de entrada é indicada por _. Isso permite que você consulte o último resultado sem se distrair com seu número. Mas não se deve abusar de tais chamadas para células, pois ao reavaliar todo o documento ou suas células de entrada individuais, pode ocorrer uma discrepância entre os números das células.
Exemplo. Encontre o valor da expressão e aumente o resultado em 5 vezes.
É aconselhável usar variáveis em vez de nomes de células e atribuir seus nomes a quaisquer expressões. Neste caso, qualquer expressão matemática pode atuar como o valor da variável.
Os valores dos nomes das variáveis são preservados durante todo o trabalho com o documento. Lembremos que se for necessário retirar a definição de uma variável, isso pode ser feito através da função kill(name), onde name é o nome da expressão a ser destruída; além disso, pode ser um nome atribuído por você ou qualquer célula de entrada ou saída. Da mesma forma, você pode limpar toda a memória e liberar todos os nomes digitando o comando kill(all) (ou selecionando o menu Makhta->Limpar memória(Limpar memória)). Neste caso, todas as células de E/S também serão apagadas e sua numeração começará novamente a partir de um.
A função autosimplify nem sempre é capaz de simplificar uma expressão. Além dele, há uma série de comandos projetados para trabalhar com expressões: racionais e irracionais. Vejamos alguns deles.
rato (expressão) - transforma uma expressão racional para a forma canônica: abre todos os colchetes, depois traz tudo para um denominador comum, soma e reduz; converte todos os números em notação decimal finita em números racionais. A forma canônica é automaticamente “cancelada” no caso de quaisquer transformações que não sejam racionais
ratsimp (expressão) - simplifica uma expressão através de transformações racionais. Também funciona “em profundidade”, ou seja, as partes irracionais da expressão não são consideradas como atômicas, mas são simplificadas, incluindo todos os elementos racionais dentro delas
fullratsimp(expression) - uma função para simplificar uma expressão racional aplicando sequencialmente a função ratsimp() à expressão passada. Devido a isso, a função é um pouco mais lenta que ratsimp(), mas fornece um resultado mais confiável.
expandir (expressão) - expande os parênteses em uma expressão em todos os níveis de aninhamento. Ao contrário da função rateexpand(), ela não reduz as frações a um denominador comum.
radcan(expressão) - uma função para simplificar funções logarítmicas, exponenciais e de potência com expoentes racionais não inteiros, ou seja, raízes (radicais).
Muitas vezes, quando você tenta simplificar uma expressão no Maxima, na verdade isso só pode torná-la mais complexa. Um aumento no resultado pode ocorrer pelo fato de não se saber quais valores as variáveis incluídas na expressão podem assumir. Para evitar isso, você deve colocar restrições nos valores que uma variável pode assumir. Isso é feito usando a função assume(condição). Portanto, em alguns casos, o melhor resultado pode ser alcançado combinando radcan() com ratsimp() ou fullratsimp().
Operador de loop
O operador de loop pode ser especificado de diversas maneiras. O método de especificação depende se é conhecido antecipadamente quantas vezes o corpo do loop precisa ser executado.
Exemplo: montando um loop para exibir os valores da variável a no intervalo de -3 a 10 em passos de 5:
Exemplo: um loop para encontrar a soma de todos os números naturais até 50 inclusive:
A próxima característica importante do sistema Maxima é trabalhando com listas e arrays.
Para gerar listas, use o comando makelist. Por exemplo, usando o comando
formamos uma lista chamada x, composta por dez elementos, o valor
Para formar arrays, use o comando array. Por exemplo, usando o comando,
formamos um array bidimensional A composto por 10 linhas e 5 colunas. Para preencher o array com elementos, usaremos um loop com um parâmetro. Por exemplo,
T. N. Gubina, E.V. Andropova
Para exibir os elementos do array na tela, você pode usar o comando:
Um array pode ser formado sem declaração prévia. No exemplo a seguir, formamos um array unidimensional x, composto por 5 elementos, cujos valores são calculados pela fórmula x i = sin i.
A desvantagem de trabalhar com arrays é que os valores dos elementos do array são exibidos em uma coluna. É muito mais conveniente se os valores de uma matriz (bidimensional) forem exibidos na forma de uma matriz. Para esses fins, você pode usar o comando genmatrix. Por exemplo, para gerar uma matriz bidimensional (matriz), você deve especificar um comando no seguinte formato:
Vamos gerar o array resultante:
1.7. Gerenciando o processo de cálculo no Maxima
O sistema matemático computacional Maxima pertence aos sistemas matemáticos simbólicos. Portanto (por padrão) o sistema produz o resultado em forma simbólica. Ou seja, se você não especificar um comando especial, o sistema
Capítulo 1 Noções básicas de trabalho no sistema matemático computacional Maxima
nunca apresentará os resultados obtidos durante os cálculos na forma de um número real aproximado. Por exemplo, se inserirmos command2 na célula de entrada, obteremos:
Caso haja necessidade de apresentar o resultado obtido durante os cálculos na forma de um número real, então neste caso é necessário dar um comando especial ao sistema. Por exemplo, você pode fazer isso: se quiser obter um valor aproximado de 2, selecione o item de menu Cálculos numéricos→Para flutuar(para um único número de precisão) (ou Para BigFloat
(em um número de precisão dupla)). O resultado ficará assim:
O sinal “%” no Maxima é utilizado para se referir ao resultado obtido na última sessão. Isto pode ser conveniente se não houver necessidade de inserir variáveis de usuário e depois usar os valores resultantes.
Para controlar o processo de cálculo, os chamados "bloqueios de computação". O bloqueio é feito usando um único apóstrofo. Sua essência:
– se você colocar um apóstrofo antes do nome de uma função ou variável, o cálculo da própria função (mas não de seus argumentos) ou variável será bloqueado;
– se você colocar um apóstrofo antes de uma expressão entre colchetes, então toda a expressão, ou seja, todas as funções incluídas nela e todos os argumentos dessas funções, permanecerão não calculados.
Por exemplo, vamos definir uma função f x e comparar os resultados obtidos ao tentar calcular o valor da função no ponto x = 0.
Como podemos ver, o sinal do apóstrofo bloqueou a tentativa de calcular o valor da função no primeiro caso.
Outro exemplo:
T. N. Gubina, E.V. Andropova
Ao contrário de bloquear cálculos, usando dois caracteres de apóstrofo, pelo contrário, você pode forçar o sistema a realizar cálculos - "cálculo forçado". Por exemplo,
Como você pode ver, o sistema recusou-se a calcular a integral, embora não tenhamos dado o comando para bloquear os cálculos. Se colocarmos um apóstrofo duplo antes do comando, obteremos o seguinte resultado:
Por favor note que no sistema Maxima, por padrão, todos os ângulos são medidos em radianos. Portanto, se você precisar trabalhar com ângulos em graus, precisará lembrar a fórmula para converter radianos em graus.
Na terminologia Maxima, a forma não avaliada de uma expressão é chamada “forma substantiva”, a forma avaliada é chamada “forma verbal”.
O próximo ponto importante ao trabalhar em sistemas matemáticos computacionais é a capacidade de substituir os valores de variáveis ou partes de expressões em funções e expressões. Vejamos alguns dos recursos do sistema fornecidos para esses fins.
Por exemplo, é necessário substituir um valor específico na expressão cos x 4sin x − x em vez das variáveis x, por exemplo, .
Capítulo 1 Noções básicas de trabalho no sistema matemático computacional Maxima
Assim, o comando subst permite substituir os valores de qualquer variável em uma expressão. Na verdade, existem vários comandos para substituir valores em uma expressão ou função no Maxima.
1.8. Transformações de expressão simples
Por padrão, a função Autosimplificação está ativa no sistema Maxima, ou seja, o sistema tenta simplificar a própria expressão inserida sem qualquer comando.
Exemplo. Seja necessário encontrar o valor da seguinte expressão numérica
1 1− 4
entradas: 2 1 4 4 5 7 .
Vamos definir a expressão de acordo com as regras da linguagem do sistema Maxima.
Como você pode ver, o sistema respondeu com o valor da expressão, embora não tenhamos especificado nenhum comando.
Como você pode forçar o sistema a produzir não o resultado, mas a própria expressão? Para isso, a função de simplificação deve ser desabilitada através do comando simp: false$. Então obtemos:
Para ativar a função de simplificação, você deve especificar o comando simp:true$. A função autosimplify pode funcionar com expressões numéricas e algumas não numéricas. Por exemplo,
T. N. Gubina, E.V. Andropova
Ao entrar, podemos referir-nos a qualquer uma das células anteriores pelo seu nome, substituindo-o em quaisquer expressões. Além disso, a última célula de saída é indicada por% e a última célula de entrada é indicada por _. Isso permite que você consulte o último resultado sem se distrair com seu número. Mas não se deve abusar de tais chamadas para células, pois ao reavaliar todo o documento ou suas células de entrada individuais, pode ocorrer uma discrepância entre os números das células.
o resultado calculado é 5 vezes.
É aconselhável usar variáveis em vez de nomes de células e atribuir seus nomes a quaisquer expressões. Neste caso, qualquer expressão matemática pode atuar como o valor da variável.
Os valores dos nomes das variáveis são preservados durante todo o trabalho com o documento. Lembremos que se for necessário retirar a definição de uma variável, isso pode ser feito através da função kill(name), onde name é o nome da expressão a ser destruída; além disso, pode ser um nome atribuído por você ou qualquer célula de entrada ou saída. Da mesma forma, você pode limpar toda a memória e liberar todos os nomes digitando o comando kill(all) (ou selecionando o menu Maxima->Clear Memory). Neste caso, todas as células de E/S também serão apagadas e sua numeração começará novamente a partir de um.
A função autosimplify nem sempre é capaz de simplificar uma expressão. Além dele, há uma série de comandos projetados para trabalhar com expressões: racionais e irracionais. Vejamos alguns deles.
rato(expressão) - converte uma expressão racional para sua forma canônica: abre todos os parênteses, depois traz tudo para um denominador comum, soma e reduz; converte todos os números em notação decimal finita em números racionais. A forma canônica é automaticamente “cancelada” no caso de quaisquer transformações que não sejam racionais
ratsimp(expressão) - simplifica a expressão por meio de transformações racionais. Também funciona “em profundidade”, ou seja, irracional
Capítulo 1 Noções básicas de trabalho no sistema matemático computacional Maxima
partes da expressão não são consideradas atômicas, mas são simplificadas, incluindo todos os elementos racionais dentro delas
fullratsimp(expressão) - uma função para simplificar uma expressão racional aplicando sequencialmente a função ratsimp() à expressão passada. Devido a isso, a função é um pouco mais lenta que ratsimp(), mas fornece um resultado mais confiável.
expand(expressão) - expande parênteses em uma expressão em todos os níveis de aninhamento. Ao contrário da função rateexpand(), ela não reduz os termos fracionários a um denominador comum.
radcan(expressão) - uma função para simplificar funções logarítmicas, exponenciais e de potência com expoentes racionais não inteiros, ou seja, raízes (radicais).
Muitas vezes, quando você tenta simplificar uma expressão no Maxima, na verdade isso só pode torná-la mais complexa. Um aumento no resultado pode ocorrer pelo fato de não se saber quais valores as variáveis incluídas na expressão podem assumir. Para evitar isso, você deve colocar restrições nos valores que uma variável pode assumir. Isso é feito usando a função assume(condição). Portanto, em alguns casos, o melhor resultado pode ser alcançado combinando radcan() com ratsimp() ou fullratsimp().
− a 2 b 2 |
||||
aba1/4 |
||||
Exemplo. Simplifique uma expressão | b a b a 2 1/4 | uma 2 − b 2. |
Se aplicarmos o comando para simplificar racionalmente nossa expressão, obteremos:
Vamos usar a função assume(condition) e usá-la para impor restrições aos seus valores em algumas variáveis incluídas na expressão:
T. N. Gubina, E.V. Andropova
Como você pode ver, obtivemos um resultado compacto.
1.9. Resolvendo equações algébricas e seus sistemas
EM O sistema Maxima utiliza a função de resolução integrada, que possui a seguinte sintaxe, para resolver equações lineares e não lineares:
resolver (expr, x) – resolve a equação algébrica expr em relação à variável x
resolver (expr) – resolve a equação algébrica expr em relação à variável desconhecida incluída na equação.
Por exemplo, vamos resolver a equação linear 5 x + 8 = 0. Para isso, utilize o botão Resolver da barra de ferramentas, ao clicar, aparece a caixa de diálogo Resolver (Fig. 13). Insira a equação original e clique em OK.
Arroz. 13. Caixa de diálogo para resolver equações
Como resultado, um comando para resolver a equação será gerado no documento de trabalho e a solução encontrada será exibida:
Capítulo 1 Noções básicas de trabalho no sistema matemático computacional Maxima
O comando para resolução de equações pode ser especificado de forma que seja fácil verificar as soluções encontradas. Para fazer isso, é aconselhável usar o comando de substituição ev.
Por exemplo, vamos resolver a equação algébrica x 3 + 1 = 0 e verificar as soluções encontradas.
Como resultado, obtivemos três raízes. Sob o nome resh armazenamos uma lista de valores - as raízes da equação. Os elementos da lista são colocados entre colchetes e separados por vírgula. Cada elemento da lista pode ser referido pelo seu número. Vamos usar isso ao verificar as soluções: substitua cada uma das raízes na equação original.
Use o comando allroots (expr) para encontrar todas as soluções aproximadas para uma equação algébrica. Este comando pode ser usado se o comando resolver não conseguir encontrar uma solução para a equação ou se a solução for muito complicada, como para a seguinte equação: (1 + 2 x )3 = 13,5(1 + x 5 ) .
T. N. Gubina, E.V. Andropova
Usando o comando resolver, você pode encontrar soluções para sistemas de equações algébricas lineares. Por exemplo, um sistema de equações lineares
М x +2 y +3 z +4 k +5 m =13 |
|
2 x+ y+ 2 z+ 3 k+ 4 m= 10 |
|
2 x + 2 y + z + 2 k + 3 m = 11 pode ser resolvido da seguinte forma: |
|
2 x+ 2 y+ 2 z+ k+ 2 m= 6 |
|
ï 2 x +2 y +2 z +2 k +m =3 |
1. Vamos salvar cada uma das equações do sistema sob os nomes eq1, eq2, eq3, eq4, eq5.
2. Encontramos uma solução para o sistema.
3. Vamos verificar a solução encontrada:
Assim, ao substituir a solução resultante em cada uma das equações do sistema, obtêm-se as igualdades corretas.
A função resolver do sistema Maxima também pode resolver sistemas de equações lineares se a solução não for única. Então ela recorre a uma notação como %r_number para mostrar que a variável desconhecida é livre e pode assumir qualquer valor.
Para resolver sistemas de equações não lineares, você pode usar o comando algsys. Por exemplo, vamos encontrar uma solução para o sistema de equações