Найти корни нелинейного уравнения вида 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
- }
Объяснение кода листинга программы
- Программа находит корни нелинейного уравнения x^2=e^(-(x)^2) с помощью методов интервала (сглаживание, отсечение, приращение) и метода численного извлечения корней.
- При запуске программы, она предлагает пользователю выбрать метод решения (1 - метод хорд, 2 - метод перечисления).
- Если выбран метод хорд, программа запрашивает у пользователя границы интервала, в котором предполагается наличие корня.
- Если выбран метод перечисления, программа запрашивает у пользователя левую точку интервала.
- В обоих случаях программа начинает процесс поиска корня с помощью выбранного метода.
- В процессе поиска корня программа выводит промежуточные результаты на экран.
- Если поиск корня не увенчался успехом, программа выводит сообщение об ошибке.
- Если поиск корня был успешным, программа выводит найденный корень на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д