Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Примеры выполнения заданий в пакете MAXIMA
1. Построить в логарифмическом масштабе график функции .
(%i1) plot2d([exp(-x^2)], [x, -4, 4], [y, 1e-5, 1], [logy])$ или (%i1) wxplot2d([exp(-x^2)], [x, -4, 4], [y, 1e-5, 1], [gnuplot_preamble, " set logscale y; set grid; " ])$
2. Определить, какой одной из двух возможных функциональных зависимостей принадлежат данные из файла E0.prn. Найти значение l. file_search(" d: /E0.prn"); printfile(" d: /E0.prn"); data: read_nested_list(" d: /E0.prn"); n: length(data); x: makelist(first(data[i]), i, 1, length(data)); y: makelist(second(data[i]), i, 1, length(data)); wxplot2d([discrete, x, y], [style, [points, 3]]); f(x): =-log(1-x); g(t): =sqrt(-log(1-t)); ff: map(f, y), numer; gg: map(g, y), numer; wxplot2d([[discrete, x, ff], [discrete, x, gg]], [gnuplot_preamble, " set grid; " ]); Из рисунка видно, что вторая из предложенных зависимостей удовлетворяет исходным данным, считанным из файла. Тангенс угла наклона приямой равен .
3. Построить интерполяционные полиномы Лагранжа для зависимостей, заданных точками , . n: 5; x: makelist(i*0.5, i, 0, n); f(t): =1+1.8*t-t^3; y: map(f, x), numer; L(u, k, n): =block([p, i, c], p: 1, for i: 1 thru n+1 do block(c: if k=i then 1 else (u-x[i])/(x[k]-x[i]), p: p*c), p: p); Pn(u): =sum(y[k]*L(u, k, n), k, 1, n+1); wxplot2d([Pn(u), [discrete, x, y]], [u, -1, 3], [style, [lines], [points]]); Результат интерполяции полиномами Лагранжа load(interpol); m: transpose(matrix(x, y)); fit(u): =linearinterpol(m, varname='u); wxplot2d([fit(u), [discrete, x, y]], [u, -1, 3], [style, [lines], [points]]); Кусочно-линейная интерполяция fsp(u): =cspline(m, varname='u); wxplot2d([fsp(u), [discrete, x, y]], [u, -1, 3], [style, [lines], [points]]);
Интерполяция сплайнами 4. Рассмотреть пример Рунге. Построить интерполяционные полиномы Лагранжа с равномерной сеткой, с узлами Чебышева. Использовать интерполяцию сплайнами. n: 8; a: -1; b: 1; dx: (b-a)/8; f(t): =1/(1+25*t^2); сначала зададим равномерную сетку x: makelist(a+i*dx, i, 0, n), numer; y: map(f, x), numer; строим интерполяционный многочлен L(u, k, n): =block([p, i, c], p: 1, for i: 1 thru n+1 do block(c: if k=i then 1 else (u-x[i])/(x[k]-x[i]), p: p*c), p: p); Pn(u): =sum(y[k]*L(u, k, n), k, 1, n+1); wxplot2d([Pn(u), [discrete, x, y]], [u, -1, 1], [style, [lines], [points]]); Зададим сетку на основе узлов Чебышева xx: makelist(cos(%pi*(2*i+1)/(2*(n+1))), i, 0, n), numer; yy: map(f, x), numer; L(u, k, n): =block([p, i, c], p: 1, for i: 1 thru n+1 do block(c: if k=i then 1 else (u-xx[i])/(xx[k]-xx[i]), p: p*c), p: p); Pn(u): =sum(yy[k]*L(u, k, n), k, 1, n+1); wxplot2d([Pn(u), [discrete, xx, y]], [u, -1, 1], [style, [lines], [points]]); Воспользуемся интерполяцией сплайнами load(interpol); m: transpose(matrix(x, y)); fsp(u): =cspline(m, varname='u); wxplot2d([fsp(u), [discrete, x, y]], [u, -1, 1], [style, [lines], [points]]);
|