0 / 0 / 0
Регистрация: 26.04.2013
Сообщений: 7
1

Составить процедуру для приближенного вычисления заданной функции y=f(x) путем суммирования членов заданного ряда

26.04.2013, 00:29. Показов 4014. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Второй день не могу составить процедуру программы для заданного ряда. Если кто сможет помочь,буду признателен.
Суммирование членов ряда проводить включительно до члена ряда, значение которого по
абсолютной величине будет меньше чем 10^(-6)
Вычислить значения суммы ряда при указанных в таблице контрольных данных аргумента и сравнить полученные
значения со значениями, вычисленными непосредственно с помощью функции y= f(x).
Миниатюры
Составить процедуру для приближенного вычисления заданной функции y=f(x) путем суммирования членов заданного ряда  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.04.2013, 00:29
Ответы с готовыми решениями:

Составить и отладить процедуру для приближенного вычисления заданной функции
Ребят, помогите пожалуйста. Не очень понимаю в этом, никак не могу доделать и найти ошибки. ...

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

Составить рекуррентную формулу заданного ряда для последующего вычисления приближенного значения
Доброго времени суток! Нужно составить рекуррентную формулу данного ряда для последующего...

Составить программу для приближённого вычисления заданной функции у(х)
Составить и отладить программу для приближённого вычисления заданной функции у(х) путём...

11
258 / 107 / 26
Регистрация: 15.03.2012
Сообщений: 353
Записей в блоге: 33
26.04.2013, 09:18 2
И в чём проблема?

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Function dSiNomad(dX As Double) As Double
  Dim dY As Double
  Dim dN As Double
  Dim dS As Double
  '
  dN = 2
  dY = 1
  Do While True
    dS = (dN * dX ^ (dN - 1)) / dFactorial(dN - 1)
    If dS < 0.00001 Then
      dSiNomad = dY
      Exit Function
    End If
    dY = dY + dS
    dN = dN + 1
  Loop
End Function
Функцию факториала кинуть или сами напишите?
1
258 / 107 / 26
Регистрация: 15.03.2012
Сообщений: 353
Записей в блоге: 33
26.04.2013, 09:23 3
Держите проект целиком:
TEST0018.zip

Ввод и вывод уж делать не стал, влом.
1
0 / 0 / 0
Регистрация: 26.04.2013
Сообщений: 7
26.04.2013, 23:58  [ТС] 4
Проблема заключается в том,что наши методички просто ужасны, а преподаватели и толком ничего объяснить не могут.

Visual Basic
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
Sub Lab4_2()
Dim x, y, s, a, p As Double
Dim n As Integer
 
'ВВОД АРГУМЕНТА X
 
