Kto zna sie na matlabie?



Masz problem? Zapytaj na forum elektroda.pl

Poprzedni Następny
Wiadomość
Spis treści
From: dArek <darecki22_at_nospam_tenbit.pl>
Subject: Kto zna sie na matlabie?
Date: Thu, 24 Mar 2005 16:08:35 +0100


Musze liniowo interpolowac funkcje w celu optymalnego doboru wezlow
interpolacji. Problem w tym, ze wezlow interpolacji ma byc mozliwie malo
a blad interpolacji ma byc ustalony dla przedzialu funkcji. Tzn. jak moj
wykladowca zechce aby blad w jakims przedziale byl np. 1% to matlab musi
mu podac optymalne wezly. Takie mam zadanie. Funkcja ma byc z jedna zmienna.
pozdrawiam, dArek

Poprzedni Następny
Wiadomość
Spis treści
From: "grze" <grzecholek_at_nospam_poczta.fm>
Subject: Re: Kto zna sie na matlabie?
Date: Thu, 24 Mar 2005 21:54:06 +0100



Uzytkownik "dArek" <darecki22_at_nospam_tenbit.pl> napisal w wiadomosci
news:d1ul5l$97$1_at_nospam_korweta.task.gda.pl...
Musze liniowo interpolowac funkcje w celu optymalnego doboru wezlow
interpolacji. Problem w tym, ze wezlow interpolacji ma byc mozliwie malo
a blad interpolacji ma byc ustalony dla przedzialu funkcji. Tzn. jak moj
wykladowca zechce aby blad w jakims przedziale byl np. 1% to matlab musi
mu podac optymalne wezly. Takie mam zadanie. Funkcja ma byc z jedna
zmienna.
pozdrawiam, dArek


Pobaw sie funkcjami:
polyfit - znajdowanie wspolczynnikow krzywej N stopnia
polyval - oblicza wartosci Y majac X i wektor wpsolczynikow krzywej

dobierajac odowiednia ileosc punktow (x i y) do stopnia wielomianu (N)
otrzymasz aproksymacje lub interpolacje (polyfit)



Poprzedni Następny
Wiadomość
Spis treści
From: dArek <darecki22_at_nospam_tenbit.pl>
Subject: Re: Kto zna sie na matlabie?
Date: Fri, 25 Mar 2005 20:08:51 +0100


grze wrote:
Uzytkownik "dArek" <darecki22_at_nospam_tenbit.pl> napisal w wiadomosci
news:d1ul5l$97$1_at_nospam_korweta.task.gda.pl...

Musze liniowo interpolowac funkcje w celu optymalnego doboru wezlow
interpolacji. Problem w tym, ze wezlow interpolacji ma byc mozliwie malo
a blad interpolacji ma byc ustalony dla przedzialu funkcji. Tzn. jak moj
wykladowca zechce aby blad w jakims przedziale byl np. 1% to matlab musi
mu podac optymalne wezly. Takie mam zadanie. Funkcja ma byc z jedna

zmienna.

pozdrawiam, dArek



Pobaw sie funkcjami:
polyfit - znajdowanie wspolczynnikow krzywej N stopnia
polyval - oblicza wartosci Y majac X i wektor wpsolczynikow krzywej

dobierajac odowiednia ileosc punktow (x i y) do stopnia wielomianu (N)
otrzymasz aproksymacje lub interpolacje (polyfit)


Rozwiazalem to na chlopski rozum. Tylko kto mi powie co jest nie tak.
Chyba cos zle porownuje bo wyznacza za malo punktow interpolacji. Jakmu
zadaje blad 0.01 to chyba nieco wiecej powinno byc rozwiazan.

%Wykres WC od V, gdzie V jest w okreslonym zakresie
%Blad - zmienna, w ktorej podajemy wartosc oczekiwanego bledu
interpolacji w pelnym zakresie funkcji ;)
wezly=[1]
T=5;
Blad=10
V=1:0.1:100;
WC=35.74+0.6215*T-35.75*V.^0.16+0.4275*T*V.^0.16;
%V1=min; V2=max
V1=1;
V2=100;
while V1<100
%obliczam wartosc WC dla V1 i V2
WC1=35.74+0.6215*T-35.75*V1.^0.16+0.4275*T*V1.^0.16;
WC2=35.74+0.6215*T-35.75*V2.^0.16+0.4275*T*V2.^0.16;
%obliczam uklad rownan
%WC1=a*V1+b
%WC2=a*v2+b
a=(WC2-WC1)/(V2-V1);
%b=WC2-((WC2-WC1)/(V2-V1))*V2;
b=WC1-((WC2-WC1)/(V2-V1))*V1;
%przeprowadzam prosta przez V1i V2
prosta=a*V+b;
%dziele przedzial (V2-V1)/2
V3=(V2-V1)/2;
%obliczam wartosc funkcji "prosta" w punkcie V3
prosta3=a*V3+b;
%obliczam wartosc funkcji WC w punkcie V3
WC3=35.74+0.6215*T-35.75*V3.^0.16+0.4275*T*V3.^0.16;
%obliczam blad dla WC3 i prosta3
Blad1=(abs((prosta3-WC3)/WC3))*100
%porownuje Blad1 z oczekiwanym bledem podanym w zmiennej Blad
if Blad1<=9

