Bernstein [matlab]

Neue Frage »

tigerbine Auf diesen Beitrag antworten »
Bernstein [matlab]
Hallo,

ich wollte mir die Aussage am Ende des links mal visualisieren. f soll dabei Runges Beispiel sein.

Ja, ich habe erstmal brutal "wörtlich" programmiert... Das es ab n=100 schon was dauert... mmh? wegen der Fakultät? aber ab n=150 bekomme ich keinen plot mehr angezeigt...

Wer kann helfen?

Andere FRage noch. Ich muss hier ja iene lineare Transformation machen. Runge möchte ich von [-5,5] auf [0,1]. Da mein Plotvektor ja diskret, also könnte ich den Vektor f([-5,....,5]) dann einfach als bild von [0,...,1] plotten, um das zu transformieren. Beidesmal äquidistante Zerlegung gleicher Anzahl.

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
%Funktion mit Bersteinpolynomen approximieren

disp(' ');
disp('Es wird eine Funktion auf [0,1] durch Bernsteinpolynome approximiert.');
disp('Funktion in bernsteinf.m anlegen');
disp(' ');
disp('weiter');
pause
n=input('Polynomgrad n = ');
a=-5;%input('Intervallanfang a = ');
b=5;%input('Intervallende   b = ');
disp(' ');
disp('------------------------------------------------------------------------------');
disp(' ');

xplot=linspace(0,1,1000);
xf=linspace(a,b,1000);
yf=bernsteinf(xf);
yplot=bernsteinf(xf);

%plot(xf,yf,xplot,yplot),
%hold on;
%grid on, axis([0,1,0,1]),
%title('Test')

%Bernsteinpolynome "berechnen" und auswerten.

for k=1:1000
    Bplot(1,k)=0;
end
Bplot;

for i=0:n
    bf=factorial(n)/(factorial(i)*factorial(n-i));
    
    for k=1:1000
        t=xplot(1,k);
        B(i+1,k)=bf*((t-0)^i)*((1-t)^(n-i));
    end
    
    f(1,i+1)=bernsteinf(a+i*(b-a)/n);
    
    for k=1:1000
        Bplot(1,k)=Bplot(1,k) + f(1,i+1)*B(i+1,k); 
    end
end
Bplot;

plot(xplot,Bplot,xplot,yplot),
hold on;
grid on, axis([0,1,0,1]),
title('Bernstein-Approximation')




clear all;


code:
1:
2:
3:
4:
5:
6:
%zu approximierende Funktion (Runges Beispiel)

function y=bernsteinf(x)
y=1./(1+25*(x.^2));
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »