| 5 | 1/1 | 返回列表 |
| 查看: 2190 | 回復(fù): 4 | |||
anarky新蟲 (初入文壇)
|
[求助]
請(qǐng)教matlab非線性擬合結(jié)果不唯一的問(wèn)題 已有2人參與
|
|
我用matlab擬合一組實(shí)驗(yàn)數(shù)據(jù),函數(shù)是y=a*(b+x)^c+d*(1-f*exp(-g*x)),現(xiàn)在的問(wèn)題是發(fā)現(xiàn)只要改一次初值就會(huì)得到不同的擬合結(jié)果,或者改一下上下限,也會(huì)得到不同的擬合結(jié)果,這么一來(lái),我覺(jué)得就不可能找到最優(yōu)解,雖然上下限可以取得很大,認(rèn)為是無(wú)界,但是初值怎么取?因?yàn)槲也豢赡車L試所有的參數(shù)初值,因?yàn)槲乙獢M合多組實(shí)驗(yàn)數(shù)據(jù),獲得公式中參數(shù)a(1)~a(6)的變化規(guī)律,如果參數(shù)結(jié)果不唯一,我怎么確定哪個(gè)參數(shù)才是最優(yōu)的參數(shù)呢?事實(shí)上,如果從物理意義來(lái)限定參數(shù)取值也可以,但是那樣得到的參數(shù)并不是最優(yōu)解,而最優(yōu)解的參數(shù)又不一定符合物理意義。 我該怎么處理呢?哪位能幫忙看一下,非常感謝! 實(shí)驗(yàn)數(shù)據(jù)和代碼如下: 主程序 clc xdata=load('78028-ta.txt'); %read section1 size1=size(xdata); %section1 行、列數(shù) sizen(1)=size1(1); %section1數(shù)據(jù)量 for i=1:size1; xd(i)=xdata(i,1); yd(i)=xdata(i,2); end set(gca,'Fontsize',15); plot(xd,yd,'ro'); xlabel('True Strain'); ylabel('True Stress/MPa'); hold on lb=[-100000, 0, 0, -10000, -10000, -10000]; ub=[ 100000, 0.02, 1, 10000, 10000, 10000]; a1=1898;a2=0.00002;a3=0.136;a4=542;a5=0.784;a6=62.4; a0=[a1,a2,a3,a4,a5,a6]; options = optimset('TolFun',1e-6,'LargeScale','on','TolCon',1.0e-6,'MaxFunEvals',2.e10,'MaxIter',2000000,'TolX',1e-6); exitflag=0; while (exitflag<=0) %反復(fù)迭代 [a,resnorm,residual,exitflag]=lsqnonlin(@SV,a0,lb,ub,options); %nonlinear fitting, solve coefficient a a0=a; end R2=1-resnorm/sum((yd-mean(yd)).^2); standard=sqrt(resnorm/size(residual,2)); stp=1; out(stp,1)=R2; out(stp,2)=standard; out(stp,3)=a(1); out(stp,4)=a(2); out(stp,5)=a(3); out(stp,6)=a(4); out(stp,7)=a(5); out(stp,8)=a(6); hold on fid=fopen('SV-fit-78028-ta.txt','wt'); for i=1:size1; G(i)=a(1)*(a(2)+xd(i))^a(3)+a(4)*(1-a(5)*exp(-a(6)*xd(i))); fprintf(fid,'%8.6f %10.6f\n',xd(i),G(i)); end fprintf(fid,' R2 standard s1 s2 s3 V1 V2 V3\n'); fprintf(fid,'%10.6f %10.6f %10.6f %10.6f %10.6f %10.6f %10.6f %10.6f\n',out(i,1),out(i,2),out(i,3),out(i,4),out(i,5),out(i,6),out(i,7),out(i,8)); fclose(fid); plot(xd,G,'b','LineWidth',2) hold on legend('EXP','SV'); hold off clear 函數(shù) function F=SV(a) xdata=load('78028-ta.txt'); size1=size(xdata); sizen(1)=size1(1); for i=1:sizen(1); xd(i)=xdata(i,1); yd(i)=xdata(i,2); end for i=1:sizen(1); F(i)=a(1)*(a(2)+xd(i))^a(3)+a(4)*(1-a(5)*exp(-a(6)*xd(i))); F(i)=F(i)-yd(i); end 實(shí)驗(yàn)數(shù)據(jù) 78028-ta.txt 0 223.634 0.0005 261.9 0.001 373.358 0.0015 425.658 0.002 462.61 0.0025 492.699 0.003 513.549 0.0035 524.142 0.004 538.681 0.0045 546.22 0.005 554.575 0.0055 563.233437 0.006 570.27162 0.0065 577.07317 0.007 583.656651 0.0075 590.037892 0.008 596.230537 0.0085 602.246461 0.009 608.09609 0.0095 613.788651 0.01 619.332371 0.0105 624.734633 0.011 630.002102 0.0115 635.14083 0.012 640.156342 0.0125 645.053702 0.013 649.837576 0.0135 654.512279 0.014 659.081814 0.0145 663.549911 0.015 667.920058 0.0155 672.19552 0.016 676.379368 0.0165 680.474496 0.017 684.483635 0.0175 688.409373 0.018 692.254165 0.0185 696.020341 0.019 699.710123 0.0195 703.325629 0.02 706.4514911 0.025 735.7217232 0.03 758.4120509 0.035 778.3482998 0.04 794.7567166 0.045 809.6868333 0.05 822.8422861 0.055 834.8128986 0.06 846.1687589 0.065 856.1567004 0.07 866.0042315 0.075 874.4658077 0.08 882.1951827 0.085 890.0445724 0.09 897.0900675 0.095 903.7413962 0.1 910.0615411 0.105 915.8285085 0.11 921.8803708 0.115 927.2834332 0.12 932.4186891 0.125 937.3558307 0.315 1073.901289 |
Matlab |
鐵桿木蟲 (職業(yè)作家)
新蟲 (正式寫手)
|
Matlab尋優(yōu)過(guò)程得到的是局部最優(yōu)解,如果這個(gè)解能夠滿足實(shí)際需求,就可以使用,不用太過(guò)顧慮全局最優(yōu)解。當(dāng)模型復(fù)雜時(shí),全局最優(yōu)解釋很難得到的。 發(fā)自小木蟲Android客戶端 |
新蟲 (初入文壇)

