24小时热门版块排行榜    

查看: 1866  |  回复: 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的回帖

月只蓝

主管区长 (职业作家)

引用回帖:
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的回帖
查看全部 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的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 听说今天filecode变了 +26 布布和一二 2026-08-06 49/2450 2026-08-11 13:18 by WH3796
[基金申请] 我的国基提前知道中了,可是同事的操作让我实在接受不了,怎么会有这样的人 +8 家与远方 2026-08-10 13/650 2026-08-11 09:49 by 家与远方
[基金申请] 小木虫上这么多卖论文的,真有人买论文么?感觉没必要啊 +6 Tide man 2026-08-10 6/300 2026-08-11 09:45 by tangmnt
[基金申请] 基金中了 +15 laoda193707 2026-08-06 15/750 2026-08-11 00:11 by jiafei2190
[基金申请] 确定了,国自然21号放榜 +6 布布和一二 2026-08-10 7/350 2026-08-10 19:15 by 2000zf36392
[基金申请] 关于代码变化问题,想知道的进来 +17 且听虎啸 2026-08-07 24/1200 2026-08-10 18:35 by zhangduo2008
[基金申请] 好奇怪的filecode +4 布布和一二 2026-08-08 5/250 2026-08-10 14:20 by 冰心玉壶晴
[基金申请] 据悉今年马上要出结果了 +7 瞬息宇宙 2026-08-10 8/400 2026-08-10 12:42 by Vivilian
[基金申请] 这样的filecode谁见过 +11 布布和一二 2026-08-08 22/1100 2026-08-10 11:10 by wmfsnow
[基金申请] 面上项目filecode邪修 +5 西山十月 2026-08-09 7/350 2026-08-10 07:32 by 仁砚薪传
[基金申请] filecode与中标关系的预测 +5 布布和一二 2026-08-07 5/250 2026-08-09 16:15 by 袁向阳007
[基金申请] 关于filecode,很负责任的告诉大家 +6 爱看书的可乐 2026-08-08 7/350 2026-08-08 22:13 by a_niu
[基金申请] 关于豆爷回答的JTJC与%2F数量 +5 yang182083 2026-08-06 7/350 2026-08-08 18:29 by zhanghaozhu
[基金申请] 国基金的申报应该改成非等额制,评价高的钱多评价低的钱少,但是增加资助率 +7 a089 2026-08-07 7/350 2026-08-08 18:05 by gltch
[基金申请] 化学口download_prp&fileCode的固定段好像这几天一直没变,有变的大神么? +3 Tide man 2026-08-07 4/200 2026-08-07 22:39 by Tide man
[基金申请] 固定端突然变了,今天 +6 archvillain 2026-08-06 10/500 2026-08-07 16:03 by 医学老男孩
[基金申请] 大家散了吧,后缀研究没有意义,别浪费时间了,过好目前的每一天,不要焦虑 +5 Tide man 2026-08-06 7/350 2026-08-07 13:11 by 医学老男孩
[基金申请] filecode +14 等待解的谜 2026-08-06 19/950 2026-08-07 12:20 by wlwhappy
[基金申请] filecode +8 布布和一二 2026-08-06 11/550 2026-08-06 20:41 by tangpu318
[基金申请] 影响面上的因素 +8 布布和一二 2026-08-05 11/550 2026-08-06 10:41 by 宝贝虫子
信息提示
请填处理意见