谁能帮我写2个matlab画图程序,物理的,像点电荷的电场线什么的,随便2个就行,急

谁能帮我写2个matlab画图程序,物理的,像点电荷的电场线什么的,随便2个就行,急,第1张

1. 等量异号点电荷电场中耐汪电势分布

[x,y]=meshgrid(-2:0.1:2,-2:0.1:2)

%以0.1为步长建立平面数据网格

z=1./sqrt((x-1).^2+y.^2+0.01)... %写出电势表达式

-1./sqrt((x+1).^2+y.^2+0.01)

[px,py]=gradient(z)

%求电势在x,y方向的梯度即电场强度

contour(x,y,z,[-12,-8,-5,-3,-1,... %画出等势线

-0.5,-0.1,0.1,0.5,1,3,5,8,12])

hold on %作图控制

quiver(x,y,px,py,'k') %画出各点上电场的大小和方向

2. 等量同号点电荷的电场线的绘制

下面是写微分方程的函数文件:

function ydot=dcx1fun(t,y,flag,p1,p2)

%p1,p2是参量,表示电量

ydot=[p1*(y(1)+2)/(sqrt((y(1)+2).^2+y(2).^2).^3)+...

p2*(y(1)-2)/(sqrt((y(1)-2).^2+y(2).^2).^3)

%dx/dt=Ex

p1*y(2)/(sqrt((y(1)+2).^2+y(2).^2).^3)+...

p2*y(2)/(sqrt((y(1)-2).^2+y(2).^2).^3)]

%dy/dt=Ey

编写好函数文件后,命名为dcx1fun.m存在当前路径下,然后开始编写解微分方程亩旁的主程序dcx1.m:

p1=10p2=10%点电荷所带电量

axis([-5,5,-5,5])%设定坐标轴范围 -5≤x≤5,-5≤y≤5

hold on %图形控制,不可擦除模式

plot(2,0,'*r')plot(-2,0,'*r') %绘制两源电荷

a=(pi/24):pi/12:(2*pi-pi/24)

%圆周上电场线起点所对应的角度

b=0.1*cos(a)c=0.1*sin(a)

%电场线起点所对应的相对坐标

b1=-2+bb2=2+b%把起点圆周的圆心放置在源电荷处

b0=[b1 b2]c0=[c c]%初始条件,所有电场线的起点

%的横、纵坐标构成了矢量b0和c0

for i=1:48 %循环求解48次微分方程

[t,y]=ode45('dcx1fun',[0:0.05:40],[b0(i),c0(i)],[ ],p1,p2)

%调用ode45求解,对应一个初条件(迅亩橡起点),求解出一条电场线

plot(y(:,1),y(:,2),'b') %绘制出此条电场线

end %结束循环,共绘制出48条电场线

参考于《Matlab 在基础物理学中的应用》

http://bnucourse.bnu.edu.cn/course/physics/05/jcwlxshyjy.pdf

1-32是:图形应用篇

33-66是:界面设计篇

67-84是:图形处理篇

85-100是:数值分析篇

实例1:三角函数曲线(1)

function shili01

h0=figure('toolbar','none',...

'position',[198 56 350 300],...

'name','实例01')

h1=axes('parent',h0,...

'visible','off')

x=-pi:0.05:pi

y=sin(x)

plot(x,y)

xlabel('自变量X')

ylabel('函数值Y')

title('SIN( )函数曲线')

grid on

实例2:三角函纤梁数曲线(2)

function shili02

h0=figure('toolbar','none',...

'position',[200 150 450 350],...

'name','实例02')

x=-pi:0.05:pi

y=sin(x)+cos(x)

plot(x,y,'-*r','linewidth'陪宽,1)

grid on

xlabel('自变量X')

ylabel('函数值Y')

title('三角函数')

实例3:图形的叠加

function shili03

h0=figure('toolbar','none',...

'position',[200 150 450 350],...

'name','实例03')

x=-pi:0.05:pi

y1=sin(x)

y2=cos(x)

plot(x,y1,...

'-*r',...

x,y2,...

'--og')

grid on

xlabel('自变量X')

ylabel('函数值Y')

title('三角函数毁乱运')

实例4:双y轴图形的绘制

function shili04

h0=figure('toolbar','none',...

'position',[200 150 450 250],...

'name','实例04')

x=0:900a=1000b=0.005

y1=2*x

y2=cos(b*x)

[haxes,hline1,hline2]=plotyy(x,y1,x,y2,'semilogy','plot')

axes(haxes(1))

ylabel('semilog plot')

axes(haxes(2))

ylabel('linear plot')

实例5:单个轴窗口显示多个图形

function shili05

h0=figure('toolbar','none',...

'position',[200 150 450 250],...

'name','实例05')

t=0:pi/10:2*pi

[x,y]=meshgrid(t)

subplot(2,2,1)

plot(sin(t),cos(t))

axis equal

subplot(2,2,2)

z=sin(x)-cos(y)

plot(t,z)

axis([0 2*pi -2 2])

subplot(2,2,3)

h=sin(x)+cos(y)

plot(t,h)

axis([0 2*pi -2 2])

subplot(2,2,4)

g=(sin(x).^2)-(cos(y).^2)

plot(t,g)

axis([0 2*pi -1 1])

实例6:图形标注

function shili06

h0=figure('toolbar','none',...

'position',[200 150 450 400],...

'name','实例06')

t=0:pi/10:2*pi

h=plot(t,sin(t))

xlabel('t=0到2\pi','fontsize',16)

ylabel('sin(t)','fontsize',16)

title('\it{从 0to2\pi 的正弦曲线}','fontsize',16)

x=get(h,'xdata')

y=get(h,'ydata')

imin=find(min(y)==y)

imax=find(max(y)==y)

text(x(imin),y(imin),...

['\leftarrow最小值=',num2str(y(imin))],...

'fontsize',16)

text(x(imax),y(imax),...

['\leftarrow最大值=',num2str(y(imax))],...

'fontsize',16)

实例7:条形图形

function shili07

h0=figure('toolbar','none',...

'position',[200 150 450 350],...

'name','实例07')

tiao1=[562 548 224 545 41 445 745 512]

tiao2=[47 48 57 58 54 52 65 48]

t=0:7

bar(t,tiao1)

xlabel('X轴')

ylabel('TIAO1值')

h1=gca

h2=axes('position',get(h1,'position'))

plot(t,tiao2,'linewidth',3)

set(h2,'yaxislocation','right','color','none','xticklabel',[])

实例8:区域图形

function shili08

h0=figure('toolbar','none',...

'position',[200 150 450 250],...

'name','实例08')

x=91:95

profits1=[88 75 84 93 77]

profits2=[51 64 54 56 68]

profits3=[42 54 34 25 24]

profits4=[26 38 18 15 4]

area(x,profits1,'facecolor',[0.5 0.9 0.6],...

'edgecolor','b',...

'linewidth',3)

hold on

area(x,profits2,'facecolor',[0.9 0.85 0.7],...

'edgecolor','y',...

'linewidth',3)

hold on

area(x,profits3,'facecolor',[0.3 0.6 0.7],...

'edgecolor','r',...

'linewidth',3)

hold on

area(x,profits4,'facecolor',[0.6 0.5 0.9],...

'edgecolor','m',...

'linewidth',3)

hold off

set(gca,'xtick',[91:95])

set(gca,'layer','top')

gtext('\leftarrow第一季度销量')

gtext('\leftarrow第二季度销量')

gtext('\leftarrow第三季度销量')

gtext('\leftarrow第四季度销量')

xlabel('年','fontsize',16)

ylabel('销售量','fontsize',16)

实例9:饼图的绘制

function shili09

h0=figure('toolbar','none',...

'position',[200 150 450 250],...

'name','实例09')

t=[54 21 35

68 54 35

45 25 12

48 68 45

68 54 69]

x=sum(t)

h=pie(x)

textobjs=findobj(h,'type','text')

str1=get(textobjs,{'string'})

val1=get(textobjs,{'extent'})

oldext=cat(1,val1{:})

names={'商品一:''商品二:''商品三:'}

str2=strcat(names,str1)

set(textobjs,{'string'},str2)

val2=get(textobjs,{'extent'})

newext=cat(1,val2{:})

offset=sign(oldext(:,1)).*(newext(:,3)-oldext(:,3))/2

pos=get(textobjs,{'position'})

textpos=cat(1,pos{:})

textpos(:,1)=textpos(:,1)+offset

set(textobjs,{'position'},num2cell(textpos,[3,2]))

实例10:阶梯图

function shili10

h0=figure('toolbar','none',...

'position',[200 150 450 400],...

'name','实例10')

a=0.01

b=0.5

t=0:10

f=exp(-a*t).*sin(b*t)

stairs(t,f)

hold on

plot(t,f,':*')

hold off

glabel='函数e^{-(\alpha*t)}sin\beta*t的阶梯图'

gtext(glabel,'fontsize',16)

xlabel('t=0:10','fontsize',16)

axis([0 10 -1.2 1.2])

实例11:枝干图

function shili11

h0=figure('toolbar','none',...

'position',[200 150 450 350],...

'name','实例11')

x=0:pi/20:2*pi

y1=sin(x)

y2=cos(x)

h1=stem(x,y1+y2)

hold on

h2=plot(x,y1,'^r',x,y2,'*g')

hold off

h3=[h1(1)h2]

legend(h3,'y1+y2','y1=sin(x)','y2=cos(x)')

xlabel('自变量X')

ylabel('函数值Y')

title('正弦函数与余弦函数的线性组合')

实例12:罗盘图

function shili12

h0=figure('toolbar','none',...

'position',[200 150 450 250],...

'name','实例12')

winddirection=[54 24 65 84

256 12 235 62

125 324 34 254]

windpower=[2 5 5 3

6 8 12 7

6 14 10 8]

rdirection=winddirection*pi/180

[x,y]=pol2cart(rdirection,windpower)

compass(x,y)

desc={'风向和风力',

'北京气象台',

'10月1日0:00到',

'10月1日12:00'}

gtext(desc)

实例13:轮廓图

function shili13

h0=figure('toolbar','none',...

'position',[200 150 450 250],...

'name','实例13')

[th,r]=meshgrid((0:10:360)*pi/180,0:0.05:1)

[x,y]=pol2cart(th,r)

z=x+i*y

f=(z.^4-1).^(0.25)

contour(x,y,abs(f),20)

axis equal

xlabel('实部','fontsize',16)

ylabel('虚部','fontsize',16)

h=polar([0 2*pi],[0 1])

delete(h)

hold on

contour(x,y,abs(f),20)

实例14:交互式图形

function shili14

h0=figure('toolbar','none',...

'position',[200 150 450 250],...

'name','实例14')

axis([0 10 0 10])

hold on

x=[]

y=[]

n=0

disp('单击鼠标左键点取需要的点')

disp('单击鼠标右键点取最后一个点')

but=1

while but==1

[xi,yi,but]=ginput(1)

plot(xi,yi,'bo')

n=n+1

disp('单击鼠标左键点取下一个点')

x(n,1)=xi

y(n,1)=yi

end

t=1:n

ts=1:0.1:n

xs=spline(t,x,ts)

ys=spline(t,y,ts)

plot(xs,ys,'r-')

hold off

实例14:交互式图形

function shili14

h0=figure('toolbar','none',...

'position',[200 150 450 250],...

'name','实例14')

axis([0 10 0 10])

hold on

x=[]

y=[]

n=0

disp('单击鼠标左键点取需要的点')

disp('单击鼠标右键点取最后一个点')

but=1

while but==1

[xi,yi,but]=ginput(1)

plot(xi,yi,'bo')

n=n+1

disp('单击鼠标左键点取下一个点')

x(n,1)=xi

y(n,1)=yi

end

t=1:n

ts=1:0.1:n

xs=spline(t,x,ts)

ys=spline(t,y,ts)

plot(xs,ys,'r-')

hold off

实例15:变换的傅立叶函数曲线

function shili15

h0=figure('toolbar','none',...

'position',[200 150 450 250],...

'name','实例15')

axis equal

m=moviein(20,gcf)

set(gca,'nextplot','replacechildren')

h=uicontrol('style','slider','position',...

[100 10 500 20],'min',1,'max',20)

for j=1:20

plot(fft(eye(j+16)))

set(h,'value',j)

m(:,j)=getframe(gcf)

end

clf

axes('position',[0 0 1 1])

movie(m,30)

实例16:劳伦兹非线形方程的无序活动

function shili15

h0=figure('toolbar','none',...

'position',[200 150 450 250],...

'name','实例15')

axis equal

m=moviein(20,gcf)

set(gca,'nextplot','replacechildren')

h=uicontrol('style','slider','position',...

[100 10 500 20],'min',1,'max',20)

for j=1:20

plot(fft(eye(j+16)))

set(h,'value',j)

m(:,j)=getframe(gcf)

end

clf

axes('position',[0 0 1 1])

movie(m,30)

实例17:填充图

function shili17

h0=figure('toolbar','none',...

'position',[200 150 450 250],...

'name','实例17')

t=(1:2:15)*pi/8

x=sin(t)

y=cos(t)

fill(x,y,'r')

axis square off

text(0,0,'STOP',...

'color',[1 1 1],...

'fontsize',50,...

'horizontalalignment','center')

例18:条形图和阶梯形图

function shili18

h0=figure('toolbar','none',...

'position',[200 150 450 250],...

'name','实例18')

subplot(2,2,1)

x=-3:0.2:3

y=exp(-x.*x)

bar(x,y)

title('2-D Bar Chart')

subplot(2,2,2)

x=-3:0.2:3

y=exp(-x.*x)

bar3(x,y,'r')

title('3-D Bar Chart')

subplot(2,2,3)

x=-3:0.2:3

y=exp(-x.*x)

stairs(x,y)

title('Stair Chart')

subplot(2,2,4)

x=-3:0.2:3

y=exp(-x.*x)

barh(x,y)

title('Horizontal Bar Chart')

实例19:三维曲线图

function shili19

h0=figure('toolbar','none',...

'position',[200 150 450 400],...

'name','实例19')

subplot(2,1,1)

x=linspace(0,2*pi)

y1=sin(x)

y2=cos(x)

y3=sin(x)+cos(x)

z1=zeros(size(x))

z2=0.5*z1

z3=z1

plot3(x,y1,z1,x,y2,z2,x,y3,z3)

grid on

xlabel('X轴')

ylabel('Y轴')

zlabel('Z轴')

title('Figure1:3-D Plot')

subplot(2,1,2)

x=linspace(0,2*pi)

y1=sin(x)

y2=cos(x)

y3=sin(x)+cos(x)

z1=zeros(size(x))

z2=0.5*z1

z3=z1

plot3(x,z1,y1,x,z2,y2,x,z3,y3)

grid on

xlabel('X轴')

ylabel('Y轴')

zlabel('Z轴')

title('Figure2:3-D Plot')

实例20:图形的隐藏属性

function shili20

h0=figure('toolbar','none',...

'position',[200 150 450 300],...

'name','实例20')

subplot(1,2,1)

[x,y,z]=sphere(10)

mesh(x,y,z)

axis off

title('Figure1:Opaque')

hidden on

subplot(1,2,2)

[x,y,z]=sphere(10)

mesh(x,y,z)

axis off

title('Figure2:Transparent')

hidden off

实例21PEAKS函数曲线

function shili21

h0=figure('toolbar','none',...

'position',[200 100 450 450],...

'name','实例21')

[x,y,z]=peaks(30)

subplot(2,1,1)

x=x(1,:)

y=y(:,1)

i=find(y>0.8&y<1.2)

j=find(x>-0.6&x<0.5)

z(i,j)=nan*z(i,j)

surfc(x,y,z)

xlabel('X轴')

ylabel('Y轴')

zlabel('Z轴')

title('Figure1:surfc函数形成的曲面')

subplot(2,1,2)

x=x(1,:)

y=y(:,1)

i=find(y>0.8&y<1.2)

j=find(x>-0.6&x<0.5)

z(i,j)=nan*z(i,j)

surfl(x,y,z)

xlabel('X轴')

ylabel('Y轴')

zlabel('Z轴')

title('Figure2:surfl函数形成的曲面')

实例22:片状图

function shili22

h0=figure('toolbar','none',...

'position',[200 150 550 350],...

'name','实例22')

subplot(1,2,1)

x=rand(1,20)

y=rand(1,20)

z=peaks(x,y*pi)

t=delaunay(x,y)

trimesh(t,x,y,z)

hidden off

title('Figure1:Triangular Surface Plot')

subplot(1,2,2)

x=rand(1,20)

y=rand(1,20)

z=peaks(x,y*pi)

t=delaunay(x,y)

trisurf(t,x,y,z)

