关于matlab解非线性方程组(方程数大于未知数的近似解),并且需要循环计算 70
最近遇到了一个问题,我手上有4个格式很像的方程构成一个方程组,但其中未知数只有3个,方程本身比较复杂也比较长,目的是求解出最接近真实值的近似解。现在在方程所有系数已知的情...
最近遇到了一个问题,我手上有4个格式很像的方程构成一个方程组,但其中未知数只有3个,方程本身比较复杂也比较长,目的是求解出最接近真实值的近似解。现在在方程所有系数已知的情况下可以求出相应的解,但问题是我需要求8000多个类似的方程,它们的区别就是方程当中一个系数在不停变化,我在求解单独一个方程的时候用的方法是ga,但是ga好像不识别把字母当变量的情况(比如a是一个矩阵,a(1,3)=19,我带入a(1,3)就不行,一定要带入19。)这样的话就没有办法编写循环,所以想请教一下有没有大神知道其他能够求解这种方程数大于未知数的非线性方程组的方法,同时还可以用循环完成的,谢谢了
这只是方程组的前部分,后面还有很长,但是4个方程的格式几乎一样,就是系数不同,而其中后面一个系数在每次求解后都会变化,变化的数字表格我也有,但是就是没办法把这个用字母带进去
这是主要计算代码,很简单,@ga_equation中的这个ga_equation就是方程组,里面除了未知数(3个)外就必须全是具体的值,不能用字母代替,这点是编写循环代码的主要难点。
补上方程组的最后面的部分,其中var(1),var(2),var(3)是未知数,而最后的4个被减数(0.7934614,0.7155268,0.7408974,0.8508449)就是要变化的,这里只是取的其中一个,下面是变化的表格的一部分,上图选的就是第一行,然后可以算出结果,我的目的是算出结果后自动把这4个数换成第二行的,然后继续算,知道把所有结果算出来为止。得到一个8000多行的行向量 展开
这只是方程组的前部分,后面还有很长,但是4个方程的格式几乎一样,就是系数不同,而其中后面一个系数在每次求解后都会变化,变化的数字表格我也有,但是就是没办法把这个用字母带进去
这是主要计算代码,很简单,@ga_equation中的这个ga_equation就是方程组,里面除了未知数(3个)外就必须全是具体的值,不能用字母代替,这点是编写循环代码的主要难点。
补上方程组的最后面的部分,其中var(1),var(2),var(3)是未知数,而最后的4个被减数(0.7934614,0.7155268,0.7408974,0.8508449)就是要变化的,这里只是取的其中一个,下面是变化的表格的一部分,上图选的就是第一行,然后可以算出结果,我的目的是算出结果后自动把这4个数换成第二行的,然后继续算,知道把所有结果算出来为止。得到一个8000多行的行向量 展开
1个回答
展开全部
定义匿名函数的时候可以含参数变量的啊?
a = 0.1; b = 1.0;
func = @(x) a*x(1)+b*x(2);
这样绝对没问题的。
a = 0.1; b = 1.0;
func = @(x) a*x(1)+b*x(2);
这样绝对没问题的。
追问
追答
matlab的帮助文档里都有指出怎么做,示意:
定义函数时:function y = func(x, p),其中p是参数向量
程序运行时,参数值确定好以后,生成匿名目标函数:
func1 = @(x) func(x, p1);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询