LINUX.ORG.RU

Объясните как делать задание по программированию

 , ,


0

1

Задание, собственно https://ibb.co/Qr0Njjm

Не шарю за матан, выше 3 не получал да и не надо. На практику препод по прог дал это. Если кто-то знает как делать, то объясните пожалуйста, рассматриваю варианты с оплатой за это задание.



Последнее исправление: PURGEN143 (всего исправлений: 1)
Ответ на: комментарий от LINUX-ORG-RU

Препод по программированию на учебную практику дал. Надо закрыть практику. Преподу по матеше пофиг, он тест даёт. Натыкаешь на >=40% и трояк обеспечен. Нервы мотать на 4,5 не хотелось

PURGEN143
() автор топика

выше 3 не получал да и не надо

видать, надо

anonymous
()

А у нас по прежнему в системе имитации образования не отличают программирование от матана? 🤦‍♂️

erfea ★★★★★
()
Ответ на: комментарий от erfea

А у нас по прежнему в системе имитации образования не отличают программирование от матана? 🤦‍♂️

в скриншоте по ссылке НЕТУ МАТАНА

вообще нет, совсем…

про матан это фантазия топик-стартера

MKuznetsov ★★★★★
()

Там обычная арифметика. Ну то есть матан есть в выводе этой формулы, но тебе же задают не вывести её, а просто реализовать.

Xenius ★★★★★
()

А что конкретно тебе не понятно? Там есть формулы тебе нужно тупо посчитать их на компьютере, написать цикл который будет добавлять по одному члену ряда и записывать результаты, потом график построить по ним и изучить сходимость, с типами данных поиграть.

TDrive ★★★★★
()

Объясните как делать задание по программированию

попробуй заюзать AI: https://copilot.github.com/

А то пишут же в толксах, что программисты больше не нужны. Может AI за тебя всё и решит…

fsb4000 ★★★★★
()

Правильная задача. Такие надо щёлкать, иначе дальше нету смысла штаны просиживать. Удачи. Матана там нету. Там готовая формула, которую надо реализовать.

peregrine ★★★★★
()
Последнее исправление: peregrine (всего исправлений: 1)

Кстати,

csch(x) = 1/sinh(x) 

А sinh(x) есть в стандартной библиотеке С++. Так что ты можешь даже сверять результаты и видеть правильно ли ты реализовал формулу или нет…

https://en.cppreference.com/w/cpp/numeric/math/sinh

fsb4000 ★★★★★
()

По формуле из задания.

t184256 ★★★★★
()

Печально и тоскливо видеть такое. Вам ведь диплом потом выдадут. Как вам уже раз пять сказали, это не матан, это скорее численные методы, задача совсем несложная, но и к ней можно подойти творчески.

anonymous
()
Ответ на: комментарий от anonymous

да понял я уже, насколько я понял там самое сложное - это формулу общего члена ряда записать на плюсах

PURGEN143
() автор топика
Ответ на: комментарий от filosofia

Матан нужен, чтобы прочитать эти формулы жи.

По твоему сообщение написано так:

«Пацаны, меня тут препод душит! Дал задание то ли по русскому, то ли по математике, то ли… Не понятно. Выручайте, с меня как обычно.»

anonymous
()
Ответ на: комментарий от PURGEN143

я понял там самое сложное - это формулу общего члена ряда записать на плюсах

А что в этом сложного? Цикл for еще не проходили?

SZT ★★★★★
()

Такое ощущение что каждый комментатор в треде предподаватель математики и позорит ТСа как стадо овец мычит на пастуха, хотя по факту разбираются в вопросе максимум полтора человека.

anonymous
()
Ответ на: комментарий от bhfq

А прочитать что там написано тоже не надо?

Не, ну если считать математическим знанием просто умение распарсить формулу... ну ок

Про разложение https://en.wikipedia.org/wiki/Hyperbolic_functions#Taylor_series_expressions вот в вики есть, числа Бернулли вот по той формуле https://ru.wikipedia.org/wiki/Числа_Бернулли#Рекуррентная_формула можно посчитать. А еще они в boost есть https://www.boost.org/doc/libs/1_76_0/libs/math/doc/html/math_toolkit/number_...

