
反向传播剪枝, 例:A+B=X,A+B=Y,求X、Y,dX/dA?
根据用户枯饥的求解需求,可以剪掉没有求解的没带返图分支。
你的 v是什么?补充一下昌差条衡悉件吧
还有你的式子括号根本就不耐拦皮匹配,怎么解?
同志,认真点吧!
这是大概解法 自己再修改修改吧
m=1.2*(10^4)
EI=1.275*10^11
M1=4.69*10^4
M2=1.69*10^4
l=50
g=9.8
c=3.14*10^5
k=4.87*10^6
u=1
v=1
dsolve('M1*D2z+c*(Dz-Dy*sin(pi*v*t/l))=-k*(z-y*sin(pi*v*t/l))-u*k*(z-y*sin(pi*v*t/l))',...
'D2y+2/m*l*(M1*D2z+M2*D2y*sin(pi*v*t/l))*sin(pi*v*t/l)=2/m*l*(M1+M2)*g*sin(pi*v*t/l)-(EI*pi^4/m*l^4)*y',...
'Dy(0)=0','D2y(0)=0','Dz(0)=0','D2z(0)=0','z(0)=0','y(0)=0')
祝君好运
循环体碧帆被执行四次,重点看循环体语句“Output=[Outputeval([Expression{i},'(',num2str(Num),')'])]”这里有两部分:1、Output=[OutputXXX],这里的中括号表示做行方向上的拼接(省略了逗号,实际可以写成 [Output,XXX])。举例自己体会一下:a = []b = [1 23 4]a = [a b]c = [5 67 8]a = [a c]输出:a = 1 2 3 4a = 1 2 5 6 3 4 7 8所以这一部分代码表示不断将XXX拼接到Output的后面。备注:[Output,XXX]表示行方向上的拼接(可省略逗号,用空格隔开)[OutputXXX]表示列方向上的拼接(分号不能省略)注意逗号和分号的区别。2、eval([Expression{i},'(',num2str(Num),')'])eval函数的功能是将一个字符串等卖含价转换为一个对应可执行的matlab语句,举例:a = 3eval('b=4')输出:a = 3b = 4可以发现第二句实际上就是执行一句MATLAB语句,即b=4。回头来看看表达式[Expression{i},'(',num2str(Num),')'],只看i为1的时候,这句相当于是['zeros','(',num2str(Num),')']上面提到中括号内用逗号隔开是做行方向上的拼接,故中括号里面都是字符串时,实际上就是做字符串的拼接。所以i为1时,这个字符串是“zeros(2)”。因此,可以看到这里随着i的变化,产生了四个字符串,即:'zeros(2)''ones(2)''rand(2)''magic(2)'然后调用evaleval('zeros(2)') -->等价于MATLAB语句zeros(2)eval('悔配雹ones(2)') -->等价于MATLAB语句ones(2)eval('rand(2)') -->等价于MATLAB语句rand(2)eval('magic(2)') -->等价于MATLAB语句magic(2)这下可以理解了吧,这个循环体实际上使用MATLAB自带的矩阵函数,生成了4个特殊矩阵,每个矩阵都是2x2的,最后把这4个2x2的矩阵在行方向上拼接到一起。故最后结果是一个2x8的矩阵。欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)