matlab解多元非线性方程组,要求整数解 150
a*A+b*I+G+H==0,a*B+b*J-G==0,a*C+b*K-C==0,a*D+b*L+C+D==0,a*E+b*M-E==0,a*F+b*N+E+F==0,a...
a*A+b*I+G+H==0,a*B+b*J-G==0,a*C+b*K-C==0,a*D+b*L+C+D==0,a*E+b*M-E==0,a*F+b*N+E+F==0,a*G+b*O-B==0,a*H+b*P+A+B==0,c*A+d*I+O+P==0,c*B+d*J-O==0,c*C+d*K-K==0,c*D+d*L+K+L==0,c*E+d*M-M==0,c*F+d*N+M+N==0,c*G+d*O-J==0,c*H+d*P+I+J==0
展开
1个回答
展开全部
1.solve
格式:(1)Y = solve(eqns,vars)
(2)[y1,...,yN] = solve(eqns,vars)
先解释两个参数吧,
①eqns就是你的方程组,方程组里面的各个方程是组织为一个数组的。
所以你可以直接使用 [方程1,方程2,。。。。,方程n] 对应于eqns输入参数。
也可以后面会将到,将eqns声明为一个数组,然后带入eqns输入即可,这样方便编辑。
②vars就是你想要返回的求得的未知变量,如果你不明确指定,那他就会按照sym的对应。
③返回值,有两种。Y代表一个结构体,将返回的变量通通放入结构体Y里面,然后访问和C语言的结构体一样,假设Y下面有两个成员,y1,y2,
你直接Y不会显示里面的值,要Y.y1 Y.y2才能显示。
[y1,y2,...,yN]就是直接对应于vars里面你直接想要求得的值,如果没有明确指定vars就按默认对应。
注:(1)vars如果你不明确指定的话,在参数少的时候也容易分清返回自己想要的,但是如果参数过多还是最好明确指定自己想要的参数。
(2)Y和[y1,y2,...,yN]两种返回赋值方式各有优缺点,Y你访问里面的元素的话比较麻烦,
[y1,y2,...,yN]这种情况如果N有几十个,你这样输入很烦,而这个时候全部存入Y中,再用一个for循环遍历就能存入一个向量中了。
(3)然而突然发现,在结构体中的元素并不能使用下标来遍历,目前还在纠结中。。。
2.sym
先讲下这个函数用来干什么的,在matlab中,你可以直接用变量,但是你必须要赋值。
比如你想要输入a=b+c;
你的a和b首先要初始化,即b和c是要有值的。
那么问题就来了,我求解方程的时候就是不知道未知数才求解,如何赋值呢?
这个时候就需要使用sym声明符号变量了。它声明的未知量不用赋值。
格式:A = sym('a',[m,n])
这个的意思就是说,生成一个m,n维的矩阵A,然后它的每一个元素用a来标识。
注意:用a的标识是它标识矩阵内部的元素,你要使用该未知量还是需要按照正常的矩阵元素访问方法,比如A(1,2)这样。
环境:matlab2015a
函数:Symbolic Math Toolbox里面的sym和solve函数。其中sym在第一个红框中,solve在第二个红框中。
格式:(1)Y = solve(eqns,vars)
(2)[y1,...,yN] = solve(eqns,vars)
先解释两个参数吧,
①eqns就是你的方程组,方程组里面的各个方程是组织为一个数组的。
所以你可以直接使用 [方程1,方程2,。。。。,方程n] 对应于eqns输入参数。
也可以后面会将到,将eqns声明为一个数组,然后带入eqns输入即可,这样方便编辑。
②vars就是你想要返回的求得的未知变量,如果你不明确指定,那他就会按照sym的对应。
③返回值,有两种。Y代表一个结构体,将返回的变量通通放入结构体Y里面,然后访问和C语言的结构体一样,假设Y下面有两个成员,y1,y2,
你直接Y不会显示里面的值,要Y.y1 Y.y2才能显示。
[y1,y2,...,yN]就是直接对应于vars里面你直接想要求得的值,如果没有明确指定vars就按默认对应。
注:(1)vars如果你不明确指定的话,在参数少的时候也容易分清返回自己想要的,但是如果参数过多还是最好明确指定自己想要的参数。
(2)Y和[y1,y2,...,yN]两种返回赋值方式各有优缺点,Y你访问里面的元素的话比较麻烦,
[y1,y2,...,yN]这种情况如果N有几十个,你这样输入很烦,而这个时候全部存入Y中,再用一个for循环遍历就能存入一个向量中了。
(3)然而突然发现,在结构体中的元素并不能使用下标来遍历,目前还在纠结中。。。
2.sym
先讲下这个函数用来干什么的,在matlab中,你可以直接用变量,但是你必须要赋值。
比如你想要输入a=b+c;
你的a和b首先要初始化,即b和c是要有值的。
那么问题就来了,我求解方程的时候就是不知道未知数才求解,如何赋值呢?
这个时候就需要使用sym声明符号变量了。它声明的未知量不用赋值。
格式:A = sym('a',[m,n])
这个的意思就是说,生成一个m,n维的矩阵A,然后它的每一个元素用a来标识。
注意:用a的标识是它标识矩阵内部的元素,你要使用该未知量还是需要按照正常的矩阵元素访问方法,比如A(1,2)这样。
环境:matlab2015a
函数:Symbolic Math Toolbox里面的sym和solve函数。其中sym在第一个红框中,solve在第二个红框中。
追问
这个我试过了。请问,怎么样把结果限制成整数,而且这个结果不唯一,怎么把所有结果弄出来。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询