V1=V2
wezly=[wezly V1]
V2=100;
end
if Blad1>Blad
if V2>=V1+0.02
V2=V2-0.01;
else
break
end
end
end
disp(wezly)
wynik=35.74+0.6215*T-35.75*wezly.^0.16+0.4275*T*wezly.^0.16;
plot(V, WC, 'b', wezly, wynik, 'ro')
grid




Poprzedni Następny
Wiadomość
Spis treści
From: dArek <darecki22_at_nospam_tenbit.pl>
Subject: Re: Kto zna sie na matlabie?
Date: Fri, 25 Mar 2005 20:16:56 +0100


dArek wrote:

grze wrote:

Uzytkownik "dArek" <darecki22_at_nospam_tenbit.pl> napisal w wiadomosci
news:d1ul5l$97$1_at_nospam_korweta.task.gda.pl...

Musze liniowo interpolowac funkcje w celu optymalnego doboru wezlow
interpolacji. Problem w tym, ze wezlow interpolacji ma byc mozliwie malo
a blad interpolacji ma byc ustalony dla przedzialu funkcji. Tzn. jak moj
wykladowca zechce aby blad w jakims przedziale byl np. 1% to matlab musi
mu podac optymalne wezly. Takie mam zadanie. Funkcja ma byc z jedna


zmienna.

pozdrawiam, dArek




Pobaw sie funkcjami:
polyfit - znajdowanie wspolczynnikow krzywej N stopnia
polyval - oblicza wartosci Y majac X i wektor wpsolczynikow krzywej

dobierajac odowiednia ileosc punktow (x i y) do stopnia wielomianu (N)
otrzymasz aproksymacje lub interpolacje (polyfit)


Rozwiazalem to na chlopski rozum. Tylko kto mi powie co jest nie tak.
Chyba cos zle porownuje bo wyznacza za malo punktow interpolacji. Jakmu
zadaje blad 0.01 to chyba nieco wiecej powinno byc rozwiazan.

%Wykres WC od V, gdzie V jest w okreslonym zakresie
%Blad - zmienna, w ktorej podajemy wartosc oczekiwanego bledu
interpolacji w pelnym zakresie funkcji ;)
wezly=[1]
T=5;
Blad=10
V=1:0.1:100;
WC=35.74+0.6215*T-35.75*V.^0.16+0.4275*T*V.^0.16;
%V1=min; V2=max
V1=1;
V2=100;
while V1<100
%obliczam wartosc WC dla V1 i V2
WC1=35.74+0.6215*T-35.75*V1.^0.16+0.4275*T*V1.^0.16;
WC2=35.74+0.6215*T-35.75*V2.^0.16+0.4275*T*V2.^0.16;
%obliczam uklad rownan
%WC1=a*V1+b
%WC2=a*v2+b
a=(WC2-WC1)/(V2-V1);
%b=WC2-((WC2-WC1)/(V2-V1))*V2;
b=WC1-((WC2-WC1)/(V2-V1))*V1;
%przeprowadzam prosta przez V1i V2
prosta=a*V+b;
%dziele przedzial (V2-V1)/2
V3=(V2-V1)/2;
%obliczam wartosc funkcji "prosta" w punkcie V3
prosta3=a*V3+b;
%obliczam wartosc funkcji WC w punkcie V3
WC3=35.74+0.6215*T-35.75*V3.^0.16+0.4275*T*V3.^0.16;
%obliczam blad dla WC3 i prosta3
Blad1=(abs((prosta3-WC3)/WC3))*100
%porownuje Blad1 z oczekiwanym bledem podanym w zmiennej Blad
if Blad1<=9

V1=V2
wezly=[wezly V1]
V2=100;
end
if Blad1>Blad
if V2>=V1+0.02
V2=V2-0.01;
else
break
end
end
end
disp(wezly)
wynik=35.74+0.6215*T-35.75*wezly.^0.16+0.4275*T*wezly.^0.16;
plot(V, WC, 'b', wezly, wynik, 'ro')
grid



