<
##随机产生13个随机数,取整,排序,求集合。##
clear;clc;
x=100*rand(1,13);
y=floor(x)
sort(y)
unique(y)
<
##计算大数的阶乘,也可以计算大的数的精确数值和数量级##
clear;clc;
n=1997;
matlab中fprintf是什么意思
s=1;
k=0;
for i=1:n
s=s*i;
while s>10
s=s/10;
k=k+1;
end
end
factorial(n)
s
k
<
##计算出x^(1/x)的最大值,并作图。##
clear;
clc;
tic
x=linspace(1,10,10000);
y=x.^(1./x);
s=max(y)
plot(x,y,'r')
grid on
toc
<
##组合数,将可能情况的数目和情况显示出##
clear;clc;
n=5;
A=100*rand(1,6)
B=floor(A)
s=nchoosek(n,2)%求组合数个数
nchoosek(1:n,2)%求1、2、3...n中取2个数的全部组合
nchoosek(B,2)%求随机产生向量(取整之后)的排列情况
<
##白鸡问题的解答##
clear;clc;
for x=0:20
for y=0:34
for z=0:3:100
if (x+y+z==100)&(5*x+3*y+z/3==100)
t(1)=x;
t(2)=y;
t(3)=z;
t
end
end
end
end
<
##计算函数在某给定区间的数值解,带入检验是正确的,无误差##
clear;clc;
t=fzero('exp(x)-3+2*x',[0 2])
a=exp(t)-3+2*t
<
##做相对论的图,显示速度和光速比对相对论因子的影响##
clear;clc;
x=linspace(0,0.99,200);
y=1./sqrt(1-x.^2);
plot(x,y,'r')
grid on
<
##画三维螺线图##
clear
clc
t=0:pi/50:100*pi;
y1=sin(t);
y2=cos(t);
plot3(y1,y2,t);
title('helix');
text(0,0,0,'origin');
xlabel('sin(t)')
ylabel('cos(t)')
zlabel('t');
grid on;
<.
##给定x,y的取值区间,并给出z=f(x,y)的函数关系式,做出三维图##
clear;clc;
t=0:0.01:2;
x=-2:0.01:2;
[T,X]=meshgrid(t,x);
y=cos(2*pi*(3*T-X));
mesh(T,X,y)
clear;clc;
m=1.6;n=400;
x=linspace(-m,m,n);
y=linspace(-m,m,n);
[X Y]=meshgrid(x,y);
z=exp(-0.9*(X.^2+Y.^2)).*cos(32*(X.^2+Y.^2));
mesh(X,Y,z)
clear;clc;
n=5;
t=820;
x=linspace(-n,n,t);
y=linspace(-n,n,t);
[X Y]=meshgrid(x,y);
z=exp(sin((X.^2+Y.^2)));
mesh(X,Y,z)
clear;clc;
[x y]=meshgrid(1:0.1:15,1:0.1:15);
R=sqrt(x.^2+y.^2);
z=exp(-sin(R))./R;
mesh(x,y,z)
<
##给定n,i,m的值,做循环检查数值显示##
clear;clc;
n=10;i=1;m=2;
A(1)=i;
for k=2:8
if A(k-1)+m+1>n
A(k)=A(k-1)+m+1-n;
else
A(k)=A(k-1)+m+1;
end
end
A
<
##计算1:100的阶乘的数量级,并显示,作图##
clear;clc;
m=100
for n=1:m
k=0;s=1;
for i=1:n
s=s*i;
while s>10
s=s/10;
k=k+1;
end
end
y(n)=k;
end
x=1:m;
y
plot(x,y,'ro',x,x)
grid on
<
##y=sin(x),y=arcsin(x),y=x的图像,原函数和反函数##
clear;
clc;
x=-pi:pi/100:pi;
y=sin(x);
plot(x,y,y,x,x,x)
grid on
max_x=max(x)
max_y=max(y)
min_x=min(x)
min_y=min(y)
<
##计算n的阶乘后面有几个连续的0##
clear;clc;
n=1997
k=log(n)/log(5);
max=floor(k);
f=n;
for i=1:max
f=f/5;
A(i)=floor(f);
end
s=sum(A)
<
##作图,加网格,加标签##
clear;clc;
x=linspace(0,6,500);
y1=sin(x);
y2=cos(x);
y3=1./(x.^2+1);
plot(x,y1,x,y2,x,y3)
grid on
legend('sin(x)','cos(x)','1/(x^2+1)')
<
##随便给一个大数,给出"3x+1"航程曲线,并给出增加和减少的次数,并排序##
clear;clc;
x=13576;
a=0;
b=0;
i=1;
while(x-1)
if mod(x,2)==0
x=x/2;
t(i)=x;
a=a+1;
else
x=3*x+1;
t(i)=x;
b=b+1;
end
i=i+1;
end
sort(t)
a
b
x=1:(i-1);
plot(x,t,'r')
grid on
<.
##用循环做动态曲线的变化##
clear;clc;
for k=-1:0.1:2
x=linspace(-5,5,1000);
if k<0
c=(2-exp(-sqrt(-k)))/(exp(sqrt(-k))-exp(-sqrt(-k)));
d=1-c;
y=c*exp(sqrt(-k))+d*exp(-sqrt(-k));
plot(x,y,'r')
grid on
elseif k==0
y=x+1;
plot(x,y,'r')
grid on
else
a=(2-cos(sqrt(k)))/(sin(sqrt(k)));
y=a*sin(sqrt(k)*x)+cos(sqrt(k)*x);
plot(x,y,'r')
grid on
end
pause(0.5)
end
<
##在一个图上,画出三个相差不大的三维螺线##
clear;clc;
t=linspace(0,10*pi,14300);
x=sin(t);
y=cos(t);
z=t;
z1=t+1;
z2=t+1.5;
z3=t+2;
plot3(x,y,z,x,y,z1,x,y,z2,x,y,z3)
<.
##对一个矩阵的所有数排列,并且删除重复的数值,组成集合##
clear;clc;
A=[3 4 -1 1 -9 10
6 5 0 7 4 -16
1 -4 7 -1 6 -8
2 -4 5 -6 12 -8
-3 6 -7 8 -1 1
8 -4 9 1 3 0]
B=A(:);
C=B.';
D=sort(C)
b=unique(A);
uni=b.'
E(1)=D(1);
j=1;
for i=2:36
if D(i)>D(i-1)
j=j+1;
E(j)=D(i);
end
end
E
<
##给定一个数,将其拆分成连续若干个整数的和##
clear;clc;
n=15670
for m=1:0.5*(n-1)
k=0.5*(sqrt(4*m^2-4*m+8*n+1)-2*m-1);
if k==floor(k)
m
k
x=m:m+k
sum(x)
end
end
<
##格式化输出##
clear;clc;
for i=0:9
for j=0:9
k=i+j;
if k<=9
fprintf('%d+%d=%d\n',i,j,k);
end
end
end
<.
##同相位的电
场和磁场##
clear;clc;
x=linspace(0,6*pi,300);
y=cos(x);
z=zeros(1,300);
x1=x;
y1=zeros(1,300);
z1=cos(x1);
plot3(x,y,z,x1,y1,z1)
grid on
<
##输入一个正整数,按顺序输出各位数字##
clear;clc;
a=input('请输入整数:');
s=floor(log10(a))+1;%计算此数的位数
k=1;
for i=1:s
A(i)=mod(floor(a/k),10);
k=k*10;
end
for j=1:s
B(j)=A(s+1-j);
end
B
<
##4位数的数字黑洞6174##
clear;clc;
for a=1000:9999
k=1;
for j=1:4
A(j)=mod(floor(a/k),10);
k=k*10;
end
B=sort(A);
maxa=B(4)*1000+B(3)*100+B(2)*10+B(1);
mina=B(1)*1000+B(2)*100+B(3)*10+B(4);
cha=maxa-mina;
if cha==a
a
end
end
<
##100到999999中,用数字摆成最大数和最小数的差等于此数,运行时间为12-13秒##
clear;clc;
tic
for a=100:999999
s=floor(log10(a))+1;
k=1;
for j=1:s
A(j)=mod(floor(a/k),10);
k=k*10;
end
B=sort(A);
maxa=0;
for j=1:s
maxa=maxa+B(s+1-j)*10^(s-j);
end
mina=0;
for j=1:s
mina=mina+B(j)*10^(s-j);
end
cha=maxa-mina;
if cha==a
a
end
end
toc
<
##求函数导数,给定数列连乘积,求导##
clear;clc;
syms x
diff(x^x)
t=1:100;
y=1./t;
s=prod(y)
syms t
x=sqrt(1+t^2);
y=atan(t);
diff(y)/diff(x)
pretty(ans)
<
##画囧字(被改成O了)##
function RandDisplayJiong
clear;clc;
axis off; %隐去坐标轴
%set(gcf,'menubar','none','toolbar','none');%不显示当前figure 菜单栏和工具栏
tic
for k = 1:100%循环100次
%每次在(rand,rand)这个随机的位置,以20到50之间随机分布的一个数为字体大小,隶书的形式,
%随机生成RGB颜,并随机旋转一定角度来显示“囧”
h = text(rand,rand,['\fontsize{',num2str(unifrnd(10,50)),'}\fontname {隶书} o'],'color',rand(1,3),'Rotation',360*rand);
pause(0.2); %每显示完一次暂停0.2秒
end
toc
<
##计算给定数的阶乘后面连续的0的个数##
clear;clc;
n=1997;
a=log(n)/log(5);
max=floor(a);
f=n;
for i=1:max
f=f/5;
A(i)=floor(f);
end
A
s=sum(A)
<
##用牛顿切线法求给定函数0点##
clear;clc;
f=inline('x^2-exp(x)-3*x+2','x');
f1=inline('2*x-exp(x)-3','x');
x=1;
for i=1:15
x=x-f(x)/f1(x);
end
x
a=fzero('x^2-exp(x)-3*x+2',[0 1])
<
##在给定区间随机产生数列,用大量数据估计数值,求积分##
cl
ear;clc
n=12345;
tic
for i=1:80
x=unifrnd(-1,1,1,n);
y=unifrnd(-1,1,1,n);
z=rand(1,n);
c1=(x.^2+y.^2)<1;
c2=(x.^2+z.^2)<1;
nc=sum(c1&c2);
I=(4*nc)/n;
t(i)=(3*I)/8;
end
wucha=abs(1-mean(t))
toc
<.
##求2重积分和3重积分##
clear;clc;
tic
syms x y
s2=int(int(exp(y/x),y,x^2,x),x,1/2,1)
vpa(s2,10)
s3=triplequad('x.^2+y.^2+z.^2',0,1,0,1,0,1)
toc
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论