| 5 | 1/1 | 返回列表 |
| 查看: 2192 | 回復(fù): 4 | |||
| 當(dāng)前只顯示滿足指定條件的回帖,點(diǎn)擊這里查看本話題的所有回帖 | |||
anarky新蟲 (初入文壇)
|
[求助]
請教matlab非線性擬合結(jié)果不唯一的問題 已有2人參與
|
||
|
我用matlab擬合一組實(shí)驗(yàn)數(shù)據(jù),函數(shù)是y=a*(b+x)^c+d*(1-f*exp(-g*x)),現(xiàn)在的問題是發(fā)現(xiàn)只要改一次初值就會得到不同的擬合結(jié)果,或者改一下上下限,也會得到不同的擬合結(jié)果,這么一來,我覺得就不可能找到最優(yōu)解,雖然上下限可以取得很大,認(rèn)為是無界,但是初值怎么?因?yàn)槲也豢赡車L試所有的參數(shù)初值,因?yàn)槲乙獢M合多組實(shí)驗(yàn)數(shù)據(jù),獲得公式中參數(shù)a(1)~a(6)的變化規(guī)律,如果參數(shù)結(jié)果不唯一,我怎么確定哪個參數(shù)才是最優(yōu)的參數(shù)呢?事實(shí)上,如果從物理意義來限定參數(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)過程得到的是局部最優(yōu)解,如果這個解能夠滿足實(shí)際需求,就可以使用,不用太過顧慮全局最優(yōu)解。當(dāng)模型復(fù)雜時,全局最優(yōu)解釋很難得到的。 發(fā)自小木蟲Android客戶端 |
新蟲 (初入文壇)
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 279求調(diào)劑 +5 | 紅衣隱官 2026-03-21 | 5/250 |
|
|---|---|---|---|---|
|
[考研] 求調(diào)劑 +3 | 白QF 2026-03-21 | 3/150 |
|
|
[考研] 299求調(diào)劑 +4 | shxchem 2026-03-20 | 6/300 |
|
|
[考研] 求調(diào)劑 +6 | Mqqqqqq 2026-03-19 | 6/300 |
|
|
[考研] 313求調(diào)劑 +3 | 肆叁貳壹22 2026-03-19 | 3/150 |
|
|
[考研] 307求調(diào)劑 +3 | wyyyqx 2026-03-17 | 3/150 |
|
|
[考研] 303求調(diào)劑 +5 | 睿08 2026-03-17 | 7/350 |
|
|
[考研] 332求調(diào)劑 +4 | ydfyh 2026-03-17 | 4/200 |
|
|
[考研] 311求調(diào)劑 +5 | 冬十三 2026-03-18 | 5/250 |
|
|
[考研] 317求調(diào)劑 +8 | 申子申申 2026-03-19 | 13/650 |
|
|
[考研] 南京大學(xué)化學(xué)376求調(diào)劑 +3 | hisfailed 2026-03-19 | 6/300 |
|
|
[考研] 一志愿中南化學(xué)(0703)總分337求調(diào)劑 +8 | niko- 2026-03-19 | 9/450 |
|
|
[考研] 290求調(diào)劑 +7 | ^O^乜 2026-03-19 | 7/350 |
|
|
[考研] 本人考085602 化學(xué)工程 專碩 +19 | 不知道叫什么! 2026-03-15 | 21/1050 |
|
|
[考研]
|
簡木ChuFront 2026-03-19 | 8/400 |
|
|
[考研] 生物學(xué)調(diào)劑招人。! +3 | 山海天嵐 2026-03-17 | 4/200 |
|
|
[考研] 293求調(diào)劑 +11 | zjl的號 2026-03-16 | 16/800 |
|
|
[考研] 301求調(diào)劑 +4 | A_JiXing 2026-03-16 | 4/200 |
|
|
[考研] 326求調(diào)劑 +5 | 上岸的小葡 2026-03-15 | 6/300 |
|
|
[論文投稿] 有沒有大佬發(fā)小論文能帶我個二作 +3 | 增銳漏人 2026-03-17 | 4/200 |
|