24小时热门版块排行榜    

查看: 1260  |  回复: 6

工程师1995

金虫 (小有名气)

[求助] 求助MATLAB最小二乘 已有2人参与

求助MATLAB最小二乘法
(alfa*(x(1)-2*x(2))+1)*x(3)-lamda*gama*(1-x(2))=0;
(alfa(*x(1)-2*x(2))+1)*x(1)-2*lamda*gama*x(3)=0;
(1-alfa*x(2))*x(2)-alfa*(x(3))^2=0;

上面是一个方程组,从实验中测得了x(3)和gama之间的关系,有50组数据点。
我想要通过最小二乘的方法,回归出alfa,lamda的数值。

问题的难点在于这个方程组无法求解出x(3)关于gama的解析解。只能把三个方程放在一起求解数值解。

所以请大神帮帮我。已经折磨我两个星期了。@laosam280
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wurongjun

专家顾问 (职业作家)

用非线性拟合命令,nlinfit就可以!

发自小木虫Android客户端
善恶到头终有报,人间正道是沧桑.
2楼2019-04-17 10:26:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

工程师1995

金虫 (小有名气)

引用回帖:
2楼: Originally posted by wurongjun at 2019-04-17 10:26:10
用非线性拟合命令,nlinfit就可以!

我只能测到x(3)和gama的数据,x(1)和x(2)的数据没法测,这样也可以用nlinfit吗?
3楼2019-04-17 10:34:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hzlhm

至尊木虫 (著名写手)

【答案】应助回帖

感谢参与,应助指数 +1
可以用nlinfit函数来拟合alfa,lamda,x1,x2。其自定义拟合函数可以这样来考虑

function x3=func(x)
%求助MATLAB最小二乘法
xalfa=x(1);lamda=x(2);x1=x(3);x2=x(4);
%(alfa*(x1-2*x2)+1)*x3-lamda*gama*(1-x2)=0;
%(alfa*(x1-2*x2)+1)*x1-2*lamda*gama*x3=0;
%(1-alfa*x2)*x2-alfa*(x3)^2=0;
x31=lamda*gama*(1-x2)/(alfa*(x1-2*x2)+1);
x32=(alfa*(x1-2*x2)+1)*x1/(2*lamda*gama);
x33=sqrt((1-alfa*x2)*x2/alfa);
x3=(x31+x32+x33)/3;
end
QQ:2120156492
4楼2019-04-17 22:48:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

工程师1995

金虫 (小有名气)

引用回帖:
4楼: Originally posted by hzlhm at 2019-04-17 22:48:16
可以用nlinfit函数来拟合alfa,lamda,x1,x2。其自定义拟合函数可以这样来考虑

function x3=func(x)
%求助MATLAB最小二乘法
xalfa=x(1);lamda=x(2);x1=x(3);x2=x(4);
%(alfa*(x1-2*x2)+1)*x3-lamda*gama*(1- ...

方程里的x(1)和x(2)并不是常数,x(1)和x(2)也都是随gama变化的,按照您的方法可以拟合吗?

发自小木虫Android客户端
5楼2019-04-17 23:25:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

把已知的数据都给出来。
6楼2019-04-30 10:52:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
7楼2019-05-10 11:29:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 工程师1995 的主题更新
信息提示
请填处理意见