《MATLAB智能算法超级学习手册》一一1.3 符号变量的应用

本节书摘来自异步社区出版社《MATLAB智能算法超级学习手册》一书中的第1章,第1.3节,作者:MATLAB技术联盟 , 高飞 , 许玢更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.3 符号变量的应用

MATLAB智能算法超级学习手册
符号变量在解决工程问题中的应用较多。对于一个工程问题而言,一般首先从变量出发,把问题用符号变量表示出来(得到符号矩阵),然后通过符号变量求解得到一般表达式,再根据该表达式,代入相应的初始条件,即可得到问题的具体的解。

本节主要从符号变量与实际生活实证分析出发,应用符号变量求解质点系转动惯量、油罐剩余油量体积和光的反射定理等问题。

1.3.1 质点系的转动惯量问题
已知在平面上的n个质点P 1(x 1,y 1),P 2(x 2,y 2),…,P n (x n ,y n),其质量分别为m 1,m 2,…,m n。请确定一个点P(x,y),使得质点系关于此点的转动惯量最小。
image

1.3.2 油罐剩余油量体积的求解**
油罐在一般的加油站均有应用。如何求油罐剩余油量的体积是一个亟待解决的问题。例如,如图1-9(a)所示,一平放的椭圆柱体形状的油罐,长度为L,椭圆的长半轴为a,短半轴为b,油的密度为ρ,问:当油罐中油的高度为h时,油量是多少?

解:由题意可知,该柱体在长度方向上是均匀的,故在此取该椭圆柱体的一横截面进行分析探讨,如图1-9(b)所示。

image

图1-9 椭圆柱油罐

假设椭圆柱体的横截面为标准的椭圆形,且椭圆柱体完好无损,放置平稳,外界干扰可忽略不计;椭圆柱体里油高为h的油面与所建坐标系上的椭圆柱体横截面相交,且一交点为A点,A点坐标为(x,y)。
image

该模型结果符合题目要求。程序如下:

>> syms a b h y L
m=sqrt(b^2-y^2);
m1=int(m);
m2=int(m,'-b','n')
m2 =
 (b^2*asin(b/(b^2)^(1/2)))/2 + (b^2*asin(n/(b^2)^(1/2)))/2 + (n*(b^2 - n^2)^(1/2))/2

>> m3=subs(m2,'n','y');
>> S=2*a/b*m3;
>> simplify(S)
ans =
a*b*(asin(b/(b^2)^(1/2)) + asin(y/(b^2)^(1/2))) + (a*y*(b^2 - y^2)^(1/2))/b

>> V=S*L
V =
(2*L*a*((b^2*asin(b/(b^2)^(1/2)))/2 + (b^2*asin(y/(b^2)^(1/2)))/2 + (y*(b^2 - y^2)^(1/2))/2))/b

>> V=2*a/b*(1/2*y*(b^2-y^2)^(1/2)+1/2*b^2*atan(y/(b^2-y^2)^(1/2)))*L;
>> y=h-b;
>> V1=subs(V,'y','h-b')
V1 =
-(2*L*a*((b^2*atan((b - h)/(b^2 - (b - h)^2)^(1/2)))/2 + ((b^2 - (b - h)^2)^(1/2)*(b - h))/2))/b

>> simplify(V1)
ans =
- L*a*b*atan((b - h)/(b^2 - (b - h)^2)^(1/2)) - (L*a*(b^2 - (b - h)^2)^(1/2)*(b - h))/b

>>

1.3.3 光的反射定理的论证
光的发射定理最早由费马提出(费马原理)光总是沿用时最短的光程传播。试根据这一原理利用极值的有关知识证明光的反射定律:入射角等于反射角。下文将借助于符号变量证明入射角等于反射角。

根据题意,光线的入射、反射过程可由图1-10直观地表示出来。在图1-10中,光线从1入射,反射到2点。

image

针对图1-10所示的光线反射路径图,假设一束自然光线沿路径L 10照射到x轴,y轴设为实物体表面,且为理想状态,光线传播过程中无阻碍,与法线y轴的夹角为θ 1;光线经实物体表面x轴反射后,沿路径L 02反射,与法线y轴的夹角为θ 2。由费马原理可得,路径L 10、路径L 02为直线;光线从1点到2点在坐标轴上的竖直方向上的投影相等,且为H;光在空气中传播的速度为光线在真空中传播的速度C;1点与2点之间的距离为定值I;光线从L 10到L 02所需时间为T。
image

>> syms H C K x
>> T=(H/C)*((1/cos(x))+[1+(K-tan(x))^2]^(1/2));
>> dfdx=diff(T,x)
dfdx =
H/C*(1/cos(x)^2*sin(x)+1/(1+(K-tan(x))^2)^(1/2)*(K-tan(x))*(-1-tan(x)^2))
>> a=solve(dfdx,'x');
>> tan(a)
ans =
 1/2*K
 1/2*K
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值