![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
otherside |
![]()
Сообщение
#1
|
Студент ![]() ![]() Группа: Продвинутые Сообщений: 98 Регистрация: 29.2.2008 Город: красноярск Учебное заведение: КрижтИрГупс Вы: студент ![]() |
подскажите пожалуйста как сделать, нужно в паскале написать программу, которая бы высчитывала значения функций y=(1/2)*ln{(1+x)/(1-x)} и s=x+(x^3)/3+(x^5)/5+(x^7)/7 при x{0,2;0.8} с шагом dx=0,2. после всех вычислений программа должна сравнить значения у и s, так чтобы разница между ними не превышала 0,01, и если такое значение получилось, то программа должна вывести то значение х при котором погрешность равна 0,01. я так поняла что s это сумма {x^(2n-1)}/2n-1
|
![]() ![]() |
creer |
![]()
Сообщение
#2
|
Студент ![]() ![]() Группа: Продвинутые Сообщений: 121 Регистрация: 28.10.2007 Город: Екатеринбург Учебное заведение: УГТУ-УПИ Вы: студент ![]() |
А вроде задание было другим (IMG:style_emoticons/default/wink.gif).
Пишем функцию, вычисляющую ряд до заданного члена n в точке x. Код function f(x:real; n: integer): real; var s: real; i: integer; begin s:=0; for i:=1 to n do s:=s+(exp((2*n-1)*ln(x)))/(2*n-1); f:=s; end; Функция вычисляющая при каком n погрешность станет меньше eps. Если, например, fn(0.2, 0.001) вернет 2, то уже при 2 членах ряда погрешность менее 0.001 в точке 0.2. Код function fn(x: real; eps: real): integer; var y: real; n: integer; s: real; begin y:=(1/2)*ln((1+x)/(1-x)); n:=1; s:=x; while abs(y-s) > eps do begin n:=n+1; s:=s:=s+(exp((2*n-1)*ln(x)))/(2*n-1); end; fn:=n; end; Думаю теперь Вы сможете составить программу (IMG:style_emoticons/default/smile.gif). |
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 25.5.2025, 22:21 |
Зеркало сайта Решебник.Ру - reshebnik.org.ru