SZT ★★★★★
()
Последнее исправление: SZT (всего исправлений: 1)
Ответ на: комментарий от bhfq

считаю, что автору надо бежать посыпать голову пеплом, потому что пальцем о палец для решения не ударил и при этом пишет сперва не в Job, а в разработку.

csch(x) { // гиперболический косеканс, но что это знание тебе даст, когда дано разложение в ряд?
    если x > 0 {
        если pow(x, 2) < pow(pi, 2) {
            вернуть [в задаче не указано, что такое bn](bn * pow(x, (2*n) - 1)) * (2 * pow(-1, n) * (pow(2, 2n-1) - 1)) / (факториал от 2n)
        } иначе {
            вернуть 2 * (exp(-(2 * n + 1) * x)) с произвольным количеством членов (точностью) n
        }
    } иначе {
        вернуть "отражение" положительной части функции -1 * csch(x)
    }
}
mazdai ★★★
()
Ответ на: комментарий от erfea

А у нас по прежнему в системе имитации образования не отличают программирование от матана?

А у Вас в голове по прежнему не знают что в программировании дофига математики?!

По сабжу - знакопеременные ряды лучше суммировать с конца. Я бы добавил прям ещё в условие сравнение двух реализаций для двух рядов.

А вообще мы такие вещи в школе делали еще, на доске писалась огромная сумма и давай, кодь ее на листочке на паскале. Компьютеров тогда было мало.

AntonI ★★★★★
()
Ответ на: комментарий от mazdai

Задачка простая, и тс непонятно чем занимался год, но тут в задаче есть еще один интересный пункт: исследование сходимости. И вот как эту сходимость показать уже вопрос, потому как признаки сходимости они для бесконечных рядов и аналитические. У меня есть две идеи, но насколько они правильные я не знаю:

  • Показать что условно сумма ряда 32, 64 и 128 элементов не отличаются друг от друга на некоторую величину погрешности.
  • Построить график сумм рядов где показать что рост суммы прекратился.
Silerus ★★★★
()
Ответ на: комментарий от Silerus

Тут проблема в том что ряд знакопеременный.

Обычно строится график зависимости логарифма ошибки от числа членов ряда и можно по нему глазами оценить порядок сходимости для какого то х, х надо брать разные.

AntonI ★★★★★
()
Ответ на: комментарий от AntonI

ну значит тс научится строить графики на заданном ему языке программирования или познает gnuplot. На самом деле редко встречаются преподаватели, к которым нельзя подойти и попросить объяснить.

Silerus ★★★★
()
Ответ на: комментарий от Silerus

ну значит тс научится строить графики на заданном ему языке программирования или познает gnuplot.

Не, gnuplot для тс это наверное слишком сложно, можно тупо писать числа в файл с расширением .csv, открывать его каким-нибудь libreoffice calc и потом строить график.

SZT ★★★★★
()

Все правильно ТС сказал, вон для metaprog решение элементарного квадратного уравнение уже матан :-)

Вы ничего не понимаете, это новое поколение детей-индиго, а вы все лалки анскильные и старпёры, сами не знаете, что такое матан.

Один топикстартер и разобрался)

Twissel ★★★★★
()
Ответ на: комментарий от SZT

тоже вариант, хотя тот же файлик и для gnuplot пойдет

Silerus ★★★★
()
Ответ на: комментарий от Twissel

это новое поколение детей-индиго

В связи с пандемией очень много вакансий курьеров. Кроме того на курортах катастрофически не хватает официантов, можно прямо вот уехать жить в Красную поляну. А в вуз то для этого зачем идти?!

а вы все лалки анскильные и старпёры

Это не толерантно, надо говорить «винтажные газогенераторы»

AntonI ★★★★★
()
Последнее исправление: AntonI (всего исправлений: 1)
Ответ на: комментарий от MKuznetsov

