24小时热门版块排行榜    

查看: 1552  |  回复: 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的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

月只蓝

主管区长 (职业作家)

引用回帖:
8楼: Originally posted by 津津爱睡觉 at 2015-07-20 14:09:49
想问下拟合的代码是什么啊。。我拟合出的结果都不对。。太感谢了,你让我觉得世界都亮了...

1stOpt软件代码:
CODE:
Variable  x,y ;
Function x=1/(x2*49.005^2)*(ln((y/x1)*((x1-49.005)/(y-49.005)))-49.005*(1/y-1./x1));
Data;
         0   83.9499
    0.2500   69.1806
    0.5000   63.7801
    0.7500   62.1649
    1.0000   60.6538
    1.2500   59.8982
    1.5000   58.4652
    1.7500   57.7097
    2.0000   56.9541
    2.5000   55.7696
    3.0000   54.9544
    3.5000   53.8983
    4.0000   53.1428
    4.5000   52.1404
    5.0000   51.6460
    5.5000   51.3437
    6.0000   51.1179
    6.5000   50.8551

计算结果:
相关系数(R): 0.994536826184908
相关系数之平方(R^2): 0.98910349863795
决定系数(DC): 0.98910349863795
卡方系数(Chi-Square): -0.475114996414728
F统计(F-Statistic): 1452.36121690615

参数        最佳估算
----------        -------------
x2                 0.000124355240207823
x1                 71.0613092892056

1stopt软件获得链接:http://muchong.com/bbs/viewthread.php?tid=4586018

如果你想用MATLAB Origin等软件,具体代码或者操作步骤,可参见:
http://muchong.com/bbs/viewthread.php?tid=6572963
matlab解方程
附图1.png

MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
9楼2015-07-20 14:23:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

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的回帖

津津爱睡觉

金虫 (小有名气)

引用回帖:
3楼: Originally posted by 月只蓝 at 2015-07-20 11:42:53
function solve_eqs
clear all;clc
format long

global x
y0=-0.1;
x_data=;
for i=1:length(x_data)
    x=x_data(i);
=fsolve(@eqs,y0);
end

'



计算结果:
                  x            ...

哇哇。。怎么都是负的啊。。说明我参数拟合错了。。我原方程是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值。。能不能再帮帮我啊。。感谢。。急求
有梦一起追
5楼2015-07-20 11:48:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

引用回帖:
5楼: Originally posted by 津津爱睡觉 at 2015-07-20 11:48:09
哇哇。。怎么都是负的啊。。说明我参数拟合错了。。我原方程是x=1/(x(2).*49.005^2).*..
xdata=
ydata=..我拟合出了方程中的参数x1,x2然后根据xdata求y值。。能不能再帮帮我啊。。感谢。。急求...

不好意思,3楼代码没给出完全,完整的如下:
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]'

function f=eqs(y)
global x
f=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;

MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
6楼2015-07-20 12:30:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

引用回帖:
4楼: Originally posted by 津津爱睡觉 at 2015-07-20 11:45:48
哇哇。。怎么都是负的啊。。说明我参数拟合错了。。我原方程是x=1/(x(2).*49.005^2).*..
xdata=
ydata=..我拟合出了方程中的参数x1,x2然后根据xdata求y值...

先拟合出:
x2   =              0.000124354608284474
x1     =            71.0611809557734

相关系数(R): 0.99453642822085
相关系数之平方(R^2): 0.989102707058286
决定系数(DC): 0.989102707058287

代入之后用MATLAB解方程:
CODE:
function solve_eqs
clear all;clc
format long

global x
y0=50;
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]'

function f=eqs(y)
global x
f=1/(0.000124354608284474*49.005^2).*(log((y./71.0611809557734).*((71.0611809557734-49.005)./(y-49.005)))-49.005.*(1./y-1./71.0611809557734))-x;

计算结果:
x                                               y                        方程残差
                   0              71.061023088663632   0.000011398222637
   0.250000000000000  67.988292938180209   0.000000000096047
   0.500000000000000  65.534689215008385   0.000000331981567
   0.750000000000000  63.529133478234002   0.000000000137998
   1.000000000000000  61.859615079896656   0.000000036989439
   1.250000000000000  60.449405535313012   0.000003469065679
   1.500000000000000  59.244034566066560   0.000000108193081
   1.750000000000000  58.203506004930126   0.000000000309269
   2.000000000000000  57.297823894942496   0.000000002283940
   2.250000000000000  56.503949371087856   0.000000000099167
   2.500000000000000  55.803867449155170   0.000000000001618
   3.000000000000000  54.630610121986017   0.000000002101571
   3.500000000000000  53.693164548810202   0.000000017349405
   4.000000000000000  52.934038863155749   0.000000762365175
   4.500000000000000  52.312777591278476   0.000000000526119
   5.000000000000000  51.800007824280115   0.000000000001291
   5.500000000000000  51.373858765788839   0.000000363302177
   6.000000000000000  51.017693708877445   0.000000025319006
   6.500000000000000  50.718627743671938   0.000000000780623
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
7楼2015-07-20 12:42:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

津津爱睡觉

金虫 (小有名气)

引用回帖:
7楼: Originally posted by 月只蓝 at 2015-07-20 12:42:34
先拟合出:
x2   =              0.000124354608284474
x1     =            71.0611809557734

相关系数(R): 0.99453642822085
相关系数之平方(R^2): 0.989102707058286
决定系数(DC): 0.989102707058287

代入之后用MA ...

想问下拟合的代码是什么啊。。我拟合出的结果都不对。。太感谢了,你让我觉得世界都亮了
有梦一起追
8楼2015-07-20 14:09:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

津津爱睡觉

金虫 (小有名气)

引用回帖:
9楼: Originally posted by 月只蓝 at 2015-07-20 14:23:09
1stOpt软件代码:
Variable  x,y ;
Function x=1/(x2*49.005^2)*(ln((y/x1)*((x1-49.005)/(y-49.005)))-49.005*(1/y-1./x1));
Data;
         0   83.9499
    0.2500   69.1806
    0.5000   63.7801
     ...

真的很谢谢你。。授之以鱼不如授之以渔。。版主两样都告诉了我。。版主棒棒哒!
有梦一起追
10楼2015-07-20 14:34:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 津津爱睡觉 的主题更新
信息提示
请填处理意见