24小时热门版块排行榜    

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

津津爱睡觉

金虫 (小有名气)

[求助] matlab解方程已有2人参与

x=[0,0.25,0.5,0.75,1,1.25,1.5,1.75,2,2.25,2.5,3,3.5,4,4.5,5,5.5,6,6.5]
x=1/(15.3109*49.005^2).*[log((y./86.4241).*((86.4241-49.005)./(y-49.005)))-49.005.*(1./y-1./86.4241)]我已知x值,相求y值。。使用了fzero、fslove都各种出错,卡在这好几天了。。新手,处理数据临时学的,还请大神帮忙。。感激不尽。。希望把程序告诉我啊。。还有好多要处理。。
回复此楼
有梦一起追
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

引用回帖:
13楼: Originally posted by 津津爱睡觉 at 2015-07-20 15:53:10
为啥我照着你那个在1sOpt中输的,得到完全不同的结果啊。。拟合参数都是零点几。。都要改哪些条件吗。。求版主帮忙...

把拟合结果贴出来。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
14楼2015-07-20 16:13:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 23 个回答

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
ben_ladeng: 金币+2, 辛苦了 2015-07-20 12:52:08
用1stOpt很方便:
CODE:
LoopConstant x=[0,0.25,0.5,0.75,1,1.25,1.5,1.75,2,2.25,2.5,3,3.5,4,4.5,5,5.5,6,6.5];
Function
x=1/(15.3109*49.005^2)*(ln((y/86.4241)*((86.4241-49.005)/(y-49.005)))-49.005*(1/y-1/86.4241));

x        y
0        -52.980531685766
0.25        -0.005325680664864
0.5        -0.00266410044168563
0.75        -0.0017763656641459
1        -0.00133239055348768
1.25        -0.00106596977280202
1.5        -0.000888340653964983
1.75        -0.000761455084693858
2        -0.000666286667945962
2.25        -0.000592264240768995
2.5        -0.000533044674782525
3        -0.000444212582842599
3.5        -0.000380759044626785
4        -0.000333167756019921
4.5        -0.000296151628028883
5        -0.00026653829158802
5.5        -0.000242308908315198
6        -0.000222117554561104
6.5        -0.000205032419060659
2楼2015-07-20 10:55:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ...
感谢参与,应助指数 +1
津津爱睡觉: 金币+100 2015-07-20 11:48:52
CODE:
function solve_eqs
clear all;clc
format long

global x
y0=-0.1;
x_data=[0,0.25,0.5,0.75,1,1.25,1.5,1.75,2,2.25,2.5,3,3.5,4,4.5,5,5.5,6,6.5];
for i=1:length(x_data)
    x=x_data(i);
[y(i) fval(i)]=fsolve(@eqs,y0);
end

[x_data ;y; fval]'

计算结果:
                  x                                 y                     方程残差
                 0                -1.506414574649781   0.000781864700102
   0.250000000000000  -0.005325680664661   0.000000000000122
   0.500000000000000  -0.002664100440992   0.000000000130176
   0.750000000000000  -0.001776365663977   0.000000000043270
   1.000000000000000  -0.001332390553487   0.000000000000432
   1.250000000000000  -0.001065969772692   0.000000000128479
   1.500000000000000  -0.000888340653914   0.000000000029346
   1.750000000000000  -0.000761455084694   0.000000000000222
   2.000000000000000  -0.000666286667945   0.000000000003717
   2.250000000000000  -0.000592264240769   0.000000000000011
   2.500000000000000  -0.000533044674760   0.000000000010490
   3.000000000000000  -0.000444212582825   0.000000000004250
   3.500000000000000  -0.000380759044612   0.000000000000032
   4.000000000000000  -0.000333167756007   0.000000000004873
   4.500000000000000  -0.000296151628018   0.000000000000042
   5.000000000000000  -0.000266538291578   0.000000000001760
   5.500000000000000  -0.000242308908306   0.000000000009863
   6.000000000000000  -0.000222117554561   0.000000000000224
   6.500000000000000  -0.000205032419053   0.000000000000051
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
3楼2015-07-20 11:42:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

津津爱睡觉

金虫 (小有名气)

引用回帖:
2楼: Originally posted by dingd at 2015-07-20 10:55:11
用1stOpt很方便:

LoopConstant x=;
Function
x=1/(15.3109*49.005^2)*(ln((y/86.4241)*((86.4241-49.005)/(y-49.005)))-49.005*(1/y-1/86.4241));


x        y
0        -52.980531685766
0.25        -0.005325680664864
0 ...

哇哇。。怎么都是负的啊。。说明我参数拟合错了。。我原方程是x=1/(x(2).*49.005^2).*[log((y./x(1)).*((x(1)-49.005)./(y-49.005))-49.005.*(1./y-1./x(1))]..
xdata=[0,0.25,0.5,0.75,1,1.25,1.5,1.75,2,2.5,3,3.5,4,4.5,5,5.5,6,6.5]
ydata=[83.94986152,69.18056238,63.78006779,62.16487246,60.65377495,59.89822619,58.46520206,57.7096533,56.95410455,55.769572,54.95441885,53.89832959,53.14278084,52.14041949,51.64595481,51.34373531,51.11791018,50.85514711]..我拟合出了方程中的参数x1,x2然后根据xdata求y值
有梦一起追
4楼2015-07-20 11:45:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见