10 x = CSng(InputBox(" Введите аргумент Х " & vbLf & " для ф-ции SIN(X):"
'ВЫЧИСЛЕНИЕ СУММЫ ЧЛЕНОВ ЗАДАННОГО РЯДА
s = 0: p = 1 
k = 1: n = 3
a = x                                          'Первый член ряда
Do While (Abs(a) >= 0.000001)
s = s + a                                    'Суммирование членов a ряда
a = x ^ n                                   'Вычисление числителя члена ряда
p = -p * (n - 1) * n                    'Вычисление знаменателя члена ряда
a = a / p                                   'Очередной член a ряда
n = n + 2: k = k + 1           
Loop y = Sin(x)                        'Непосредственное вычисление заданной функции
'ВЫВОД РЕЗУЛЬТАТОВ
Ответ = MsgBox("Заданное значение аргумента X=" & x & vbLf & "Вычисленная сумма ряда S=" & s& vbLf & "Количество членов ряда K=" & k& vbLf & " Функция SIN(X)=" & y,vbRetryCancel, "Результат работы процедуры")
Select Case Ответ
Case vbRetry: GoTo 10
Case vbCancel: GoTo 20
End Select
20 End Sub
Данный ряд был выполнен для вычисления функций y=sin(x)
Возможно таким же образом преобразовать программу и выполнить мой ряд?
Изображения
 
0
258 / 107 / 26
Регистрация: 15.03.2012
Сообщений: 353
Записей в блоге: 33
29.04.2013, 14:11 5
И в чём проблема?

Visual Basic
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
Function dSiNomad(dX As Double) As Double
  Dim dY As Double
  Dim dN As Double
  Dim dS As Double
  Dim iFlag As Integer
  '
  dN = 3
  dY = dX
  iFlag = 0
  Do While True
    'dS = (dN * dX ^ (dN - 1)) / dFactorial(dN - 1)
    dS = dX ^ dN / dFactorial(dN)
    If dS < 0.00001 Then
      dSiNomad = dY
      Exit Function
    End If
    If 0 = iFlag Then
      iFlag = 1
      dY = dY - dS
    ElseIf 1 = iFlag Then
      iFlag = 0
      dY = dY + dS
    End If
    dN = dN + 2
  Loop
End Function
Подправьте в функции пару строчек, да флажок поставьте, чтобы вычитание на сложение через шаг менялось... и собственно всё.

Добавлено через 6 минут
Попробуем запустить.
X=3.14

Ряд Y=1.59189*10^-3
Sin(X) Y=1.59265*10^-3

Хм... можно точность попробовать увеличить...
1
0 / 0 / 0
Регистрация: 26.04.2013
Сообщений: 7
29.04.2013, 20:22  [ТС] 6
zink0000, Я просто не составлял процедуры типа функций (Function.) Как я знаю это самостоятельная часть кода,знаю некоторый синтаксис.
В том - то вся и соль... По мере моих знаний,я работаю исключительно :
- Зашёл в Excel потом (Alt + F11) и начинаю писать программу.
Сталкивался я и работал я пока только с процедурой Sub ()
Как работать и использовать в VBA на данный момент процедуру,которую вы используете и запускать,к сожалению я не знаю.
И спасибо,за уделенное вами время.

Всё,что необходимо оформить (написать) программу именно в такой форме
Visual Basic
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
Sub Lab4_2()
Dim x, y, s, a, p As Double
Dim n As Integer
 
'ВВОД АРГУМЕНТА X
 
10 x = CSng(InputBox(" Введите аргумент Х " & vbLf & " для ф-ции SIN(X):"
'ВЫЧИСЛЕНИЕ СУММЫ ЧЛЕНОВ ЗАДАННОГО РЯДА
s = 0: p = 1 
k = 1: n = 3
a = x                                          'Первый член ряда
Do While (Abs(a) >= 0.000001)
s = s + a                                    'Суммирование членов a ряда
a = x ^ n                                   'Вычисление числителя члена ряда
p = -p * (n - 1) * n                    'Вычисление знаменателя члена ряда
a = a / p                                   'Очередной член a ряда
n = n + 2: k = k + 1           
Loop y = Sin(x)                        'Непосредственное вычисление заданной функции
'ВЫВОД РЕЗУЛЬТАТОВ
Ответ = MsgBox("Заданное значение аргумента X=" & x & vbLf & "Вычисленная сумма ряда S=" & s& vbLf & "Количество членов ряда K=" & k& vbLf & " Функция SIN(X)=" & y,vbRetryCancel, "Результат работы процедуры")
Select Case Ответ
Case vbRetry: GoTo 10
Case vbCancel: GoTo 20
End Select
20 End Sub
Вот такой вот я недалёкий человек..
0
258 / 107 / 26
Регистрация: 15.03.2012
Сообщений: 353
Записей в блоге: 33
30.04.2013, 09:13 7
Цитата Сообщение от iNomad Посмотреть сообщение
zink0000, Я просто не составлял процедуры типа функций (Function.) Как я знаю это самостоятельная часть кода,знаю некоторый синтаксис.
В том - то вся и соль... По мере моих знаний,я работаю исключительно :
- Зашёл в Excel потом (Alt + F11) и начинаю писать программу.
Сталкивался я и работал я пока только с процедурой Sub ()
Как работать и использовать в VBA на данный момент процедуру,которую вы используете и запускать,к сожалению я не знаю.
И спасибо,за уделенное вами время.
Мда... так Вы ещё и не в тот раздел зашли.
Вам надо с VBA сюда:
https://www.cyberforum.ru/vba/
там раздел форума посвящённый именно VBA, а не Visual Basic, это несколько разные вещи.

Добавлено через 2 минуты
iNomad, попробуйте там спросить...
а я на VB пишу программы, а не на VBA,
так что в этом вопросе мало чем могу помочь.
0
0 / 0 / 0
Регистрация: 26.04.2013
Сообщений: 7
05.05.2013, 22:43  [ТС] 8
Неужели никто не знает?
0
призрак
3262 / 890 / 119
Регистрация: 11.05.2012
Сообщений: 1,702
Записей в блоге: 2
05.05.2013, 23:28 9
Цитата Сообщение от iNomad Посмотреть сообщение
наши методички просто ужасны
а в виде файла они у вас есть?
не могли бы поделиться?
0
0 / 0 / 0
Регистрация: 26.04.2013
Сообщений: 7
05.05.2013, 23:36  [ТС] 10
Пожалуйста
Вложения
Тип файла: pdf Programmirovanie_na_VBA.pdf (3.26 Мб, 30 просмотров)
0
призрак
3262 / 890 / 119
Регистрация: 11.05.2012
Сообщений: 1,702
Записей в блоге: 2
05.05.2013, 23:53 11
спасибо.
имхо, очень хорошая методичка.
152 страницы - практически мини-учебник.

как я и предполагал, почти такой же пример разобран и расписан полностью. стр. 89-91.
только ряд другой.
сути дела это не меняет нисколько.
разве что ваш ряд вдруг оказался бы расходящимся (точнее - сумма ряда не имела бы конечного предела).
кстати, не мешает проверить.

теории тоже вполне и даже больше чем достаточно - и про циклы, и про условия.
проблемы с математикой?
или что?

честно - не понимаю.
0
0 / 0 / 0
Регистрация: 26.04.2013
Сообщений: 7
06.05.2013, 21:58  [ТС] 12
Да,проблема с рядами.
В теорий мне всё понятно,но всё же я не понимаю

Добавлено через 21 час 53 минуты
Ладно..Спасибо всем кто уделил время на просмотр данной темы.Жаль что так и не удалось выполнить это.
Можно закрывать.
0
06.05.2013, 21:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.05.2013, 21:58
Помогаю со студенческими работами здесь

Составить программу для приближённого вычисления заданной функции у(х)
Составить и отладить программу для приближённого вычисления заданной функции у(х) путём...

Составить и отладить программу для приближённого вычисления заданной функции
C# Составить и отладить программу для приближённого вычисления заданной функции y(x),путём...

Составить и отладить программу для приближенного вычисления заданной функции
Составить и отладить программу для приближенного вычисления заданной функции y(x) путем...

Составить и отладить программу для приближённого вычисления заданной функции y(x)
C# Составить и отладить программу для приближённого вычисления заданной функции y(x),путём...


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

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

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