Описать класс, представляющий нелинейное уравнение - 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);
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д