Определение входа функции по выходу (используется исчисление)

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

В проблеме указано:

«Используйте правило трапеций с различными числами приращений n, чтобы оценить расстояние, пройденное от t = 0 до t = 9. Найдите число D, для которого сумма трапеций находится в пределах 0,01 единицы этого предела (468), когда n > D ."

Я оценил предел с помощью калькулятора «подключи и пыхни» и знаю, что с помощью обычной алгебраической функции я мог бы легко сделать:

limit (468) = алгебраическое выражение с переменной x (затем решить для x)

Однако как мне это сделать для запрограммированной функции? Как мне определить вход запрограммированной функции по выходным данным?

Я вычисляю определенный интеграл для многочлена (x^2+11x+28)/(x+4) между интервалами от 0 до 9. Функция правила трапеций в моем калькуляторе вычисляет определенный интеграл между интервалами от 0 до 9. используя заданное количество трапеций, n.

В общем, я хочу знать, как это сделать:

Решите для n: 468 = trapezoidal_rule(a = 0, b = 9, n);

Код для trapezoidal_rule(a, b, n) на моем TI-83:

Prompt A
Prompt B
Prompt N
(B-A)/N->D
0->S
A->X
Y1/2->S
For(K,1,N-1,1)
X+D->X
Y1+S->S
End
B->X
Y1/2+S->S
SD->I
Disp "INTEGRAL"
Disp I

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

Редактировать: это не часть моей домашней работы — просто интеллектуальное любопытство.


person Gio Borje    schedule 08.10.2010    source источник


Ответы (1)


многочлен, (x^2+11x+28)/(x+4)

Это равно х+7. Правило трапеций должно давать точно правильные результаты для этой функции! Я предполагаю, что на самом деле это не та функция, с которой вы работаете...

Не существует общего способа определить по выходным данным функции, каковы были их входные данные. (Во-первых, многие функции могут сопоставлять несколько разных входных данных с одним и тем же выходным.)

Итак, есть формула для ошибки, когда вы применяете правило трапеций с заданным количеством шагов к заданной функции, и вы можете использовать ее здесь, чтобы определить нужное вам значение n... но (1) это не так. ужасно красиво, и (2) кажется не очень разумным ожидать от вас этого, когда вы только начинаете изучать правило трапеций. Я предполагаю, что ваш учитель на самом деле просто хотел, чтобы вы «подключили и пыхтели».

Я не знаю (см. выше), какую функцию вы на самом деле интегрируете, но давайте представим, что это просто x^2+11x+28. Ниже я назову это f(x). Интеграл этого от 0 до 9 на самом деле 940,5. Предположим, вы разделили интервал [0,9] на n частей. Тогда правило трапеций дает вам: [f(0)/2 + f(1*9/n) + f(2*9/n) + ... + f((n-1)*9/n) + f(9)/2] * 9/n.

Давайте разделим это на вклады от x ^ 2, от 11x и от 28. Оказывается, трапециевидное приближение дает в точности правильный результат для последних двух. (Упражнение: выясните, почему.) Таким образом, ошибка, которую вы получаете из правила трапеций, точно такая же, как и ошибка, которую вы получили бы из f(x) = x^2.

Фактический интеграл x^2 от 0 до 9 равен (9^3-0^3)/3 = 243. Трапециевидное приближение равно [0/2 + 1^2+2^2+...+(n- 1)^2 + п^2/2] * (9/п)^2 * (9/п). (Упражнение: выясните, почему.) Существует стандартная формула для суммы последовательных квадратов: 1^2 + ... + n^2 = n(n+1/2)(n+1)/3. Таким образом, наше трапециевидное приближение интеграла от x^2 равно (9/n)^3, умноженному на [(n-1)(n-1/2)n/3 + n^2/2] = (9/n)^ 3 раза [n^3/3+1/6] = 243 + (9/n)^3/6.

Другими словами, ошибка в этом случае точно равна (9/n)^3/6 = (243/2)/n^3.

Так, например, ошибка будет меньше 0,01, когда (243/2)/n^3 ‹ 0,01, что совпадает с n^3 > 100*243/2 = 12150, что верно, когда n >= 23 .

[ОТРЕДАКТИРОВАНО, чтобы добавить: я не проверял тщательно ни алгебру, ни арифметику; могут быть небольшие ошибки. Я так понимаю, вас интересуют идеи, а не конкретные цифры.]

person Gareth McCaughan    schedule 06.02.2011
comment
Спасибо за ответ, МакКоган. Приятно видеть это с точки зрения программиста, но частичный ответ был найден в разделе «Математика» после того, как я сопоставил код с его соответствующими алгебраическими аналогами: math.stackexchange.com/questions/6491/. - person Gio Borje; 06.02.2011
comment
(На самом деле я не только программист, но и математик.) - person Gareth McCaughan; 06.02.2011
comment
Вы бы назвали себя специалистом по информатике? - person Gio Borje; 07.02.2011
comment
Возможно нет; У меня нет формального образования или квалификации в области компьютерных наук как таковых, и я не занимался компьютерными науками как таковыми. Однако я не думаю, что точные слова имеют большое значение. - person Gareth McCaughan; 08.02.2011