24小时热门版块排行榜    

查看: 1097  |  回复: 6
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

847396025

金虫 (小有名气)

[求助] MATLAB非线性拟合 已有1人参与

数据是每一个x对应一个y
x=10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170 180 190 200
y=417.308 390.957 359.313 347.39 315.77 309.942 290.582 275.24 251.62 200.9 180.76 134.65 149.45 108.823 138.25 103.431 93.75 104.87 83.871 108.475
拟合要用的方程 y=(700+x)*(2*x/(700+x))*(n1*h1*k1*L/(1+k1*L)+n2*k2*h2*L/(1+k2*L)),其中L很复杂,用下面的方程单独表示出来:
L=2*(-1*Y)^0.5*cos((θ)/3)-(B)/3/(A);
θ=arccos((-1*(x))/(((-1*(y))^3)^0.5));
A=k1*k2;
B=k1+k2+k1*k2*(2*x/(700+x)*(n1+n2)-7000/(700+x));
C=1+2*x/(700+x)*(n1*k1+n2*k2)-7000/(700+x)*(k1+k2);
D=-1*7000/(700+X);
Y=C/3/(A)-((B)/3/(A))^2;
X=((B)/3/(A))^3-(B)*(C)/6/((A)^2)+(D)/2/(A);注意这里的X,Y是大写的
自变量、因变量是小写的x,y
n1、n2、K1、K2、H1、H2是需要拟合的参数。
请大牛帮我把matlab的程序写出来,本人是初学者,仅仅看了matlab的教程而已,求指教。
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

简简单单比什么都好
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cooooldog

铁杆木虫 (著名写手)

ส็็็

关键先把问题表达清,本来问题就眼花缭乱,你使用大小写的时候还这么不注意
ส็็็็็็็็็็็็็็็็็็็็
5楼2016-03-01 20:41:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 7 个回答

月只蓝

主管区长 (职业作家)

这不是普通的非线性代数方程拟合问题,从给出的方程可以看到,y是L的函数,L是θ的函数,而θ又是y的函数,最终的结果就是,你拟合的方程不是显式,而是隐式的,而且方程关系很复杂。
此外,D=-1*7000/(700+X);X=((B)/3/(A))^3-(B)*(C)/6/((A)^2)+(D)/2/(A),其中的D和X都是过渡参数,这两个方程表明,D或X也是隐式的。

你求助下dingd吧,看看高级版本的1stOpt能做不。这问题如果简单,估计早有人应助了。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
2楼2016-03-01 15:54:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

淘宝搜费老师

捐助贵宾 (小有名气)


【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
847396025: 金币+30, 有帮助 2016-03-01 21:32:10
你的问题可参照下面的帖子进行,用lsqnonlin函数。
http://muchong.com/html/201407/7603645.html
3楼2016-03-01 16:22:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

NicoleLas

木虫 (正式写手)

表述得太奇怪了.
   x, y都是vector, 那似乎theta也是个vector, L也是?都是vector?命名太容易出错了,大小写有时候特别容易混淆,换个名字,自己理清思路,哪些是vector, 哪些是scalar........
Be water, my friend.
4楼2016-03-01 18:51:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见