Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Borland C++] Вычислить значение 
V
    Опции темы
ausar
Дата 17.8.2007, 03:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 127
Регистрация: 3.8.2007

Репутация: нет
Всего: нет



В очередной раз прошу помощи в непосильной для меня задаче на Borland C
Даны вещественные числа a, b. Значения функции записать в массив. Вычислить значение интеграла, используя:

1) Формулу трапеций

I1=h*[f(a)/2+f(a+h)+f(a+2h)+…+f(a+(n-1)h)+f(b)/2]

2) Формулу Симпсона

I2=h/3*(f(a)+f(b)+4*(f(a+h)+f(a+3h)+…+f(a+(n-1)h))+

2*(f(a+2h)+f(a+4h)+…+f(a+(n-2)h)))

h=(b-a)/n, n=100.


при f(x)=1/((0.5+0.1x3)√x); a=0.1; b=2.1;

Мда читаю и ужасаюсь :(
PM MAIL   Вверх
Guedda
Дата 17.8.2007, 08:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 6
Всего: 78




M
Guedda
Модератор: И в очередной раз называете тему не поправилам! Оформите тему по правилам раздела!



--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
ausar
Дата 17.8.2007, 08:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 127
Регистрация: 3.8.2007

Репутация: нет
Всего: нет



Прошу прощения. Я б отредактировал да незнаю как тему чтоб по правилам раздела. В следующий раз обязательно буду внимательней.
PM MAIL   Вверх
Guedda
Дата 17.8.2007, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 6
Всего: 78




M
Guedda
Заголовок исправил



--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
Arks
Дата 20.8.2007, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 7.5.2006
Где: Барнаул

Репутация: нет
Всего: нет



Да ладно вам. Тут же всё банально. Решается обыкновенным циклом. Обе задачи.

Код

float f(float x)
{
 // Здесь считаем f(x). В лоб. По формуле.
 return ...
}

void main(void)
{
 float a = 0.1, b = 2.1;
 float i1, i2;
 float h;
 int j;
 
 // Вводите h или считаете его по формуле
 // Вводите n
 
 // 1)
 i1 = f(a)/2;
 j = 1;
 for(j = 1; j < n; j++)
 {
  i1 += f(a+j*h);
 }
 i1 += f(b)/2;
 il *= h;
 
 // 2) делается аналогично
}


Это сообщение отредактировал(а) Arks - 20.8.2007, 14:48
PM MAIL ICQ Skype MSN   Вверх
ausar
Дата 24.8.2007, 04:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 127
Регистрация: 3.8.2007

Репутация: нет
Всего: нет



Спасибо Arks!

Я бы с радостью продолжил написание кода но к сожалению не хватает ума переварить формулы.
Мне еще подсказали что для вычисления интеграла нужно указать предел интегирования.

Один явно не справлюсь  smile 

PM MAIL   Вверх
Arks
Дата 25.8.2007, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 7.5.2006
Где: Барнаул

Репутация: нет
Всего: нет



Цитата
Мне еще подсказали что для вычисления интеграла нужно указать предел интегирования.

Пределы интегрирования (концы отрезка) - это ваши значения a и b. n - задано, т.е. это константа. Значение h вычисляется по очень простой формуле.
Функция f(x) также вычисляет по простой формуле. Надо лишь заменить √x на sqrt(x) и далее в лоб эту форумулу записать (вместо многоточия в моей программе):
Код
return ...


Формула Симпсона тоже не такая уж и сложная. Вот посмотрите здесь:
http://ru.wikipedia.org/wiki/%D0%A4%D0%BE%...%BE%D0%BD%D0%B0
Вам нужна только часть, которая справа от знака равно (на левую не смотрите, не заморачивайтесь). Там всего лишь два цикла (знак суммы, k=1..n/2), вызовы вашей функции f(x) (вы ведь её уже записали?) и простые арифметические операции.
Циклы посчитайте отдельно и сохраните их значения в какие-нибудь переменные. Потом просто выполните суммирование/умножение/деление.
Всё просто.
В любом случае, можете стучаться ко мне в аську или в мсн, если уж совсем непонятно. Но без кода (без хоть какой-то попытки его написать) просьба не беспокоить.
PM MAIL ICQ Skype MSN   Вверх
ausar
Дата 28.8.2007, 03:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 127
Регистрация: 3.8.2007

Репутация: нет
Всего: нет



Дело не втом что мне негде прочитать или мне лень. Нет мне совсем не лень, я был бы очень горд перед самим собой еслиб смог сделать это самостоятельно. smile   Просто мануал по алгебре для тех кто на бронепоезде еще не написали.  smile  Я в ней дуб дубом. Очень хочется сказать все запрещенные выше слова. Но не буду злить модератора и заменю их на 
smile 
PM MAIL   Вверх
ausar
Дата 4.9.2007, 02:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 127
Регистрация: 3.8.2007

Репутация: нет
Всего: нет



Это по формуле трапеций. 

Код

int i=0;
double h=0;
double I1=0;

h=(b-a)/n;

x=a;
  for (i=0;i<n;i++)    
  {
   f[i]=1/((0.5+0.1*x*x*x)*sqrt(x));   
   x+=h;
  }


I1+=h*f[0]/2;

for (i=1;(i<(n-1));i++)    I1+=h*f[i];

I1+=h*f[n-1]/2;

printf ("Rezult : %g \n", I1);

return 0;
}


Подсобите с формулой симпсона

Это сообщение отредактировал(а) Guedda - 4.9.2007, 07:34
PM MAIL   Вверх
Dov
Дата 4.9.2007, 07:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


аСинизатор
***


Профиль
Группа: Завсегдатай
Сообщений: 1721
Регистрация: 10.5.2003
Где: Эрец-Исраэль

Репутация: 50
Всего: 88





--------------------
Тут вечности запах томительный,
И свежие фрукты дешевые, 
А климат у нас – изумительный, 
И только соседи – #уевые. 
                           Игорь Губерман.
PM   Вверх
ausar
Дата 4.9.2007, 09:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 127
Регистрация: 3.8.2007

Репутация: нет
Всего: нет



Вот это клад!. всем большое человеческое спаибо!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0660 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.