Найти корни нелинейного уравнения вида x^2=e^(-(x)^2) - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Найти корни нелинейного уравнения вида x^2=e^(-(x)^2). Поиск приближенного значения хотя бы одного корня уравнения f(x)= 0 на отрезке [а; b] осуществлять методами перебора и хорд. В функции, которые реализуют алгоритмы, передавать указатели на тип float.

Решение задачи: «Найти корни нелинейного уравнения вида x^2=e^(-(x)^2)»

textual
Листинг программы
#include <iostream>
 #include <math.h>
 
 using namespace std;
 
 int n;
 double a;
 double b;
 double result;
 bool* error=false;
 double precision = 0.01;
 double (*f)(double,double);
 
 double func(double x)
 {
         return x*x - exp(-x*x);
 }
 
 double enumeration(double a,double b)
 {
         double c;
         int i=1;
         do
         {
                 c = func(a)*func(a+precision);
                 a+=precision;
                 i++;
                 if(i==200)
                 {
                         cout<<"solution is to far from the point you have entered!\n";
 
                         return false;
                 }
         }while(c>0);
         return a;
 }
 
 double chord(double a,double b)
 {
         double c;
         int i=1;
         do
         {
 
 void main()
 {
         cout<<"choose approach to get solution\n";
         cout<<"1 - chord method\n";
         cout<<"2 - enumeration method\n";
         do
         {
                 cin>>n;
         }
         while(((int)n!=1)&&((int)n!=2));
         if(n==1)
         {
                 cout<<"enter borders:\n";
                 cout<<"a:";
                 cin>>a;
                 cout<<"b:";
                 cin>>b;
                 f = &chord; // initial f -> method
         }
         else
         {
                 cout<<"enter left point:\n";
                 cout<<"a:";
                 cin>>a;
                 b = 0;
                 f = &enumeration;  // initial f -> method
 
 }

Объяснение кода листинга программы

  1. Программа находит корни нелинейного уравнения x^2=e^(-(x)^2) с помощью методов интервала (сглаживание, отсечение, приращение) и метода численного извлечения корней.
  2. При запуске программы, она предлагает пользователю выбрать метод решения (1 - метод хорд, 2 - метод перечисления).
  3. Если выбран метод хорд, программа запрашивает у пользователя границы интервала, в котором предполагается наличие корня.
  4. Если выбран метод перечисления, программа запрашивает у пользователя левую точку интервала.
  5. В обоих случаях программа начинает процесс поиска корня с помощью выбранного метода.
  6. В процессе поиска корня программа выводит промежуточные результаты на экран.
  7. Если поиск корня не увенчался успехом, программа выводит сообщение об ошибке.
  8. Если поиск корня был успешным, программа выводит найденный корень на экран.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.909 из 5
Похожие ответы