[Arquivo!] Pura matemática, física, química, etc.: problemas de treinamento do cérebro não relacionados ao comércio de qualquer forma - página 538

 

Claramente, quase sempre não haverá solução exata, pois o número de equações será maior do que o número de desconhecidos.

Bem, é para isso que serve o MOC. E o problema na formulação de Yusuf é exatamente este método: traçar uma linha reta através de algumas nuvens de pontos, e de forma ótima do ponto de vista do MNA. Ele não fala apenas de equações normais.

 
Estou vendo.
 
Neutron:

Então, qual é a solução para este esquema?


É óbvio.
 
Exceto que as condições do problema não dizem que todos têm apenas seis conhecidos:) Talvez algo como isto: (X-1)^6 = Toda a população do globo. x é o número de conhecidos que cada pessoa tem. Um valor muito real deve ser X.
 

alguém sabe onde encontrar uma solução geral para a equação?

x^0+x^1+x^2+x^3+.........x^n=A

^ é um sinal de potência ^; A é uma constante

 

De jeito nenhum, apenas métodos numéricos. Você pode simplificar somando a progressão do geom:

( x^(n+1) - 1 ) / ( x - 1 ) = A

Dê uma gama específica de A, vamos tentar resolver a aproximação com precisão aceitável.

E com que precisão você deve encontrar x, e em que faixa é n?

Além disso: x é esperançosamente positivo?

P.S. Se A, x > 0, é fácil estimar x a partir de baixo:

x = ( x^(n+1) + A - 1 ) / A > 1 - 1 / A

E depois iterar (desenhar um gráfico das funções y=x^(n+1)-1 e y=A(x-1) para ver):

x(0) = 1 - 1 / A

x(k+1) = ( x(k)^(n+1) - 1 + A ) / A

Verificação em n = 10, A = 5:

x(0)=0,8, e a 12ª iteração resulta em um número de 0,823679 para a 0,000001 mais próxima.

Uma verificação mostra que o lado esquerdo da igualdade difere do lado direito em 0,000005.

 
Mathemat:

De jeito nenhum, apenas métodos numéricos. Você pode simplificar somando a progressão do geom:

( x^(n+1) - 1 ) / ( x - 1 ) = A

Dê-me um intervalo A específico e tentaremos resolvê-lo de forma aproximada, com precisão aceitável.

E com que precisão devo encontrar x, e em que faixa é n?

Também: x - esperançosamente positivo?


Sim, x é positivo. Passei meio dia pensando como resolver isso...- tirar X para aliviar um pouco a EA dos ciclos))))

Em minha EA, eu arranjei uma solução com um certo erro no resultado. Como incrementos consecutivos.

Portanto, não há outra maneira... Não vou me intrigar com isso agora, obrigado).

 
Eu terminei o posto, há uma solução iterativa. Se você escrever uma função, ela contará rapidamente.
 
jelizavettka:


Sim, x é positivo. Passei meio dia pensando em como resolver... - para produzir X a fim de aliviar um pouco o Expert Advisor dos ciclos))))

Organizei na EA a seleção de uma solução com uma certa margem de erro no resultado. Como incrementos consecutivos...

Então não há outra maneira... agora não vou ficar intrigado, obrigado).


Mostre-me.

Aqui está a minha variante:

int start(){

   int n=12; // максимальная степень
   double A=125879;

   double x;
   int k;
   
   Alert("Начало: A="+DoubleToStr(A,8));
   
      if(Function(n,A,x,k)){
         Alert("x="+DoubleToStr(x,8)+". Проверка: A="+DoubleToStr(Formula(x,n),8)+". Итераций: "+k);
      }
      else{
         Alert("Переполнение");
      }
  
   return(0);
   
}


bool Function(int n,double A,double & x,int & k){
   double inf=MathPow(10,309);
   x=0;       
   double Step=10; // Начальный шаг, стоит поэкспериментировать со значением
   k=0;
      while(true){
         k++;
         double val=Formula(x,n);
            if(val>A || val==inf){
               x-=Step;
               Step/=2;
                  if(Step<0.000000000000001){ // 0.000000000000001 - определяет точность, увеличивать можно (снижать точность), уменьшать некуда
                     if(val==inf){
                        return(false);
                     }
                     else{
                        return(true);
                     }
                  }
            }
         x+=Step;               
      }  
}

double Formula(double x,int n){
   // x^0+x^1+x^2+x^3+.........x^n=A
   double sum=1+x;
      for(int i=2;i<=n;i++){
         sum+=MathPow(x,i);
      }
   return(sum);
}
 
Integer:


Mostre-me.

Aqui está a minha variante:

Eu não sei muito sobre os códigos das outras pessoas, mas...
Eu tenho algo semelhante...

O passo do desconhecido é definido primeiro, e quando o resultado passa por A, a parte do alcance do passe com o passo decretado.... é tomada como A.

A precisão é definida como a % do desvio do valor resultante "A" em relação ao valor definido.

Se a precisão especificada não for alcançada, o passo é reduzido.

Tenho tudo isso em hebraico e não tão bonito))