Описать класс, представляющий нелинейное уравнение - C#

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

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

Описать класс, представляющий нелинейное уравнение вида ах - cos(x) = 0. Опи¬сать метод, вычисляющий решение этого уравнения на заданном интервале ме¬тодом деления пополам (см. раздел «Цикл с параметром for») и выбрасывающий исключение в случае отсутствия корня. Описать свойства для получения состоя¬ния объекта.Написать программу, демонстрирующую все разработанные элементы класса. Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace PracticTimurTwo
{
    class Fun
    {
        public double arg;
 
        public void Arg()
        {
 
        }
 
        public void Arg(double arg)
        {
            this.arg = arg;
        }
 
        const double e = 0.001;
 
        public void Bin(double a, double b)
        {
            while (Math.Abs(b - a) > e)
            {
            double c = (a + b) / 2;
            if ((Math.Cos(a)/arg)*(Math.Cos(c)/arg) < 0) b = c;
            else a = c;
            }
            Console.Write("x = {0}", Math.Abs(b - a));
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                Console.WriteLine("Исходное уравнение: ax - cos(x) = 0");
                Fun f = new Fun();
                Console.Write("Введите аргумент а: ");
                f.arg = double.Parse(Console.ReadLine());
                f.Bin(10, 100);
 
                Console.ReadKey();
            }
            catch
            {
                Console.WriteLine("Error!!!");
            }
        }
    }
}
Не могу понять что выводить на экран и соответствует ли программа условию... Помогите плиз

Решение задачи: «Описать класс, представляющий нелинейное уравнение»

textual
Листинг программы
using System;
 
namespace App3
{
    class CNonLinearEquation
    {
        public double arg;
    
        public CNonLinearEquation (double A) { this.arg = A;}
 
        // точность вычислен
        const double e = 10e-5;
        
        private double f( double x) { return arg * x - Math.Cos(x); }
 
        public void Solve(double a, double b)
            
        {
            if (f(a) * f(b) > 0)
                Console.WriteLine("Корней нет");
            else {
                
                double c = (a + b) / 2;
 
            
                while (Math.Abs(b - a) >= e) {
 
                    if (f(a) * f(c) < 0)
                        b = c;
                    else
                        a = c;
                
                     c = (a + b) / 2;
                }
            
                Console.WriteLine("x = {0}", c);
            }
 
            
        }
    }
    
    
    class Program
    {
        public static void Main(string[] args)
        {
            
            Console.WriteLine("Исходное уравнение: ax - cos(x) = 0");
            
            Console.Write("Введите аргумент а: ");
            double catch_a = Double.Parse(Console.ReadLine()); // 1
            
            Console.Write("Введите начало интервала: ");
            double catch_S = Double.Parse(Console.ReadLine()); // 6 
            
            Console.Write("Введите конец интервала: ");
            double catch_E = Double.Parse(Console.ReadLine()); // 10
            
            CNonLinearEquation eq = new CNonLinearEquation(catch_a);
            
            eq.Solve(catch_S,catch_E); // Корней нет
            
                        
            eq.arg = 5;
            eq.Solve(-1,1.0);
                
            Console.Write("Press any key to continue . . . ");
            Console.ReadKey(true);
        }
    }
}

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

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