|
|
[求助]
matlab曲线拟合过端点求拟合函数,新手求 指导
本人新手,做论文急需拟合下面两组数据的函数,偶函数,函数为要求过tdata的两个端点,即A [23.8188 0]和B [0 -15.654]两点,且在A点一阶导数为正无穷,即垂直于x轴;B点一阶导数为0,即垂直于y轴;
![matlab曲线拟合过端点求拟合函数,新手求 指导]()
下面我是做的非线性拟合,不知道怎么做才过端点且满足端点的导数??恳求帮助指导
函数文件curvefun1.m
unction f=curvefun1(x,tdata)
% f=x(1)+x(2)*exp(-0.02*x(3)*tdata).^2+x(4)*tdata.^2
f=x(1)+x(2)*exp(x(3)*tdata.^2)+x(4)*exp(x(5)*tdata.^2)+x(6)*tdata.^2%f=A+BEXP(C*X^2)+D*EXP(E*X^2)+F*x^2
下面是计算数据[tdata y]
%%按照直角坐标拟合
tdata=[23.8188
23.8342
23.7987
23.7929
23.8527
23.7062
23.6544
23.5103
23.2279
23.0524
23.0524
22.4726
22.3073
21.9304
21.621
21.1967
20.9019
20.6114
20.2232
19.7369
19.3375
19.1869
18.6443
17.8836
17.2772
17.1087
16.5737
16.0344
15.7027
15.0864
14.7988
14.5615
14.0628
13.4977
13.3248
12.8461
12.393
12.1607
11.9807
11.5081
11.2076
10.9033
10.822
10.2442
9.6234
9.5353
8.9276
8.2954
8.155
7.4794
7.0256
6.6483
6.3191
5.6674
4.9366
4.9366
4.7496
4.1897
3.7401
3.3996
3.1933
2.9862
2.4351
2.1442
1.3893
1.374
0.6974
0.1026
0
];
y=[0
-0.3221
-1.1519
-2.0705
-3.0347
-3.2926
-3.9812
-4.8063
-6.0083
-6.6225
-6.6225
-8.043
-8.3916
-8.9705
-9.5804
-10.1079
-10.538
-10.8858
-11.3962
-11.8158
-12.3589
-12.4146
-13.0249
-13.685
-14.1091
-14.155
-14.4614
-14.8013
-14.9063
-15.2473
-15.2502
-15.4975
-15.7695
-15.9686
-15.9417
-16.0339
-16.1741
-16.1872
-16.2183
-16.2189
-16.275
-16.2563
-16.2056
-16.2188
-16.1824
-16.2529
-16.2532
-16.2354
-16.1712
-16.2036
-16.2777
-16.2136
-16.1762
-16.1061
-16.0701
-16.0701
-16.1101
-16.079
-15.9136
-15.9923
-15.9638
-15.9691
-15.9098
-15.8816
-15.8233
-15.9487
-15.8259
-15.7887
-15.654
];
x0=[0.2,0,0,0.0005,0.005,-1];
x=lsqcurvefit(\'curvefun1\',x0,tdata,y)
f=curvefun1(x,tdata);
m=f-y0
plot(tdata,y,\'o\',tdata,f,\'r\'); |
|