MATLAB程序设计与应用
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
百钱买百鸡
syms x y z 为什么不用 p=x;q=z; z=eval(solve(f2-100)); for y=0:33 f1=x+y+z; x=solve(f1-100); f2=5*x+3*y+z/3; z=solve(f2-100); if mod(eval(z),3)==0&y+eval(z)<=100 fprintf('%g %g %g\n',100-y-eval(z),y,eval(z)); end x=p;z=q; end
方法1-1:运用符号函数 syms+solve
方法1-2:
百钱买百鸡
disp('鸡翁 鸡母 幼鸡'); for x=0:20 for y=0:33 z=100-x-y; if 5*x+3*y+z/3==100 fprintf('%g %g %g\n',x,y,z); end 鸡翁 鸡母 幼鸡 end 0 25 75 end 4 18 78
y 5 3e
程序:
2t
sin(4t 3 / 3)
b=0.1;t=0:b:1.5;w= 4*sqrt(3); y=5*sqrt(3)*exp(-2*t).*sin(w*t+pi/3); plot(t,y); title(‘单变量绘图’); xlabel('x');ylabel('y(t)'); grid on;hold on; Dy=diff(y)/b; plot(t(1:length(t)-1),Dy,’*’)
2)主程序:
>> T=input('绝对温度T=');
>> mu=input('气体分子量mu=');
>> vmin=input('速度下限vmin='); >> vmax=iห้องสมุดไป่ตู้put('速度上限vmax=');
>> v=0:1500;
>> y=mksw(T,mu,v);
>> plot(v,y);
m 3/ 2 2 mv 2 f 4 ( ) v exp( ) 2 kT 2kT
程序:
1)子程序(mksw.m): function f=mksw(T,mu,v) R=8.31; %气体常数 k=1.381*10^(-23); %玻尔茨曼常数 NA=6.022*10^23; %阿伏伽德罗数 m=mu/NA; %分子质量 f=4*pi*(m/(2*pi*k*T)).^(3/2) ... .*exp(-m*v.^2./(2*k*T)).*V.^2; %速度分布率
一.单变量函数的计算和绘图
2t
例5.1:已知 y 5 3e sin(4t 3 / 3) 要求以0.01秒为间隔,绘出y及其导数的曲线. 分析:用diff(y,n)求Dy , 每求导一次,y的维数减一。 Dy=diff(y)结果为Dy=y1-y2, 故 y’=Dy/Dx= diff(y)/Dx
plot(t(2:length(t)),Dy,’p’)
y1=-10*sqrt(3)*exp(-2*t)… .*sin(w*t+pi/3)+60*exp(-2*t)… .*cos(w*t+pi/3); hold on ; plot(t,y1,‘r') legend('y','Dy1', 'Dy2', 'y1')
c.三重。 for… for… for…if…end…end …end …end
2)利用网格数组meshgrid( )
百钱买百鸡
方法1-1:
x+y+z=100 5x+3y+z/3=100 解方程得:
7x+4y=100
y=(100-7x)/4
for x=0:25 y=(100-7*x)/4; if mod(100-x-y,3)==0&y>=0 fprintf(' %g %g %g\n',x,y,100-x-y); end end
8 12 11 4 81 84
方法1-3:
百钱买百鸡
disp('鸡翁 鸡母 幼鸡'); for x=0:20 for y=0:33 for z=3:3:99 if x+y+z==100&5*x+3*y+z/3==100 fprintf(' %g %g %g\n',x,y,z); end end end end
复习 分子物理学绘图
例4.6:利用气体分子运动的麦克斯韦速度分 布率,求27°C下氮分子运动的速度分布曲线, 并求速度在300-500m/s范围内的分子所占的比 例,讨论温度T及分子量对速度分布曲线的影 响。 解: 积分函数 trapz() 建模
1.麦克斯韦速度分布率为:
2.考虑到该公式较复杂,建立.m文件。
hold on; >> v1=vmin:vmax; %速度分布率 >> y1=mksw(T,mu,v1); >> fill([v1,500,300],[y1,0,0],'r'); trapz(y1);
结果:
当输入: 绝对温度T=300 气体分子量mu=0.028 速度下限vmin=300 速度上限vmax=500
Dy和y1不重合呢?
例5.2.求点u=(1,2,3)到平面
第五讲
MATLAB数值计算 符号计算
授课教师:田 鹏
数值计算+符号计算
5.1 5.2 5.3 5.4 5.5
函数、极限和导数 空间解析几何 数列和级数 数值方法和符号积分 线形代数
参考书目: Shoichiro Nakamura.科学计算引论——基于MATLAB 的数值分析[M].电子工业出版社,北京.2006.1
方法2-1:
百钱买百鸡
[x,y]=meshgrid(0:20,0:33); t=(find(5*x+3*y+(100-x-y)/3==100)); x(t)' y(t)' 100-x(t)'-y(t)' 鸡翁: 0
鸡母: 25
4
8
12
4
18 11
幼鸡: 75
78 81 84
5.1 函数、极限和导数
ans = 0.3763
复习.我国古代数学家张丘在“算经”里 提出一个世界数学史上有名的百鸡问题: 鸡翁一,值钱五,鸡母一,值钱三,幼鸡 三,值钱一,百钱买百鸡,问各几何?
解: 建模
(怎么建???)
1)运用循环语句for…end a.一重; for…if…end…end
b.二重; for… for…if…end…end …end