Matlab解多元非线性方程,有20个未知变量需要求解,但是测出的参数组有60对,所以想找最优解,如何处理方程是k=f(x,y,z)形式,其中参数是20个未知变量,从a1到a20,是多元非线性方程(最高三次方),

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/28 09:25:20

Matlab解多元非线性方程,有20个未知变量需要求解,但是测出的参数组有60对,所以想找最优解,如何处理方程是k=f(x,y,z)形式,其中参数是20个未知变量,从a1到a20,是多元非线性方程(最高三次方),
Matlab解多元非线性方程,有20个未知变量需要求解,但是测出的参数组有60对,所以想找最优解,如何处理
方程是k=f(x,y,z)形式,其中参数是20个未知变量,从a1到a20,是多元非线性方程(最高三次方),通过实验测出的已知数据组([x,y,z],k)有60对,远远大于未知量的个数,所以我想寻找最优解组,使得按照这个最优解组写成的方程式f'(x,y,z)带入[x,y,z]后的计算结果k'与k的误差为10e-4量级(越小越好),哪位给讲讲怎么个迭代求解和约束法,或者别的方法,我matlab学的很不好,后悔当年浪费的时光……我一共5个金币,不好意思了不能付金币了,实在抱歉

Matlab解多元非线性方程,有20个未知变量需要求解,但是测出的参数组有60对,所以想找最优解,如何处理方程是k=f(x,y,z)形式,其中参数是20个未知变量,从a1到a20,是多元非线性方程(最高三次方),
你有60组数据,就是有
x ,y,z,k 四个数据,每个数据长度都是60
首先设置一个匿名函数fun,这里以k=a1*x*y+a2*y*z+a3*z*x为例子
fun=@(a,in) a(1).*in(:,1).*in(:,2)+a(2).*in(:,2).*in(:,3)+a(3).*in(:,3).*in(:,1);
用a(n)去代替需要拟合的第n个参数,用in(,:1)代替x,in(,:2)代替y,in(,:3)代替z
根据你自己的函数形式,写好这个函数,记住乘除和乘方要用,.*,.\,.^ 加个点
然后
in=[x(:) y(:) z(:)];
options = statset('TolFun',1e-4);
a=nlinfit(in,k,fun,[1 1 .1],options);
options那句控制精度
nlinfit的第一个参数是函数输入数据,这里是 in,存着x y z的数据
第二个参数是函数输出,这里是 k
第三个参数是你要拟合的方程,这里填fun,是我们之前辛苦写好的匿名函数
第四个参数是拟合参数的初值[1 1 .1]这里要填20个数
第五个参数是拟合设置,填入上一句设置好的options
输出a就是拟合好之后的参数,是一个长度为20的向量
有时候拟合结果会跟初值有关系,如果你的函数形式很复杂,
初值设不好可能会拟合不好,只能自己慢慢调整了

Matlab解多元非线性方程,有20个未知变量需要求解,但是测出的参数组有60对,所以想找最优解,如何处理方程是k=f(x,y,z)形式,其中参数是20个未知变量,从a1到a20,是多元非线性方程(最高三次方), matlab解非线性方程问题 谁能用Matlab帮我解如下多元非线性方程组,解出结果来的另有重谢!这里面的8个方程,8个字母的全是未知数。 如何用matlab解非线性方程? matlab如何解非线性超标定方程 matlab里计算非线性方程的函数有哪些 matlab 怎么解非线性方程假设有两个方程 K=10;x中有10个元素 满足下列条件要求xfor k=1:10x(1)=x(k).^ksum(x)=1end matlab中存在非线性抛物型方程吗 一个关于如何用matlab进行多元非线性回归的问题我现在只有4组数据 想通过matlab里面的多元非线性回归 得出一个成本模型 其中一个因变量 3个自变量 在matlab里面应该用哪个函数来对这4 含有参数的非线性方程组matlab能解含有变量参数的非线性方程吗?如x,y,z都要用a来表示,能给个例子示范一下吗, 多元方程有唯一解是什么意思 matlab怎么解非线性方程.如tan(x)=4x/(x^2+4) 用matlab怎么求解含有三角函数的非线性方程中解x为多少? 有没有二分法解非线性方程的MATLAB程序要求的是f(x)=0在区间[a,b]上的根 怎样用matlab解多元高次方程?只有一个方程,我要多组解的那种 复杂解非线性方程组怎么解?一个多元非线性方程组,共n个方程,n个变量,f1(x1,x2,...xn)=0f2(x1,x2,...xn)=0...fn(x1,x2,...,xn)=0函数f是包含log、平方等复杂函数如何求这样方程组的解,用什么方法比较合适 matlab求解非线性方程(急,如何用matlab求解下面这个非线性方程?貌似应该不难这个方程应该有多个解,想查看前大于0的那前10个,应该怎么办? lsqnonlin(解非线性最小二乘问题)怎么使用?我是个新手,最好有详细的教程,最好有例子啊,用MATLAB中的lsqnonlin函数来算,