тут и программирования особо тоже нет, нужен калькулятор типа экселя, который посчитает и построит графики

EugeneBas ★★
()
Ответ на: комментарий от sparks

Это понятно, но мы же хотим красиво, а mathcad - дает эту возможность и без лишнего геморроя, хотя можно и в *office - все это сделать.

Silerus ★★★★
()
Ответ на: комментарий от AntonI

А то, как говорится тяжело в учении - легко за кассой в макдаке

sparks ★★★★
()
Ответ на: комментарий от AntonI

Да, да, тёзка, все правильно.

Я учту на будущее :-)

Twissel ★★★★★
()
Ответ на: комментарий от anonymous

Плюсую этого анонима. И обидно должно быть, в первую очередь ТС, а не нам, т.к. он занят х*ней, к которой у него не лежит душа. В данном случае, ни к матану, ни к программированию.

seiken ★★★★★
()
Ответ на: комментарий от AntonI

знакопеременные ряды лучше суммировать с конца

Тут-то ТС и спалится. Если вообще соизволит что-то написать, правда.

t184256 ★★★★★
()
Последнее исправление: t184256 (всего исправлений: 1)
Ответ на: комментарий от erfea

У нас «по прежнему в системе имитации образования» понимают, что основное назначение компов, почему они вообще появились, - расчеты по математическим формулам (помимо БД).

seiken ★★★★★
()
Ответ на: комментарий от mazdai

гиперболический косеканс, но что это знание тебе даст, когда дано разложение в ряд?

Будет проще отлаживаться и считать ошибку разложения, можно сравнивать что получилось в своем коде с готовой библиотечной функцией.

AntonI ★★★★★
()
Ответ на: комментарий от t184256

Можно еще отдельно суммировать отрицательтные и отдельно положительные члены, так в чем то проще алгоритмически.

Но мы тут все злые и ТС видимо ушел в печали в закат. Вот Лиза @Djanik ему точно не откажет в помощи!

AntonI ★★★★★
()
Последнее исправление: AntonI (всего исправлений: 1)
Ответ на: комментарий от AntonI

там же еще есть момент, а в задание его нет, мы же не можем суммировать ряд бесконечно, а точность не указана

Silerus ★★★★
()
Ответ на: комментарий от Silerus

Бесконечно не нужно - в какой то момент будет насыщение за счет конечной точности floating point.

Я там выше фигню сказал, у меня все таки мозг под численные схемы отформатирован а ряды это немного другое. Я бы эту задачу так решал:

  1. пишем код который считает сумму ряда, пример для экспоненты на питоне:
#!/usr/bin/python
from math import *
import os, sys

x, N = float(sys.argv[1]), int(sys.argv[2])

for i in range(N+1): print i, abs(exp(x)-sum(x**j/factorial(j) for j in range(i+1)))
  1. строим графики для различных x с достаточно большим N, скажем для x=-20 N=100 будет вот такое https://ibb.co/7NZgBCH

  2. смотрим на эти графики пристально. Там есть три интересных вещи - ошибка в насыщении (когда N растет а ошибка не меняется) err_eq, значение N=N_eq при котором ошибка достигает насыщения и максимальный наклон графика (скорость сходимости).

  3. Строим зависимость этих трех вещей от x, смотрим на них и и думаем;-)

AntonI ★★★★★
()
Последнее исправление: AntonI (всего исправлений: 1)
Ответ на: комментарий от AntonI

Объясни пожалуйста, это как «с конца»?

Я вычисляю по формуле (13) отсюда, там серии Ломмеля. Нужна первая формула. Я вычисляю отдельно реальные, отдельно мнимые сыммы. Прерываю ряд, когда следующий член будет меньше чем eps ~ 1e-9 от готовой суммы.

(а еще не могу аналитически перейти от А.4 к А.5. Видимо в манускрипте ошибка, потому как модифицированный вариант похож на численно интегрированный, а по оригинальным формулам - не похож)

sshestov ★★
()
Последнее исправление: sshestov (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.