![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Account |
![]()
Сообщение
#1
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 212 Пол: Мужской Репутация: ![]() ![]() ![]() |
Дана функция 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 |
![]()
Сообщение
#2
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 212 Пол: Мужской Репутация: ![]() ![]() ![]() |
Все,проверил с помощью метода трапеций
![]() P.S. Извиняюсь перед админом за 2 поста подряд, думал он добавит к первому, как произошло ранее в другой теме), а получилось отдельным постом( Сообщение отредактировано: Account - 2.01.2009 23:32 |
Lapp |
![]()
Сообщение
#3
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Все,проверил с помощью метода трапеций Это не очень хорошая проверка, ибо так ты не проверяешь логику всей программы. Лучше будет, если ты подставишь вместо данной функции такую, которая интегрируется по формулам - например, x или x^2.![]() P.S. Извиняюсь перед админом за 2 поста подряд, думал он добавит к первому, как произошло ранее в другой теме), а получилось отдельным постом( Непонятно, за что ты извиняешься. Разве что-то на эту тему есть в Правилах? ![]() А объединяются (причем автоматически) сообщения, которые были отосланы не позже, чем через 20 мин. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Account |
![]()
Сообщение
#4
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 212 Пол: Мужской Репутация: ![]() ![]() ![]() |
Lapp
Цитата Это не очень хорошая проверка, ибо так ты не проверяешь логику всей программы. Лучше будет, если ты подставишь вместо данной функции такую, которая интегрируется по формулам - например, x или x^2 Спасибо за совет. Учел, и подставил как ты и советовал x и x^2. Результаты также положительны. ![]() ![]() ![]() ![]() Сообщение отредактировано: Account - 3.01.2009 10:30 |
Account |
![]()
Сообщение
#5
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 212 Пол: Мужской Репутация: ![]() ![]() ![]() |
Нужно решить уравнение методом Ньютона 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, все код неработате, нужно уменьшать шаг. Можно ли как нито избавится от зависимости шаг-точность? Сообщение отредактировано: Account - 3.01.2009 19:24 |
![]() ![]() |
![]() |
Текстовая версия | 8.08.2025 9:06 |