处理常量名称的颂歌的解决方案万博 尤文图斯

2视图(30天)
所以,我试图解决symbolycally变分难题找到最小值对于一个给定的功能。但是我不能处理常量的名字而解欧拉方程。当改变函数F,常量列举不同,我不知道如何让他们/
clc
信谊x y Dy D2y
F = x + y ^ 2 + Dy ^ 2;
x1 = 0;
日元= 1;
x2 = 1;
y2 = 3;
φ= - x ^ 2 + 4;
流(F (x, y, y”) = % s \ n 'char (F))
流(的边界条件数。左:y (% d) = % d \ n '(x1, y1)
流(的边界条件数。右侧:y (% d) = % d \ n 'x2, y2)
流('右边限制:y = % s \ n 'char(φ))
dFdy =差异(F, y);
dFdy1 = diff (F Dy);
d_dFdy1_dx = diff (dFdy1 x);
d_dFdy1_dy = diff (dFdy1 y);
d_dFdy1_dy1 = diff (dFdy1、Dy);
dFy1dx = d_dFdy1_dx + d_dFdy1_dy * Dy + d_dFdy1_dy1 * D2y;
欧拉=简化(dFdy-dFy1dx);
deqEuler = (char(欧拉)“= 0”];
索尔= dsolve (deqEuler,“x”);
如果长度(Sol) ~ = 1
错误(“不解决万博 尤文图斯方案(或更多然后1)!”);
结束
SolLeft =潜艇(溶胶,x, x1);
SolRight =潜艇(溶胶,x, x2);
EqLeft = [SolLeft = =符号(日元)% = y₁
EqRight = [SolRight = =符号(y2)];% = y2
信谊C1 C2
反对=解决([EqLeft EqRight], [C1 C2]);
所以,堵塞例如F = - y ^ 2 + Dy ^ 2给我系统与C6、C7流行的而不是C1和C2。为什么会这样呢?

接受的答案

沃尔特·罗伯森
沃尔特·罗伯森 2020年12月21日
MATLAB倾向于使用“下一个可用积分常数,但“下一个可用”可能考虑到符号引擎仍有内部参考使用的C *。
您需要使用symvars()或类似的检测这名字,可能与setdiff()对已知符号的名称。
当有多个常数相同的表达式,然后有时你需要做一些分析来找出哪些常数是表演的角色。有时它是容易替代已知值0或1等变量和常数surives看到。有时,您需要使用类似findSymType()来匹配一个特定的子表达式……它可以是有点讨厌。

更多的答案(0)

s manbetx 845


释放

R2018b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!