Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Кафедра «Металлорежущие станки и инструменты»Стр 1 из 4Следующая ⇒
Кафедра «Металлорежущие станки и инструменты» КУРСОВАЯ РАБОТА По дисциплине «Информатика» Тема: «Использование численных методов при решении инженерных задач» Вариант - 23 Выполнила: студентка гр. УК уск. – 11 Сюткина С.А. Проверила: Старший преподаватель Мышкина А.В. Г. Пермь, 2011 г. I . Аппроксимация неизвестной функции методом наименьших квадратов
1. Линейная регрессия:
Даны значения:
Найти коэффициенты a и b выражения . Находим суммы:
Найденные коэффициенты a и b подставляем в уравнение и полученные значения заносим в таблицу
Программа для вычислений коэффициентов a и b :
CLS ‘Y=a*X+b" N = 10 DIM X(N), Y(N) DATA 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 FOR i = 1 TO N READ X(i) NEXT i 14.84,9.96,9.3,8.14,10.58,7.56,5.1,4.7,2.88,1.1
DATA 14.84, 9.96, 9.3, 8.14, 10.58, 7.56, 5.1, 4.7, 2.88, 1.1 FOR i = 1 TO N READ Y(i) NEXT i
FOR i = 1 TO N PRINT i, X(i), Y(i) NEXT i
a = 0: b = 0 FOR i = 1 TO N a = a + X(i): a1 = X(i) b = b + Y(i): b1 = Y(i) c = c + X(i) * Y(i): c1 = X(i) * Y(i) d = d + X(i) ^ 2: d1 = X(i) ^ 2 PRINT "i="; i, "a1="; a1, "b1="; b1, "c1="; c1, "d1="; d1 NEXT i PRINT i; a; b; c; d
dd = (d * N) - (a * a) da = (c * N) - (b * a) db = (d * b) - (a * c) PRINT "dd="; dd, "da="; da, "db="; db
a = da / dd b = db / dd PRINT "a="; a, "b="; b
FOR i = 1 TO N Ya = a * X(i) + b PRINT "i="; i, "Ya="; Ya NEXT i END
2 . Степенная регрессия:
Заданы значения:
Найти коэффициенты a и b выражения .
Прологарифмируем исходное уравнение:
Полученное уравнение является уравнением прямой линии:
Находим суммы:
Коэффициенты a и b подставляем в уравнение и значения Y заносим в таблицу
Результаты вычислений можно представить графически: Программа для вычислений коэффициентов a и b :
CLS PRINT "Y=a*X^b" N = 10 DIM X(N), Y(N) DATA 2,4,6,8,10,12,14,16,18,20 FOR i = 1 TO N READ X(i) NEXT i DATA 0.56, 0.21, 0.11, 0.07, 0.05, 0.04, 0.03, 0.02, 0.02, 0.02
FOR i = 1 TO N READ Y(i) NEXT i
FOR i = 1 TO N PRINT "X="; X(i), "Y="; Y(i) NEXT i FOR i = 1 TO N a = a + LOG(X(i)): a1 = LOG(X(i)) b = b + LOG(Y(i)): b1 = LOG(Y(i)) c = c + LOG(X(i)) * LOG(Y(i)): c1 = LOG(X(i)) * LOG(Y(i)) d = d + LOG(X(i)) ^ 2: d1 = LOG(X(i)) ^ 2 PRINT "i="; i, "a="; a1, "b="; b1, "c="; c1, "d="; d1 NEXT i PRINT "Summa", "A="; a, "B="; b, "C="; c, "D="; d dd = (d * N) - (a * a) da = (c * N) - (b * a) db = (d * b) - (a * c) PRINT "dd="; dd, "da="; da, "db="; db a = da / dd b2 = db / dd PRINT "b2="; b2 b = EXP(b2) PRINT "a="; a, "b="; b FOR i = 1 TO N y0 = Y(i) y1 = b * X(i) ^ a PRINT "X="; X(i), "Y="; Y(i), "y1="; y1 NEXT i END
3. Параболическая регрессия:
Заданы значения:
Найти коэффициенты a, b и с выражения . Коэффициенты данной аппроксимирующей функции a, b, c находят из условия минимума функции: Условия минимума функции сводятся к системе уравнений:
После преобразований получаем систему трёх линейных уравнений с тремя неизвестными:
При решении системы находим коэффициенты a, b, c.
Находим суммы:
dd = (e ∙ c ∙ n + d ∙ a ∙ c + d ∙ a ∙ c) - (c ∙ c ∙ c + d ∙ d ∙ n + a ∙ a ∙ e) = 435600 da = (g ∙ c ∙ n + d ∙ a ∙ b + f ∙ a ∙ c) - (b ∙ c ∙ c + f ∙ d ∙ n + a ∙ a ∙ g) = -208230 db = (e ∙ f ∙ n + g ∙ a ∙ c + d ∙ b ∙ c) - (c ∙ f ∙ c + d ∙ g ∙ n + b ∙ a ∙ e) = 2165394 dc = (e ∙ c ∙ b + d ∙ a ∙ g + d ∙ f ∙ c) - (c ∙ c ∙ g + d ∙ d ∙ b + a ∙ f ∙ e) = -5460973
Найденные коэффициенты a, b , c подставляем в уравнение и полученные значения заносим в таблицу
Результаты вычислений можно представить графически:
Программа для вычислений коэффициентов a , b , с:
PRINT "Y=a*X^2+b*X+c" CLS n = 10 DIM x(n), y(n) DATA 1,2,3,4,5,6,7,8,9,10 FOR i = 1 TO n READ x(i) NEXT i DATA -8.5, -3.5, -1.9, -0.7, 0.0, -0.3, -1.5, -2.7, -5.2, -11.7 FOR i = 1 TO n READ y(i) NEXT i FOR i = 1 TO n PRINT "X="; x(i); "Y="; y(i) NEXT i FOR i = 1 TO n a = a + x(i): a1 = x(i) b = b + y(i): b1 = y(i) c = c + x(i) ^ 2: c1 = x(i) ^ 2 d = d + x(i) ^ 3: d1 = x(i) ^ 3 e = e + x(i) ^ 4: e1 = x(i) ^ 4 f = f + x(i) * y(i): f1 = x(i) * y(i) g = g + x(i) ^ 2 * y(i): g1 = x(i) ^ 2 * y(i) PRINT "i="; i, "a="; a1; "b="; b1; "c="; c1; "d="; d1; "e="; e1; "f="; f1; "g="; g1 NEXT i dd = (e * c * n + d * a * c + d * a * c) - (c * c * c + d * d * n + a * a * e) da = (g * c * n + d * a * b + f * a * c) - (b * c * c + f * d * n + a * a * g) db = (e * f * n + g * a * c + d * b * c) - (c * f * c + d * g * n + b * a * e) dc = (e * c * b + d * a * g + d * f * c) - (c * c * g + d * d * b + a * f * e) PRINT "dd="; dd, "da="; da, "db="; db, "dc="; dc a = da / dd b = db / dd c = dc / dd PRINT "a="; a, "b="; b, "c="; c FOR i = 1 TO n y1 = a * x(i) ^ 2 + b * x(i) + c PRINT "i="; i, "y1="; y1 NEXT i END
Отделение корней уравнения
Составляем приблизительную схему:
Следовательно, уравнение имеет два действительных корня, лежащих в интервалах:
[1, 3] и [3, ¥].
Определенный интеграл
Вычислить интеграл с тремя десятичными знаками по формулам левых и правых прямоугольников, трапеций и Симпсона при n = 10, оценивая точность с помощью сравнения полученных результатов.
Заданы значения:
Метод прямоугольников
Приведем обобщенные формулы: по левой стороне по правой стороне Интерполирование
Дана таблица значений
Определить значения функции для х = -2, 0, 1 с точностью 0,01.
Таблица результатов:
График функции: Метод Гаусса.
Это метод решения системы линейных уравнений, состоящий в том, что последовательным исключением неизвестных систему
приводят к эквивалентной системе с треугольной матрицей:
Решение матрицы находят по рекуррентным формулам:
Дана система:
Построим определители
Результаты вычислений:
x 1 = 25,515 x 2 = 31,070 x 3 = 38,665 x 4 = -5,160
Метод деления пополам Ответ: Х = 9,682417Е-02 F = 2,351603Е-05 CLS 10 PRINT "ВВЕДИТЕ ИНТЕРВАЛ" 'NPUT "(A, B)="; A, B ‘A = 0: B = 1 E1 = .00001 X = B: GOSUB 40: F1 = F: IF F = 0 THEN 50 X = A: GOSUB 40: IF F = 0 THEN 50 IF SGN(F1) = SGN(F) THEN GOTO 10 20 X = (A + B) / 2: GOSUB 40 IF SGN(F1) = SGN(F) THEN B = X: F1 = F: GOTO 30 A = X 30 IF ABS(A - B) > E1 THEN 20 X = (A + B) / 2: GOSUB 40: GOTO 50 40 F = -6 + 61 * X + 10 * X ^ 2: RETURN 50 PRINT "X ="; X: PRINT "F = "; F END
Метод простой итерации CLS 'INPUT "X ="; X ‘X = -1 E1 = .0000000001# N = 100 FOR i = 1 TO N GOSUB 500 IF (F - X) < X * E1 THEN 1000 X = F NEXT i PRINT " нет точности" STOP 500 F = -6 + 61 * X + 10 * X ^ 2 RETURN 1000 PRINT " X ="; X: END
Х = 9,682421Е-02
Метод хорд
INPUT "НАЧАЛЬНОЕ ПРИБЛИЖЕНИЕ X1=";X1 Е1=1Е—8 Н=1E—4 100 Х = Х1: GOSUB 500: Y = F Х = Х1+Н: GOSUB 500 Y = Y * Н / (F —Y) Х1 =Х1 — Y IF ABS (Y)>E1 THEN 100 Х = Х1: GOSUB 500 GOTO 1000 F = -6 + 61 * X + 10 * X ^ 2 RETURN 1000 PRINT "КОРЕНЬ. X="; X1 END
Х = 9,682424Е-02
Кафедра «Металлорежущие станки и инструменты» КУРСОВАЯ РАБОТА |
Последнее изменение этой страницы: 2019-04-10; Просмотров: 276; Нарушение авторского права страницы