Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2014, 14:05   #1
qwot
Пользователь
 
Регистрация: 08.11.2014
Сообщений: 27
По умолчанию метод хорд

Помогите разобраться с решением уравнений методом хорд.Я окончательно запутался.В интернете нашел формулы,ход решения,а реализовать это все через функции не могу.Вот,что у меня получается...и считает она явно не то.

Код:

        private void button1_Click(object sender, EventArgs e)
        {
            double x;
            double a = Convert.ToDouble(textBox1.Text);
            double b = Convert.ToDouble(textBox2.Text);
            const double eps = 0.0001;
            double fa = 2 * Math.Pow(a, 2) + 2 * a-1;
            double fb = 2 * Math.Pow(b, 2) + 2 * b-1;

           
                x = b - fb / (fb - fa) / (b - a);
                while (fa-fb>=eps);
                {
                     x = b - fb / (fb - fa) / (b - a);
                if (ff(b)-ff(x)<0)
                      {
  b=x; 
  }
  else 
  {
  a=x;
  }
              
            MessageBox.Show(x.ToString());
                }
        }
            public double ff (double x)
        {
         
           double  f=2*Math.Pow(x,2)+2*x-1;
            
            return f;

Последний раз редактировалось qwot; 06.12.2014 в 14:24.
qwot вне форума Ответить с цитированием
Старый 06.12.2014, 16:38   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Попробую дать подсказку из своей скарбнички:
Код:
using System;

namespace авыа
{
	class MainClass
	{
		public static double f(double x){return Math.Log10(x)-1/x*x;}
		public static double Hordes(double a,double b,double e){
			while(Math.Abs(b-a)>e){
				a = b - (b - a) * f(b)/(f(b) - f(a));
				b = a - (a - b) * f(a)/(f(a) - f(b));
			}
			return b;
		}

		public static void Main (string[] args)
		{
			Console.WriteLine ("{0}",Hordes(0.1,1,0.0001));
			Console.ReadKey ();
		}
	}
}
Не проверял особо.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.12.2014, 18:20   #3
qwot
Пользователь
 
Регистрация: 08.11.2014
Сообщений: 27
По умолчанию

Помогите эту программу реализовать в windows forms с вводом a,b,e и вывода результата в messagebox

Цитата:
Сообщение от Stilet Посмотреть сообщение
Попробую дать подсказку из своей скарбнички:
Код:
using System;

namespace авыа
{
	class MainClass
	{
		public static double f(double x){return Math.Log10(x)-1/x*x;}
		public static double Hordes(double a,double b,double e){
			while(Math.Abs(b-a)>e){
				a = b - (b - a) * f(b)/(f(b) - f(a));
				b = a - (a - b) * f(a)/(f(a) - f(b));
			}
			return b;
		}

		public static void Main (string[] args)
		{
			Console.WriteLine ("{0}",Hordes(0.1,1,0.0001));
			Console.ReadKey ();
		}
	}
}
Не проверял особо.
qwot вне форума Ответить с цитированием
Старый 09.12.2014, 19:57   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Увы у меня нет студии для форм на шарпее.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.12.2014, 20:26   #5
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

А чего там реализовывать-то? Читать чиcло из текстбокса умеете?
Код:
double a = double.Parse(textbox1.Text);
Вот и вызывайте метод Hordes с прочитаными числами.

Код:
MessageBox(Hordes(a, b, e).ToString());
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 09.12.2014 в 20:29.
Alex11223 вне форума Ответить с цитированием
Старый 09.12.2014, 20:54   #6
qwot
Пользователь
 
Регистрация: 08.11.2014
Сообщений: 27
По умолчанию

Если бы это было так просто и без ошибок,то я бы не задавал такой вопрос.
При вставке в кнопку текстбокса не существует в текущем контексте.Пробовал задавать имя текстбоксу. Выдает ошибку: Невозможно получить доступ к нестатическому члену внешнего типа через вложенный тип. И еще ошибка в double e:Невозможно объявить локальную переменную с именем "e" в этой области видимости, т.к. она придаст другое значение "e", которая уже используется в области видимости "родительский или текущий" для обозначения чего-то другого.
Изображения
Тип файла: jpg Безысссмянный.jpg (55.9 Кб, 323 просмотров)
qwot вне форума Ответить с цитированием
Старый 09.12.2014, 21:11   #7
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Дык обработчик клика кнопки не в MainClass, а в классе формы должен быть.

А MainClass либо отдельно и вызывайте MainClass.Hordes(a, b, e) (и переименуйте во что-нибудь типа MathClass), либо вообще выкиньте класс и оставьте только эти две функции.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 09.12.2014, 21:31   #8
qwot
Пользователь
 
Регистрация: 08.11.2014
Сообщений: 27
По умолчанию

Ошибки исправлены,но мессаджбокс не появляется(при нажатии на кнопку ничего не происходит).То же самое если выводить ответ через лейбл.
qwot вне форума Ответить с цитированием
Старый 09.12.2014, 21:53   #9
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Телепатирую, что не подписались на событие клика кнопки, а просто положили в класс формы этот метод (и кнопка о нем ничего не знает).

Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Метод Хорд carrie bradshaw Помощь студентам 3 04.05.2014 16:09
Метод Хорд С++ MicRaiS Помощь студентам 0 26.10.2012 18:08
Метод хорд -=Andriushka=- Паскаль, Turbo Pascal, PascalABC.NET 0 27.11.2011 19:33
Метод хорд gnom 62 Паскаль, Turbo Pascal, PascalABC.NET 0 24.05.2010 14:32
Метод Хорд Legend18 Помощь студентам 0 25.04.2010 20:50