Вычисление значений тригонометрических функций на основе разложения в ряд Маклорена |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
Вычисление значений тригонометрических функций на основе разложения в ряд Маклорена |
Mad Dam |
3.01.2009 14:28
Сообщение
#1
|
Новичок Группа: Пользователи Сообщений: 18 Пол: Мужской Реальное имя: Бадык Репутация: 0 |
помогите пожалуйста сделать задание...
Вычисление значений тригонометрических функций на основе разложения в ряд Маклорена 1. Вычислить с заданной точностью значения тригонометрических функций arctg(x); 2. Построить графики функций arctg(x), где x - ограниченно; 3. Оценить погрешности вычислений; |
volvo |
3.01.2009 14:40
Сообщение
#2
|
Гость |
Mad Dam, само разложение функции в ряд Маклорена знаешь, как делается? Я имею в виду не запрограммировать, а просто разложить, что будет из себя представлять ряд для Arctg(x)?
|
Mad Dam |
3.01.2009 15:56
Сообщение
#3
|
Новичок Группа: Пользователи Сообщений: 18 Пол: Мужской Реальное имя: Бадык Репутация: 0 |
вот я нашел в интернете...
arctg x=x-x^3/3+x^5/5-x^7/7+...+(-1)^n*(x^(2n+1)/(2n+1)) |
volvo |
3.01.2009 18:36
Сообщение
#4
|
Гость |
Цитата вот я нашел в интернете... Вот и прекрасно... Теперь пишешь функцию, вычисляющую значение этого ряда с заданной точностью Eps:function _arctan(x: double): double;, и стоишь графики (это уже самостоятельно, можешь использовать Chart, можно рисовать вручную на Canvas) с использованием этой функции, и с использованием библиотечной Math.ArcTan. Погрешность вычисляешь, суммируя модуль разности библиотечной и своей функции. Попробуй, что не получится - скажешь... |
Mad Dam |
3.01.2009 19:10
Сообщение
#5
|
Новичок Группа: Пользователи Сообщений: 18 Пол: Мужской Реальное имя: Бадык Репутация: 0 |
скажи пожалуйста...с использованием какой именно функции и что такое библиотечная Math.ArcTan...?
|
volvo |
3.01.2009 19:16
Сообщение
#6
|
Гость |
Я тебе выше написал код. Так _arctan, это по-твоему, что? Не функция? Программ "под ключ" я уже давно не пишу, думай сам. А насчет библиотечной функции - подключаешь модуль Math в списке Uses, и используешь функцию ArcTan оттуда для проверки результатов самописной функции.
|
Mad Dam |
3.01.2009 19:21
Сообщение
#7
|
Новичок Группа: Пользователи Сообщений: 18 Пол: Мужской Реальное имя: Бадык Репутация: 0 |
спасибо огромное...сейчас попробую..
|
Mad Dam |
4.01.2009 13:31
Сообщение
#8
|
Новичок Группа: Пользователи Сообщений: 18 Пол: Мужской Реальное имя: Бадык Репутация: 0 |
привет..а тот код написан на delphi или pascal? извини за глупые вопросы, просто я мало чего в этом понимаю..(
|
volvo |
4.01.2009 13:59
Сообщение
#9
|
Гость |
Это Дельфийский код, раз там присутствует Result... Турбо Паскаль про эту переменную не знает...
А с чего возник этот вопрос? Что-то не получается откомпилировать в Дельфи? Тогда говори, что именно. |
Mad Dam |
4.01.2009 14:06
Сообщение
#10
|
Новичок Группа: Пользователи Сообщений: 18 Пол: Мужской Реальное имя: Бадык Репутация: 0 |
ну вот я вставляю код, который ты мне прислал после implementation
запускаю на выполнение, он запускает, но результата ничего не пишет...вот я думаю, сейчас надо добавить написать в Uses - Math, далее добавить в форму Button и Chart, и через x:=-1; while x<=1 do begin s.AddXY(x , _arctan(x) ); x:=x+0.0001; end; построить график арктангенса, только я не пойму для чего при построении графика нужен модуль Math и функция arctan... |
volvo |
4.01.2009 14:11
Сообщение
#11
|
Гость |
Цитата ну вот я вставляю код, который ты мне прислал после implementation запускаю на выполнение ... и что ты хочешь, чтоб случилось? Я тебе привел функцию, которая что-то вычисляет. Эту функцию еще надо вызвать, чтобы получить какой-нибудь результат, правда? Ты ее вызывал? Нет. Вот, вызывай, и отображай результат хотя бы в Memo или StringGrid-е, чтобы его было видноДобавлено через 3 мин. Цитата только я не пойму для чего при построении графика нужен модуль Math и функция arctan... Задание перечитай внимательно: Цитата 3. Оценить погрешности вычислений; Как ты собрался оценивать погрешность, не используя КАК МИНИМУМ ДВЕ функции? Одну я написал, вторая - библиотечная... Я ж сказал: вычисляешь модуль разности, и делишь его на количество вычисленных значений. Получаешь среднюю погрешность...Ты для себя сначала словесный алгоритм составь, не бросайся сразу что-то программировать, пойми задачу, что вообще от тебя требуется... |
Mad Dam |
4.01.2009 14:33
Сообщение
#12
|
Новичок Группа: Пользователи Сообщений: 18 Пол: Мужской Реальное имя: Бадык Репутация: 0 |
спасибо..
блин...я даже не знаю как ее вызвать и записать в StringGrid..вот я тупой Добавлено через 10 мин. вот нашел в интернете вчера код на паскале для разложения косинуса в ряд...только там график не строится.. Program Cosin1; var n: word; Cosa: double; xx, slagaem: double; eps,cos1: double; begin n:=0; cosa:= 1; slagaem:= 1; writeln('Вычислим косинус заданного угла.'); write('Введи угол (в радианах, <= 0.7)'); readln(xx); write('Введи допустимую погрешность (1E-5)--> '); readln(eps); Repeat slagaem := -slagaem*sqr(xx)/((n+1)*(n+2)); Cosa := Cosa + slagaem; inc(n,2); until abs(slagaem) < eps; cos1:= cos(xx); writeln('Cosa = ',cosa,' Cos(x) = ',cos1); writeln('Погрешность факт. = ',abs(cosa - cos1)); readln; end. помоги пожалуйста перестроить его для арктангенса..может так полегче будет..а то я не знаю..вообще ни в чем не разбираюсь, а сделать как-то нужно, чтоб не выкинули..=( |
volvo |
4.01.2009 16:05
Сообщение
#13
|
Гость |
Вот программа:
unit Unit1;, на Chart-е одна Серия, типа TLineSeries... После нажатия на кнопку получаешь в Чарте график арктангенса, а в Edit-е - среднюю погрешность вычисления. Вот так это выглядит: |
dron4ik |
5.01.2009 14:39
Сообщение
#14
|
Бывалый Группа: Пользователи Сообщений: 318 Пол: Мужской Репутация: 0 |
Попробуй по другому по решать)
|
Mad Dam |
10.01.2009 15:49
Сообщение
#15
|
Новичок Группа: Пользователи Сообщений: 18 Пол: Мужской Реальное имя: Бадык Репутация: 0 |
спасибо большое...я честно очень тебе благодарен...
и извини что раньше не поблагодарил...просто у меня компьютер сломался и я только что его починил...еще раз огромное спасибо! я летом в штаты лечу, тебе сувенир привезу)..серьезно! Добавлено через 7 мин. а скажи пожалуйста...где он вычисляет значение функции применяя алгоритм...вернее где выводит...? |
Mad Dam |
10.01.2009 19:17
Сообщение
#16
|
Новичок Группа: Пользователи Сообщений: 18 Пол: Мужской Реальное имя: Бадык Репутация: 0 |
вот смотри код немного переделал...
unit Unit1; получилася следущая программа... Эскизы прикрепленных изображений |
Mad Dam |
10.01.2009 21:45
Сообщение
#17
|
Новичок Группа: Пользователи Сообщений: 18 Пол: Мужской Реальное имя: Бадык Репутация: 0 |
volvo, помоги пожалуйста...исправить и сделать что не так...
Сообщение отредактировано: Mad Dam - 10.01.2009 21:46 |
volvo |
10.01.2009 22:00
Сообщение
#18
|
Гость |
Ты сначала расскажи, что такое "Проверка вычислений"? Ты вычисляешь одно значение с помощью функции ArcTan, значение при X = 1.0. Что именно ты этим проверяешь?
По поводу погрешности - обнули Delta там же, где обнуляешь N, получишь правильный результат погрешности... |
Mad Dam |
11.01.2009 11:12
Сообщение
#19
|
Новичок Группа: Пользователи Сообщений: 18 Пол: Мужской Реальное имя: Бадык Репутация: 0 |
ну правильность решения _arctan(x) проверяю с помощью Math'овской ArcTan.....или это выводится где и я выводил _arctan?
Добавлено через 9 мин. вот он выводит... Маклорен = 2,07772247244556E-307 Проверка = 2,07772247244556E-307 Погрешность = 2,79364812104946E-6 правильно же?) Сообщение отредактировано: Mad Dam - 11.01.2009 11:16 |
dron4ik |
11.01.2009 13:40
Сообщение
#20
|
Бывалый Группа: Пользователи Сообщений: 318 Пол: Мужской Репутация: 0 |
Помогите написать функцию которая осуществляет это разложение
Вот разложил синус по ряду маклорена: Сообщение отредактировано: dron4ik - 11.01.2009 14:35 Эскизы прикрепленных изображений |
Текстовая версия | 17.05.2024 4:01 |