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

津津爱睡觉

金虫 (小有名气)

引用回帖:
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
     ...

Variable  x,y ;
Function x=1/(x2*89.005^2)*(ln((y/x1)*((x1-89.005)/(y-89.005)))-89.005*(1/y-1./x1));
Data;
         0   241.2453915
    0.2500   183.3464975
    0.5000   155.1400864
    0.7500    144.0572731
    1.0000   130.1157019
    1.2500   123.8167847
    1.5000   119.6818387
    1.7500   114.7628452
    2.0000   112.2128814
    2.2500   109.1828393
    2.5000   107.8005032
    3.0000   103.5545843
    3.5000   101.0962938
    4.0000   97.44383853
    4.5000   96.25691121
    5.0000   93.11348376
    5.5000   91.75768466
    6.0000   91.33309277
    6.5000   90.457372
月只蓝,帮我看看换个方程怎么做不出来了,是什么样的原因呢?麻烦你啦
有梦一起追
15楼2015-07-20 17:29:16
已阅   回复此楼   关注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的回帖
信息提示
请填处理意见