Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Примеры выполнения заданий в пакете 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]]);

 


 


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.009 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал