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

Какие существуют способы решения простых уравнений?

17.07.2016, 21:54. Показов 563. Ответов 5
Метки нет (Все метки)

уравнения вида y = x^2 * x и т.п
можно ли решить не используя стандартных функций как pow т.п
ну и естественно без переумножений
только решение не пишите прошу) нужно только пнуть в нужное направление, ссылки на методы может быть)
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.07.2016, 21:54
Ответы с готовыми решениями:

Какие способы существуют для вывода диаграмм и графиков
Здравствуйте, уважаемые программисты! Подскажите какие способы в шарпе существуют для вывода...

Какие еще способы решения данного задания существуют?
Найти количество элементов, содержащихся между первым и последним минимальным. Если в наборе...

Какие существуют способы возведения в степень
Почему не работает? (про функцию pow из math.h можете мне не говорить, я хочу узнать другие способы...

Какие способы работы Access с MSSQL существуют?
Здравствуйте! У меня Access должна использовать MS SQL в качестве базы данных (речь о локальной...

5
1469 / 1185 / 820
Регистрация: 29.02.2016
Сообщений: 3,579
17.07.2016, 22:18 2
Странный вопрос, ну какие еще способы?
y = x^2 * x
или
y = x^3
отсюда
C#
1
 x = Math.Sqrt(y,1/2);
0
0 / 0 / 0
Регистрация: 15.07.2016
Сообщений: 19
17.07.2016, 22:23  [ТС] 3
Известно х. Вычислить и вывести на экран у = х^13 – х^5 + х^2 – 1. При вычислении у использовать не более 5 операций умножения и 3 операций сложения и вычитания, не использовать стандартные функции (ln(x), exp(x), pow(),…).
вот такое задание вообщем
прошу, только не решайте))
0
1469 / 1185 / 820
Регистрация: 29.02.2016
Сообщений: 3,579
17.07.2016, 22:27 4
Метод половинного деления на С#
0
68 / 55 / 31
Регистрация: 05.09.2013
Сообщений: 665
18.07.2016, 00:52 5
Тут, видимо, требуется оптимизация вычислений, так сказать.
что касается сложения и вычитания - они все есть.
Про умножение - интереснее:
x*x - 1 умножение
x*x^2 - +1 умножение
x^2*x^3 - еще+1 умножения. Итого 3
x^5*x^5*x3 - еще +2. Итого 5 умножений
0
1469 / 1185 / 820
Регистрация: 29.02.2016
Сообщений: 3,579
18.07.2016, 09:21 6
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
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
namespace nonlinear
{
    class Program
    {
        public delegate double Function(double x);
 
        #region Linear Search
        public static double LinearIncrementalSearch(Function f, double xstart, double deltaX, int nMaxInc)
        {
            double x = xstart;
            double fstart = f(x);
            double fx = fstart;
            double fProd = 0;
            for (int i = 0; i < nMaxInc; i++)
            {
                x = xstart + i * deltaX;
                fx = f(x);
                fProd = fstart * fx;
                if (fProd < 0)
                    break;
            }
            if (fProd > 0)
                throw new Exception("Solution not found!");
            else
            {
                return x = x - deltaX * fx / (fx - f(x - deltaX));
            }
        }
        #endregion
 
        #region Bisection Method
        public static double BisectionMethod(Function f, double a, double b, double epsilon)
        {
            double x1 = a;
            double x2 = b;
            double fb = f(b);
            while (Math.Abs(x2 - x1) > epsilon)
            {
                double midpt = 0.5 * (x1 + x2);
                if (fb * f(midpt) > 0)
                    x2 = midpt;
                else
                    x1 = midpt;
            }
            return x2 - (x2 - x1) * f(x2) / (f(x2) - f(x1));
        }
        #endregion
 
        #region Secant Method
        public static double SecantMethod(Function f, double a, double b, double epsilon)
        {
            double x1 = a;
            double x2 = b;
            double fb = f(b);
            while (Math.Abs(f(x2)) > epsilon)
            {
                double mpoint = x2 - (x2 - x1) * fb / (fb - f(x1));
                x1 = x2;
                x2 = mpoint;
                fb = f(x2);
            }
            return x2;
        }
        #endregion
 
        #region False Position Method
        public static double FalsePositionMethod(Function f, double a, double b, double epsilon)
        {
            double x1 = a;
            double x2 = b;
            double fb = f(b);
            while (Math.Abs(x2 - x1) > epsilon)
            {
                double xpoint = x2 - (x2 - x1) * f(x2) / (f(x2) - f(x1));
                if (fb * f(xpoint) > 0)
                    x2 = xpoint;
                else
                    x1 = xpoint;
                if (Math.Abs(f(xpoint)) < epsilon)
                    break;
            }
            return x2 - (x2 - x1) * f(x2) / (f(x2) - f(x1));
        }
        #endregion
 
