Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 08.06.2015
Сообщений: 1
1

Найти решение функции методом Ньютона. Переполнение: 'exp'

08.06.2015, 21:05. Показов 526. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Метод Ньютона. Найти решение функции: x1^2-exp(x1).
Программа вылета через некоторое время и выдает ошибку о переполнении exp.
Как решить эту проблему?
ниже код

VB.NET
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
Public Class Form1
    Dim x1(50) As String
    Dim y(50) As String
    Dim k As Integer
    Dim n As Integer
    Public Function vichislenie_function(ByVal formula As String, ByVal x As Double) As Double ' функция calculate для вычисления значения функции 
 
        formula = formula.Replace("x1", x.ToString) ' заменяем строковое представление х1 на числовое 
        formula = formula.Replace(",", ".")
 
        Dim objScript As Object = CreateObject("MSScriptControl.ScriptControl") 'создает переменную objscript типа object, присваиваем экземпляр класса scriptcontrol
        objScript.Language = "VBScript" ' устанавливаем язык VBscript
        Return objScript.Eval(formula) ' вычисляем функцию
    End Function
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim formula As String
 
        Dim x()
        Dim y1()
        Dim y2()
        Dim tol As Double
        ReDim x(0 To 1000)
        ReDim y1(0 To 1000)
        ReDim y2(0 To 1000)
        k = 0
        Dim h As Double = 0.00001
        formula = ComboBox1.Text
        x(0) = Double.Parse(TextBox2.Text, Globalization.CultureInfo.CurrentCulture) ' преобразует строковое выражение числа в число с плавающей запятой 
        tol = Double.Parse(TextBox3.Text, Globalization.CultureInfo.InvariantCulture) ' преобразует строковое выражение числа в число с плавающей запятой 
        Dim nachalo As DateTime = Now
        Dim konec As DateTime
        Dim Reshenie As Integer = 1
 
        Do
 
            y1(k) = (vichislenie_function(formula, x(k)) - vichislenie_function(formula, x(k) - h)) / h
            y2(k) = (vichislenie_function(formula, x(k) + h) - 2 * vichislenie_function(formula, x(k)) + vichislenie_function(formula, x(k) - h)) / h ^ 2
            If (Math.Abs(y2(k)) > tol) Then
                x(k + 1) = x(k) - y1(k) / y2(k)
 
            Else
                Reshenie = 0
                Exit Do
            End If
            k = k + 1
            ProgressBar1.Visible = True
            ProgressBar1.Maximum = k + 10
            ProgressBar1.Value = k
            ReDim Preserve x(0 To k + 1)
            ReDim Preserve y1(0 To k + 1)
            ReDim Preserve y2(0 To k + 1)
        Loop While (2 * Math.Abs(y1(k - 1) / y2(k - 1)) / (Math.Abs(x(k - 1)) + tol) >= tol)
 
        konec = Now
 
        If Reshenie = 1 Then
            MsgBox("Решение найдено", vbOKOnly, "Успешно")
            ProgressBar1.Visible = False
            TextBox4.Text = x(k - 1).ToString() ' преобразует х  в строковую переменную с 20 знаками
            TextBox5.Text = vichislenie_function(formula, x(k - 1)).ToString()
            TextBox6.Text = konec.Subtract(nachalo).Milliseconds
            TextBox1.Text = k
        Else : MsgBox("Решение не найдено", vbCritical, "Ошибка")
        End If
        Exit Sub
    End Sub
 
End Class
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.06.2015, 21:05
Ответы с готовыми решениями:

Найти методом Ньютона решение уравнения
найти методом Ньютона решение уравнения f(x)={e}^{x}-cos(2x) с точностью до 0.0004, в качестве...

Найти приближенное решение системы уравнений методом Ньютона
2)Для приведенных систем уравнений найти приближенное решение, ближайшее к выбранной стартовой...

Найти решение уравнения на отрезке с точностью е методом Ньютона
найти решение уравнения x3 – 2x2 –4x + 7 = 0 на отрезке с точностью е методом Ньютона. ...

Найти приближенное решение нелинейного уравнения методом Ньютона на заданном отрезке
Найти приближенное решение нелинейного уравнения методом Ньютона на заданном отрезке. Точность...

0
08.06.2015, 21:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.06.2015, 21:05
Помогаю со студенческими работами здесь

Найти корни функции методом Ньютона
Ребята!! помогите, как решить уравнение e^x-e^(-x)-2=0 на интервале методом Ньютона! Язык си шарп

Найти корень функции f(x,y)=A1*(x-x0)^2+A2*(y-y0)^2 методом Ньютона
найти корень функции f(x,y)=A1*(x-x0)^2+A2*(y-y0)^2 методом Ньютона в MatLab

Найти корни функции методом Ньютона
Мне нужна написать програму... Найти корени функции методом нютона... Помогите плиз, не...

Найти корень функции x*x*x+0.2*x*x+0.5x +1.5 методом Ньютона
Необходимо было найти корень функции x*x*x+0.2*x*x+0.5x +1.5 методом Ньютона. Не могу найти...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru