Rootspoly24
Z Skrypty dla studentów Ekonofizyki UPGOW
(Różnice między wersjami)
(→Zera wielomianów 24-tego stopnia) |
(→Ciekawa krzywa) |
||
Linia 2: | Linia 2: | ||
== Ciekawa krzywa== | == Ciekawa krzywa== | ||
- | <math>x^2+(\sqrt{x^2})^2=1</math> | + | <math>x^2+(y-\sqrt{x^2})^2=1</math> |
==Zera wielomianów 24-tego stopnia== | ==Zera wielomianów 24-tego stopnia== |
Wersja z 22:15, 14 lut 2011
Ciekawa krzywa
\(x^2+(y-\sqrt{x^2})^2=1\)
Zera wielomianów 24-tego stopnia
Miejsca zerowe na płaszczyźnie zespolonej, wszystkich wielomianiów stopnia 24 ze współczynnikami +1 lub -1.
Mamy \(24*2^24\) punków. Można je zhistogramować.
close all; clear all; subplot(1,2,1) xlim([-2,2]) ylim([-2,2]) hold on; subplot(1,2,2) xlim([-2,2]) ylim([-2,2]) hold on; tic; for i=1:11100; x=roots( (2*(rand(1,24)>0.5))-1 ); x2=roots( 2*rand(1,24)-1 ); subplot(1,2,1) plot(real(x),imag(x),'.'); subplot(1,2,2) plot(real(x2),imag(x2),'r.'); # title(num2str(i)) if (mod(i,1000)==0) drawnow(); end end; toc imagesc(-2:2,-2:2,log(a+1)')
close all; clear all; nx=1024; ny=1024; N=[nx,ny]; Min=[-2,-2]; Max=[ 2, 2]; a=zeros(nx,ny); tic; for i=1:122000; x=roots( (2*(rand(1,24)>0.5))-1 ); ix=floor ( (( real(x)-Min(1))./(Max(1)-Min(1))).*(N(1)-1)) + 1; iy=floor ( (( imag(x)-Min(2))./(Max(2)-Min(2))).*(N(2)-1)) + 1; a(ix+(iy-1)*nx)+=1; end; toc
close all; clear all; n=1000000 nth=24; nx=1024; ny=1024; N=[nx,ny]; Min=[-2,-2]; Max=[ 2, 2]; a=zeros(nx,ny); tic; for i=1:n; x=roots( (2*(rand(1,nth)>0.5))-1 ); ix=floor ( (( real(x)-Min(1))./(Max(1)-Min(1))).*(N(1)-1)) + 1; iy=floor ( (( imag(x)-Min(2))./(Max(2)-Min(2))).*(N(2)-1)) + 1; a(ix+(iy-1)*nx)+=1; if (mod(i,5000)==0) norma=sum(sum(a))/(nx*ny); image(-2:2,-2:2,(10/norma*log(a+1))') drawnow(); endif end; toc/n*2^nth/3600 norma=sum(sum(a))/(nx*ny); image(-2:2,-2:2,(10/norma*log(a+1))')
x=linspace(-10,10,200); data=normrnd (2.1,pi,350,1); hist ( data , -10:0.5:10,2 ) hold on x=linspace(-15,15,200); plot(x,normpdf(x,2.1,pi),'g') plot(x,normpdf(x,mean(data),sqrt(cov(data))),"r-") plot (x',mvnpdf (x',mean(data),cov(data)), "+")