        #region Fixed Point Method
        public static double FixedPointMethod(Function f, double x0, double epsilon, int nMaxIter)
        {
            double x1 = x0;
            double x2 = x0;
            double currEpsilon = 0.0;
            for (int i = 0; i < nMaxIter; i++)
            {
                x2 = f(x1);
                currEpsilon = Math.Abs(x1 - x2);
                x1 = x2;
                if (currEpsilon < epsilon)
                    break;
            }
            if (currEpsilon > epsilon)
            {
                throw new Exception("Solution not found!");
            }
            return x1;
        }
        #endregion
 
        #region Newton-Raphson Method
        public static double NewtonRaphsonMethod(Function f, Function fprime, double x0, double epsilon)
        {
            double f0 = f(x0);
            double x = x0;
            while (Math.Abs(f(x)) > epsilon)
            {
                x -= f0 / fprime(x);
                f0 = f(x);
            }
            return x;
        }
        #endregion
 
        #region Test Functions
        static double F(double x)
        {
            //Setup for test case: x^3 - 5x + 3 = 0
            return x * x * x - 5.0 * x + 3.0;
        }
 
        static double Ffixpt(double x)
        {
            //Setup for test case: x^2 + 2x - 35 = 0
            //Test function = sqrt(35 - 2x)
            return Math.Sqrt(35.0 - 2.0 * x);
        }
 
        static double F1(double x)
        {
            return Math.Sin(x) - x * x * x * x;
        }
 
        static double F1prime(double x)
        {
            return Math.Cos(x) - 4.0 * x * x * x;
        }
        #endregion
       
        static void Main(string[] args)
        {
            try
            {
                Console.WriteLine("\n\nTesting Linear Incremental Search Methodn");
                double deltaX = 0.01;
                int n = 500;
                double x = -4.0;
                for (int i = 1; i <= 3; i++)
                {
                    x = LinearIncrementalSearch(F, x, deltaX, n);
                    Console.WriteLine("\nSolution " + i.ToString() + " = " + x.ToString());
                    Console.WriteLine("Solution confirmation: f(x) = " + F(x).ToString());
                }
                Console.ReadLine();
 
                Console.WriteLine("\n\nTesting Bisection Method\n");
                x = BisectionMethod(F, 1.0, 2.0, 0.0001);
                Console.WriteLine("Solution from the bisection method: " + x.ToString());
                Console.WriteLine("Solution confirmation: f(x) = " + F(x).ToString());
                Console.ReadLine();
 
                Console.WriteLine("\n\nTesting Secant Method\n");
                x = SecantMethod(F, 1.0, 1.5, 0.0001);
                Console.WriteLine("Solution from the secant method: " + x.ToString());
                Console.WriteLine("Solution confirmation: f(x) = " + F(x).ToString());
                Console.ReadLine();
 
                Console.WriteLine("\n\nTesting False Position Method\n");
                x = FalsePositionMethod(F, 1.0, 2.0, 0.0001);
                Console.WriteLine("Solution from the false position method: " + x.ToString());
                Console.WriteLine("Solution confirmation: f(x) = " + F(x).ToString());
                Console.ReadLine();
 
                Console.WriteLine("\n\nTesting Fixed Point Method\n");
                double tol = 0.0001;
                n = 10000;
                double x0 = 1.6;
                x = FixedPointMethod(Ffixpt, x0, tol, n);
                Console.WriteLine("solution from the fixed point method: " + x.ToString());
                Console.WriteLine("Expected solution = 5.00");
                Console.ReadLine();
 
                Console.WriteLine("\n\nTesting Testing Newton-Raphson Method\n");
                x = NewtonRaphsonMethod(F1, F1prime, 1.0, 0.0001);
                Console.WriteLine("Solution from the Newton-Raphson method: " + x.ToString());
                Console.WriteLine("Solution confirmation: f(x) = " + F1(x).ToString());
                Console.ReadLine();
            }
            catch (Exception ex)
            {
                Console.WriteLine("Fatal error: " + ex.Message);
                Console.ReadLine();
            }
        }
    }
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.07.2016, 09:21

Какие существуют способы выделения памяти для переменных?
А какие существуют способы выделять память для переменных?

Какие способы существуют приравнивания переменной php к пустоте?
какие способы существуют приравнивания переменной php к пустоте?

Какие еще способы создания прог на С++ под Windows существуют кроме WinAPI и WinForms?
большинство прог написаны на плюсах.это значит на WinAPI?нет?тогда подскажите Спасибо)))

Перенесите ОС Windows 95/98 с одной дискеты на другую. Какие существуют для этого способы (хотя бы три)?
Создайте систему дискету с ОС Windows 95/98. Перенесите ОС Windows 95/98 с одной дискеты на другую....


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

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

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