title('Figure1:Triangular Surface Plot')

实例23:视角的调整

function shili23

h0=figure('toolbar','none',...

'position',[200 150 450 350],...

'name','实例23')

x=-5:0.5:5

[x,y]=meshgrid(x)

r=sqrt(x.^2+y.^2)+eps

z=sin(r)./r

subplot(2,2,1)

surf(x,y,z)

xlabel('X-axis')

ylabel('Y-axis')

zlabel('Z-axis')

title('Figure1')

view(-37.5,30)

subplot(2,2,2)

surf(x,y,z)

xlabel('X-axis')

ylabel('Y-axis')

zlabel('Z-axis')

title('Figure2')

view(-37.5+90,30)

subplot(2,2,3)

surf(x,y,z)

xlabel('X-axis')

ylabel('Y-axis')

zlabel('Z-axis')

title('Figure3')

view(-37.5,60)

subplot(2,2,4)

surf(x,y,z)

xlabel('X-axis')

ylabel('Y-axis')

zlabel('Z-axis')

title('Figure4')

view(180,0)

实例24:向量场的绘制

function shili24

h0=figure('toolbar','none',...

'position',[200 150 450 350],...

'name','实例24')

subplot(2,2,1)

z=peaks

ribbon(z)

title('Figure1')

subplot(2,2,2)

[x,y,z]=peaks(15)

[dx,dy]=gradient(z,0.5,0.5)

contour(x,y,z,10)

hold on

quiver(x,y,dx,dy)

hold off

title('Figure2')

subplot(2,2,3)

[x,y,z]=peaks(15)

[nx,ny,nz]=surfnorm(x,y,z)

surf(x,y,z)

hold on

quiver3(x,y,z,nx,ny,nz)

hold off

title('Figure3')

subplot(2,2,4)

x=rand(3,5)

y=rand(3,5)

z=rand(3,5)

c=rand(3,5)

fill3(x,y,z,c)

grid on

title('Figure4')

实例25:灯光定位

function shili25

h0=figure('toolbar','none',...

'position',[200 150 450 250],...

'name','实例25')

vert=[1 1 11 2 1

2 2 12 1 1

1 1 21 2 2

2 2 22 1 2]

fac=[1 2 3 42 6 7 3

4 3 7 81 5 8 4

1 2 6 55 6 7 8]

grid off

sphere(36)

h=findobj('type','surface')

set(h,'facelighting','phong',...

'facecolor',...

'interp',...

'edgecolor',[0.4 0.4 0.4],...

'backfacelighting',...

'lit')

hold on

patch('faces',fac,'vertices',vert,...

'facecolor','y')

light('position',[1 3 2])

light('position',[-3 -1 3])

material shiny

axis vis3d off

hold off

实例26:柱状图

function shili26

h0=figure('toolbar','none',...

'position',[200 50 450 450],...

'name','实例26')

subplot(2,1,1)

x=[5 2 1

8 7 3

9 8 6

5 5 5

4 3 2]

bar(x)

xlabel('X轴')

ylabel('Y轴')

title('第一子图')

subplot(2,1,2)

y=[5 2 1

8 7 3

9 8 6

5 5 5

4 3 2]

barh(y)

xlabel('X轴')

ylabel('Y轴')

title('第二子图')

给你一个解决物理温度问题的程序,就是摄氏温度和华氏温度的相互转换问题。绝对原创,当然程序并不复杂。我是学通信的,关于电子方面的程序我有很多,网上也有很多,怕你说我copy。就给个关于温度的吧。

k=input('选择转换方式(1--摄氏转换为华氏,2--华氏转换为摄氏)罩扒:')

if

k~=1

&

k~=2

disp('请指定转换方式')

break

end

tin=input('输入待转变的温度(允许输入数组):')

if

k==1

tout=tin*9/5+32

%

摄氏转换为华氏

k1=2

elseif

k==2

tout=(tin-32)*5/9

%

华知稿氏转换为摄氏

k1=1

end

str=['物猛昌

°C''

°F']

disp(['转换前的温度',

'

',

'转换后的温度'])

disp(['

',num2str(tin),str(k,:),

'

',

num2str(tout),str(k1,:)])再建立一个模拟系统,将摄氏温度转换为华氏温度(Tf

=

9/5Tc+32)。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12556736.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存