| 5 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 279求調(diào)劑 +3 | 紅衣隱官 2026-03-21 | 3/150 |
|
|---|---|---|---|---|
|
[考研] 一志愿天津大學(xué)化學(xué)工藝專業(yè)(081702)315分求調(diào)劑 +12 | yangfz 2026-03-17 | 12/600 |
|
|
[考研] 求調(diào)劑 +3 | Ma_xt 2026-03-17 | 3/150 |
|
|
[考研] 280求調(diào)劑 +7 | 咕嚕曉曉 2026-03-18 | 8/400 |
|
|
[考研] 【考研調(diào)劑】化學(xué)專業(yè) 281分,一志愿四川大學(xué),誠(chéng)心求調(diào)劑 +8 | 吃吃吃才有意義 2026-03-19 | 8/400 |
|
|
[考研] 317求調(diào)劑 +8 | 申子申申 2026-03-19 | 13/650 |
|
|
[考研] 296求調(diào)劑 +6 | www_q 2026-03-18 | 10/500 |
|
|
[考研] 南京大學(xué)化學(xué)376求調(diào)劑 +3 | hisfailed 2026-03-19 | 6/300 |
|
|
[考研] 295求調(diào)劑 +4 | 一志愿京區(qū)211 2026-03-18 | 6/300 |
|
|
[考研] 一志愿中海洋材料工程專碩330分求調(diào)劑 +8 | 小材化本科 2026-03-18 | 8/400 |
|
|
[考研] 288求調(diào)劑 +16 | 于海海海海 2026-03-19 | 16/800 |
|
|
[考研] 中南大學(xué)化學(xué)學(xué)碩337求調(diào)劑 +3 | niko- 2026-03-19 | 6/300 |
|
|
[考研] 材料學(xué)碩297已過(guò)四六級(jí)求調(diào)劑推薦 +11 | adaie 2026-03-19 | 11/550 |
|
|
[考研] 319求調(diào)劑 +3 | 小力氣珂珂 2026-03-20 | 3/150 |
|
|
[考研] 298-一志愿中國(guó)農(nóng)業(yè)大學(xué)-求調(diào)劑 +9 | 手機(jī)用戶 2026-03-17 | 9/450 |
|
|
[考研] 一志愿中國(guó)海洋大學(xué),生物學(xué),301分,求調(diào)劑 +5 | 1孫悟空 2026-03-17 | 6/300 |
|
|
[考研] 材料考研調(diào)劑 +3 | xwt。 2026-03-19 | 3/150 |
|
|
[考研] 【同濟(jì)軟件】軟件(085405)考研求調(diào)劑 +3 | 2026eternal 2026-03-18 | 3/150 |
|
|
[考研] 293求調(diào)劑 +11 | zjl的號(hào) 2026-03-16 | 16/800 |
|
|
[考研] 277調(diào)劑 +5 | 自由煎餅果子 2026-03-16 | 6/300 |
|