![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
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 Город: Екатеринбург Учебное заведение: УГТУ-УПИ Вы: студент ![]() |
Хм. А чем плохи функции? С ними же удобнее...
Код var x: real; y: real; n: integer; 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*i-1)*ln(x)))/(2*i-1); f:=s; end; 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+(exp((2*n-1)*ln(x)))/(2*n-1); end; fn:=n; end; begin x:=0.2; while x<=0.8 do begin y:=(1/2)*ln((1+x)/(1-x)); //Считаем y writeln('Значение функции в точке x=', x:1:1, ', y=', y:8:8); //Выводим значение y for n:=1 to 5 do //Для n от 1 до 5 выводим значения суммы ряда writeln('В точке x=', x:1:1, ', при n=', n, ', сумма ряда равна s=', f(x, n):8:8); writeln('При n=', fn(x, 0.001), ', погрешность составит менее 0.001'); x:=x+0.2; end; end. |
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 26.5.2025, 0:54 |
Зеркало сайта Решебник.Ру - reshebnik.org.ru