Дана функция f(x)=x*exp(x)*sin(x) интервал [0;3]. Методом прямоугольников вычислить интеграл. Побыстрому накидал (не оптимизировал)))). Вот программа
uses crt; var f:real; x:real; i:integer; a,b:real; begin clrscr; b:=3; while (x < 2.97) do begin f:=f+(x*exp(x)*sin(x)); writeln('x= ',x:2:5,' | f(x)= ',f:2:2); x:=x+0.03; i:=i+1; end; writeln('--------------'); writeln('Itog: f(x) = ',((b-a)/100)*f:2:2); {writeln('i=', i);} readkey; end.
только вот как проверить? нет у меня ни одного готового примера))))
Account
3.01.2009 3:30
Все,проверил с помощью метода трапеций(результаты положительные))))
P.S. Извиняюсь перед админом за 2 поста подряд, думал он добавит к первому, как произошло ранее в другой теме), а получилось отдельным постом(
Lapp
3.01.2009 10:45
Цитата(Account @ 2.01.2009 23:30)
Все,проверил с помощью метода трапеций(результаты положительные))))
Это не очень хорошая проверка, ибо так ты не проверяешь логику всей программы. Лучше будет, если ты подставишь вместо данной функции такую, которая интегрируется по формулам - например, x или x^2.
Цитата(Account @ 2.01.2009 23:30)
P.S. Извиняюсь перед админом за 2 поста подряд, думал он добавит к первому, как произошло ранее в другой теме), а получилось отдельным постом(
Непонятно, за что ты извиняешься. Разве что-то на эту тему есть в Правилах? Пость сколько угодно, если это не флуд. А объединяются (причем автоматически) сообщения, которые были отосланы не позже, чем через 20 мин.
Account
3.01.2009 14:27
Lapp
Цитата
Это не очень хорошая проверка, ибо так ты не проверяешь логику всей программы. Лучше будет, если ты подставишь вместо данной функции такую, которая интегрируется по формулам - например, x или x^2
Спасибо за совет. Учел, и подставил как ты и советовал x и x^2. Результаты также положительны. (теперь надо делать более привлекательный код программы и еще метод парабол заделать, а мне он что то не очень нравится) (Тяжело вспоминать математику, занимался 4 года назад ей)
Account
3.01.2009 18:39
Нужно решить уравнение методом Ньютона 1-0.4x-arcsin(x)=0. интервал [0;1]. Как представить арксинус?
А пока решал темже методом следующее уравнение exp(x)-x^2=0 интервал [-2,0], вот что вышло
uses crt; function kor(x,b,eps:double):real; var y,d_y:real; begin y:=x-((exp(x)-sqr(x))/(exp(x)-2*x)); x:=x+0.0001; d_y:=x-((exp(x)-sqr(x))/(exp(x)-2*x)); while (abs(d_y-y) >=eps) and (x<=0) do begin writeln('--------------------------------------------------'); writeln('x= ',x:5:5,' | exp= ',abs(d_y-y):5:8,' | f= ',exp(x)-sqr(x):5:8); y:=d_y; x:=x+0.0001; d_y:=x-((exp(x)-sqr(x))/(exp(x)-2*x)); end; end;
var a,x,b:real; y,d_y:real; begin clrscr; kor(-2,0,10E-8); readkey; end.
; Но проблема в следующем, если уменьшить точность eps до 10E-5, все код неработате, нужно уменьшать шаг. Можно ли как нито избавится от зависимости шаг-точность?
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.