Tam gdzie jest "if Blad1<=9" powinno byc if "Blad1<=Blad". Pomozcie co
jest nie tak?

Poprzedni Następny
Wiadomość
Spis treści
From: "grze" <grzecholek_at_nospam_poczta.fm>
Subject: Re: Kto zna sie na matlabie?
Date: Mon, 28 Mar 2005 15:15:51 +0200



Uzytkownik "dArek" <darecki22_at_nospam_tenbit.pl> napisal w wiadomosci
news:d21o3b$mte$2_at_nospam_korweta.task.gda.pl...
dArek wrote:

grze wrote:

Uzytkownik "dArek" <darecki22_at_nospam_tenbit.pl> napisal w wiadomosci
news:d1ul5l$97$1_at_nospam_korweta.task.gda.pl...

Musze liniowo interpolowac funkcje w celu optymalnego doboru wezlow
interpolacji. Problem w tym, ze wezlow interpolacji ma byc mozliwie
malo
a blad interpolacji ma byc ustalony dla przedzialu funkcji. Tzn. jak
moj
wykladowca zechce aby blad w jakims przedziale byl np. 1% to matlab
musi
mu podac optymalne wezly. Takie mam zadanie. Funkcja ma byc z jedna


zmienna.

pozdrawiam, dArek




Pobaw sie funkcjami:
polyfit - znajdowanie wspolczynnikow krzywej N stopnia
polyval - oblicza wartosci Y majac X i wektor wpsolczynikow krzywej

dobierajac odowiednia ileosc punktow (x i y) do stopnia wielomianu (N)
otrzymasz aproksymacje lub interpolacje (polyfit)


Rozwiazalem to na chlopski rozum. Tylko kto mi powie co jest nie tak.
Chyba cos zle porownuje bo wyznacza za malo punktow interpolacji. Jakmu
zadaje blad 0.01 to chyba nieco wiecej powinno byc rozwiazan.

%Wykres WC od V, gdzie V jest w okreslonym zakresie
%Blad - zmienna, w ktorej podajemy wartosc oczekiwanego bledu
interpolacji w pelnym zakresie funkcji ;)
wezly=[1]
T=5;
Blad=10
V=1:0.1:100;
WC=35.74+0.6215*T-35.75*V.^0.16+0.4275*T*V.^0.16;
%V1=min; V2=max
V1=1;
V2=100;
while V1<100
%obliczam wartosc WC dla V1 i V2
WC1=35.74+0.6215*T-35.75*V1.^0.16+0.4275*T*V1.^0.16;
WC2=35.74+0.6215*T-35.75*V2.^0.16+0.4275*T*V2.^0.16;
%obliczam uklad rownan
%WC1=a*V1+b
%WC2=a*v2+b
a=(WC2-WC1)/(V2-V1);
%b=WC2-((WC2-WC1)/(V2-V1))*V2;
b=WC1-((WC2-WC1)/(V2-V1))*V1;
%przeprowadzam prosta przez V1i V2
prosta=a*V+b;
%dziele przedzial (V2-V1)/2
V3=(V2-V1)/2;
%obliczam wartosc funkcji "prosta" w punkcie V3
prosta3=a*V3+b;
%obliczam wartosc funkcji WC w punkcie V3
WC3=35.74+0.6215*T-35.75*V3.^0.16+0.4275*T*V3.^0.16;
%obliczam blad dla WC3 i prosta3
Blad1=(abs((prosta3-WC3)/WC3))*100
%porownuje Blad1 z oczekiwanym bledem podanym w zmiennej Blad
if Blad1<=9

V1=V2
wezly=[wezly V1]
V2=100;
end
if Blad1>Blad
if V2>=V1+0.02
V2=V2-0.01;
else
break
end
end
end
disp(wezly)
wynik=35.74+0.6215*T-35.75*wezly.^0.16+0.4275*T*wezly.^0.16;
plot(V, WC, 'b', wezly, wynik, 'ro')
grid



Tam gdzie jest "if Blad1<=9" powinno byc if "Blad1<=Blad". Pomozcie co
jest nie tak?

Moze i to co piszesz jest OK, ale mowie ci zainteresuj sie funkcjami polyfit
i polyval. Do liczenia bledow masz funkcje "norm"
jak nie wiesz jak to sie stosuje to propnuje "help nazwa_funkcji"
Nie ma co wywazac otwrtych drzwi bo to wszystko jest zrobione i na pewno
szybciej dziala!!