419


Z4:

%%układy równań liniowych

A=[4 -2 0 %macierz układu

-2 2 -3

0 -3 -25]

b=[14 -11 28]' %wektor prawych stron

x1=A\b %rozwiązanie metodą eliminacji Gaussa

%z częściowym wyborem elementu głównego

x2=inv(A)*b %rozwiązanie metodą odwracania macierzy

------------

A=[4 -2 0; -2 2 -3; 0 -3 -25]

B=[14; -11; 28]

cond(A)

Z12:

x = [-1.5 -1 -0.5 0 0.5 1 1.5];

y = [120.3008 333.3333 761.9048 1000 761.9048 333.3333 120.3008];

[wsp,L] = lagranp(x,y); %wyznacza wielomian Lagrange'a

xmin = min(x);

xmax = max(x);

xx = linspace(xmin,xmax,100); %dziedzina doprecyzowana na potrzeby kreślenia wykresów wielomianów

yl = polyval(wsp,xx); %interpolacja do zadanych punktow

clf

subplot(3,1,1)

plot(xx,yl,'k-',x,y,'r*') %wykres wielomianu Lagrange'a

grid on

title('interpolacja metodą Lagrangea')

[cn,DD] = newtonp(x,y);

yn = polyval(cn,xx);

subplot(3,1,2)

plot(xx,yn,'k-',x,y,'r*') %wykres wielomianu Newtona

grid on

title('interpolacja metodą Newtona')

%porównanie wartości w węzłach interpolacji

y

ybl=polyval(wsp,x) %interpolacja do zadanych punktow dziedziny x

ybn=polyval(cn,x) %interpolacja do zadanych punktow dziedziny x

blad_lagr=ybl-y %wartość błędu

blad_newt=ybn-y %wartość błędu

subplot(3,1,3)

plot (x,blad_lagr,'k*-',x,blad_newt,'kx-')%wykres błędów

title ('* -błąd interp. Lagrange, + -błąd interp. Newtona')

Z13:

Interpolacja Lagrange'a - skrypt lagranp

function [wsp,L] = lagranp(x,y)

%dane wejsciowe: x = [x0,x1,...,xN], y = [y0,y1,...yN]

%dane wynikowe: wsp - wspolczynniki wielomianu Lagrange'a stopnia n

% L = wspolczynniki Lagrange'a

N = length(x) - 1;

wsp = 0;

for j=1:N+1

wmn = 1;

for i=1:N+1

if i ~= j, wmn = conv(wmn,[1 -x(i)])/(x(j) - x(i));

end

end

L(j,:) = wmn; %wspolczynniki wielomianowe Lagrange'a

wsp = wsp + y(j) * wmn; %wielomian Lagrange'a

end

Interpolacja Newtona - skrypt newtonp

function [cn,DD] = newtonp(x,y)

%gotowy algorytm z materiałów do wykładu- opracował Pan Andrzej Kosior PWR

%parametry wejsciowe: x=[x0,x1,...,xN]

%y=[y0,y1,...,yN]

%wyjscie cn = wspolczynniki wielomianu Newtona

N = length(x) - 1;

DD = zeros(N+1,N+1);

DD(1:N+1,1)=y';

%w pierwsza kolumne macierzy kwadratowej N+1xN+1

%podstaw wartosc y, apostrof oznacza transpozycje

for k=2:N+1

for m=1:N+2-k %tworzenie tablicy roznic dzielonych

DD(m,k) = (DD(m+1,k-1) - DD(m,k-1))/(x(m+k-1)-x(m));

end

end

r = DD(1,:);

cn = r(N+1);

for k=N:-1:1

cn = [cn r(k)] - [0 cn*x(k)];

%czyli cn(c)*(x-x(k-1))+r_k-1

end

Skrypt zadaniowy

x = [0.0 0.1 0.3 0.6 1.0];

y = [-6.0000 -5.89483 -5.65014 -5.17788 -4.28172];

[wsp,L] = lagranp(x,y); %wyznacza wielomian Lagrange'a

xmin = min(x);

xmax = max(x);

xx = linspace(xmin,xmax,100); %dziedzina doprecyzowana na potrzeby kreślenia wykresów wielomianów

yl = polyval(wsp,xx); %interpolacja do zadanych punktow

clf

subplot(3,1,1)

plot(xx,yl,'k-',x,y,'r*') %wykres wielomianu Lagrange'a

grid on

title('interpolacja metodą Lagrangea')

[cn,DD] = newtonp(x,y);

yn = polyval(cn,xx);

subplot(3,1,2)

plot(xx,yn,'k-',x,y,'r*') %wykres wielomianu Newtona

grid on

title('interpolacja metodą Newtona')

%porównanie wartości w węzłach interpolacji

y

ybl=polyval(wsp,x) %interpolacja do zadanych punktow dziedziny x

ybn=polyval(cn,x) %interpolacja do zadanych punktow dziedziny x

blad_lagr=ybl-y %wartość błędu

blad_newt=ybn-y %wartość błędu

subplot(3,1,3)

plot (x,blad_lagr,'k*-',x,blad_newt,'kx-')%wykres błędów

title ('* -błąd interp. Lagrange, + -błąd interp. Newtona')

Z29a

x = [0, 7, 15, 21, 35, 49, 64, 70];

y = [99.48, 83.93, 66.02, 56.83, 45.60, 32.46, 21.76, 19.11]

y = log(y);

c = polyfit(x, y, 1);

plot(x, exp(y), 'pr', x, exp(c(2))*exp(c(1)*x), 'g')

xlabel('X');

ylabel('Y');

grid on

%

% y1 = exp(c(2))*exp(c(1)*x)

%

% y2 = abs(y - y1)

% max(y2)

% 100* max(y2)/56.83

%

% %J = sum(y2)

Z83

clc;

clear all;

h=1;

t=0:h:3;

x=zeros(1,length(t));

t(0)=0;

F_xy=(d.^2*x(t)/dt)-2*(dx(t)/dt+10*x(t)-2*sin(2*t*e.^(-t))

for i=1:(length(x)-1)

k_1 = F_xy(x(i),y(i));

k_2 = F_xy(x(i)+0.5*h,y(i)+0.5*h*k_1);

k_3 = F_xy((x(i)+0.5*h),(y(i)+0.5*h*k_2));

k_4 = F_xy((x(i)+h),(y(i)+k_3*h));

y(i+1) = y(i) + (1/6)*(k_1+2*k_2+2*k_3+k_4)*h;

end



Wyszukiwarka

Podobne podstrony:
419
419, Instytut Techniki Cieplnej
II CR 419 89
anleitung 419 3
Marody M Wymiary życia społecznego s 419 437, 318 341
419 , TEORIA WYCHOWANIA
419
419
419
418 419
419 ac
419
PFM 419 karta katalogowa
II CKN 419 01 1

więcej podobnych podstron