使用matlab / python建模11个联立方程

时间:2016-01-26 01:49:57

标签: python matlab math

因此,我正致力于一个项目,使用两个独立的泵,沿着一个板分配聚合物梯度,并使用[0%至100%]和[0%至100%]的已知值。 [100%到0%]渐变我能够创建一组方程式,其中'应该'能够将此与我想要的任何渐变联系起来。有11个未知数,我可以制作9个方程,加上7个不等式,其中两个我认为是必要的,其他只是保持正值。随着方程的创建,我对0 - 100梯度的已知值起到解决作用,但当我尝试求解相同梯度的方程式时,我已经得到了答案,我尝试的解算器似乎没有用。

我的主程序是用python编写的,并且更喜欢将它保留在其中,但如果可以在matlab中完成,那也没关系。

这是我用于测试的matlab代码,因为我无法使用python进行任何关闭......:

clc
clear all

%% Givens
s1 = 0;
f1 = 1;
s2 = 1;
f2 = 0;
vt = 1200;

%% Unknowns
syms ri1 ri2 c1 c2 k1 k2 vf1 vf2 rf1 rf2 t

%% Equations
soln = vpasolve(...
        [ri1 == c1,...
        ri2 == c2,...
        rf1 == k1 * t + c1,...
        rf2 == k2 * t + c2,...
        vf1 == ((k1 * t^2) / 2) + c1 * t,...
        vf2 == ((k2 * t^2) / 2) + c2 * t,...
        ri1 * s2 == ri2 * s1,...
        rf1 * f2 == rf2 * f1,...
        vt == vf1 + vf2,...
        rf1 <= 8,...
        rf2 <= 8,...
        ], [ri1 ri2 c1 c2 k1 k2 vf1 vf2 rf1 rf2 t], [0 8 4/75 150 0 8 8 0 -4/75 600 600])

对于那个测试,我甚至使用正确的猜测解决方案,我仍然得到一个空数组。如果我从[-inf,inf]设置vpasolve的边界,它表示它与变量不匹配。它也完成了近乎即时解决的尝试,因此显然只是立即击中NaN。

Here是指向带有格式化方程式和解决方案的Google doc的链接。希望我已经详细介绍了,如果没有,请告诉我您需要的更多信息!

感谢您的帮助! -Kyle

P.S - 我尝试了here发布的内容但没有成功。

编辑:我能够在mathmatica here中解决它。我添加的额外不等式是尝试从答案中删除第一组,这不起作用,但第二组是适当的解决方案。

看起来它可能只是超出了matlab和python来解决,我可能只需要编写mathmatica为其找到的所有答案。

0 个答案:

没有答案