Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 11.05.2015
Сообщений: 3
1
.NET 4.x

Решить уравнение методом Ньютона (касательных)

14.05.2015, 03:25. Просмотров 2222. Ответов 3
Метки нет (Все метки)

Здравствуйте. Дело в том, что я новичок в C#, но столкнулся со следующей задачей: Нужно решить уравнение методом Ньютона.
Само уравнение: https://www.cyberforum.ru/cgi-bin/latex.cgi?{x}^{2}*sin(x)=S, где https://www.cyberforum.ru/cgi-bin/latex.cgi?S=Lg(1+\sqrt{16}) . Собственно вопрос вывода на экран формы я решил. Но вот сама программа не работает:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace WindowsFormsApplication4
{
class SOSAT
{
private double a, b, eps, x, fx, fa, fb, dfx, dfa, dfb, d2fx, d2fb, d2fa, s;
public SOSAT(double a, double b, double eps, double k)
{
this.a = a;
this.b = b;
this.eps = eps;
s = Math.Log10(1 + Math.Sqrt(k));
Getdix2();
}
 
public double FFx(double z)
{
return (Math.Pow(z, 2.0) * Math.Sin(z) - s);
}
 
public double dFx(double z)
{
return (2 * z * Math.Sin(z) + Math.Pow(z, 2.0) * Math.Cos(z));
}
 
public double d2Fx(double z)
{
return (4 * z * Math.Cos(z) + Math.Sin(z)*(2 - Math.Pow(z,2.0)));
}
 
public double Getdix2()
{
    if ((FFx(a) * dFx(a)) > 0)
    {
        do
        {
            x = this.a - FFx(this.a) / dFx(this.a);
            fx = FFx(x);
            fa = FFx(this.a);
            fb = FFx(this.x);
 
            dfa = dFx(this.a);
            dfx = dFx(x);
            dfb = dFx(this.x);
 
            d2fa = d2Fx(this.a);
            d2fx = d2Fx(x);
            d2fb = d2Fx(this.x);
 
            if (((fx * fa) < 0) && ((d2fa * d2fx) > 0) && ((dfa * dfx) > 0))
            {
 
                this.a = x;
                fa = fx;
                dfa = dfx;
                d2fa = d2fx;
 
 
            }
 
         /*   else
            {
 
                this.b = x;
                fb = fx;
                dfb = dfx;
                d2fb = d2fx;
 
 
            }*/
 
 
        }
        while ((Math.Abs(fx)) > this.eps);
        return x;
    }
 
    else
    {
         
            x = this.b - FFx(this.b) / dFx(this.b);
            fx = FFx(x);
            fa = FFx(this.x);
            fb = FFx(this.b);
 
            dfa = dFx(this.x);
            dfx = dFx(x);
            dfb = dFx(this.b);
 
            d2fa = d2Fx(this.x);
            d2fx = d2Fx(x);
            d2fb = d2Fx(this.b);
 
            if (((fx * fa) < 0) && ((d2fa * d2fx) > 0) && ((dfa * dfx) > 0))
            {
 
                this.b = x;
                fa = fx;
                dfa = dfx;
                d2fa = d2fx;
 
 
            }
           }
        while ((Math.Abs(fx)) > this.eps);
        return x;
    }
    }
 
}

Скажу честно, что уже много тем на вашем форуме облазил, но нет ничего, что могло бы помочь!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.05.2015, 03:25
Ответы с готовыми решениями:

Решение нелинейного уравнение методом Ньютона (касательных)
Методом Хорд и Дихотомии у меня получилось, но при методе Касательных выдает вот что. а вот и...

Решить уравнение методом итераций, методом ньютона и методом половинного деления
решить уравнение методом итераций,методом ньютона и методом половинного деления x-1 / (3 + sin...

Решить уравнение модифицированным методом Ньютона
решить уравнение на заданном промежутке модифицированным методом Ньютона. f(x) = \sqrt{2{x}^{2} +...

Необходимо решить кубическое уравнение методом Ньютона.
помогите пожалуйста с программой. необходимо решить кв.уравнение ax^3+bx^2+cx+d=0 методом...

3
0 / 0 / 0
Регистрация: 11.05.2015
Сообщений: 3
15.05.2015, 19:14  [ТС] 2
Бамп треду
0
Эксперт .NETАвтор FAQ
9603 / 4728 / 1696
Регистрация: 11.01.2015
Сообщений: 5,899
Записей в блоге: 34
15.05.2015, 19:44 3
Цитата Сообщение от IMYA_EP Посмотреть сообщение
Нужно решить уравнение методом Ньютона.
Парсинг и вычисление выражения
В вашем случае выражение должно быть таким:
x*x*Math.Sin(x) = Math.Log10(1+ Math.Sqrt(16))
0
0 / 0 / 0
Регистрация: 11.05.2015
Сообщений: 3
15.05.2015, 19:45  [ТС] 4
Спасибо Вам большое.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.05.2015, 19:45

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Решить уравнение, используя модифицированный метод Ньютона
Решить уравнение : cos 2/x- 2 sin 1/x +1/x=0, используя модифицированный метод Ньютона:...

Решить уравнение используя модифицированный метод Ньютона
Помогите пожалуйста

Уравнение методом касательной (Ньютона), нахождение производной
У меня программа для решения уравнения методом касательной. На форме разместила интервал и...

Решить уравнение методом итераций
решить уравнение методом итераций x-1 / (3 + sin (3.6*x)) = 0 интервал изоляции корня ,значение...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.