matlab 多項式擬合EXCEL中複雜數據

 

有如下原始數據x,y,它對應的曲線圖形爲:

-9552

-2036.81

-9328

-2025.62

-9168

-2014.43

-9024

-2003.25

-8928

-1992.06

-8800

-1980.87

-8688

-1969.68

-8592

-1958.49

-8496

-1947.3

-8416

-1936.11

-8336

-1924.93

-8240

-1913.74

-8112

-1902.55

-8016

-1891.36

-7920

-1880.17

-7824

-1868.98

-7744

-1857.8

-7648

-1846.61

-7552

-1835.42

-7472

-1824.23

-7392

-1813.04

-7328

-1801.85

-7248

-1790.66

-7136

-1779.48

-7072

-1768.29

-7008

-1757.1

-6944

-1745.91

-6896

-1734.72

-6848

-1723.53

-6752

-1712.34

-6688

-1701.16

-6592

-1689.97

-6512

-1678.78

-6400

-1667.59

-6288

-1656.4

-6192

-1645.21

-6096

-1634.02

-6016

-1622.84

-5920

-1611.65

-5840

-1600.46

-5744

-1589.27

-5664

-1578.08

-5568

-1566.89

-5504

-1555.7

-5440

-1544.52

-5360

-1533.33

-5280

-1522.14

-5168

-1510.95

-5088

-1499.76

-5024

-1488.57

-4960

-1477.39

-4896

-1466.2

-4848

-1455.01

-4800

-1443.82

-4720

-1432.63

-4656

-1421.44

-4592

-1410.25

-4512

-1399.07

-4448

-1387.88

-4400

-1376.69

-4336

-1365.5

-4304

-1354.31

-4272

-1343.12

-4208

-1331.93

-4144

-1320.75

-4096

-1309.56

-4048

-1298.37

-3984

-1287.18

-3952

-1275.99

-3888

-1264.8

-3824

-1253.61

-3776

-1242.43

-3712

-1231.24

-3680

-1220.05

-3632

-1208.86

-3584

-1197.67

-3504

-1186.48

-3456

-1175.3

-3408

-1164.11

-3360

-1152.92

-3328

-1141.73

-3296

-1130.54

-3264

-1119.35

-3200

-1108.16

-3152

-1096.98

-3120

-1085.79

-3072

-1074.6

-3024

-1063.41

-2992

-1052.22

-2928

-1041.03

-2880

-1029.84

-2832

-1018.66

-2816

-1007.47

-2768

-996.279

-2720

-985.09

-2688

-973.902

-2656

-962.713

-2624

-951.525

-2576

-940.336

-2544

-929.148

-2512

-917.959

-2480

-906.77

-2432

-895.582

-2416

-884.393

-2368

-873.205

-2336

-862.016

-2320

-850.828

-2272

-839.639

-2224

-828.451

-2192

-817.262

-2160

-806.074

-2144

-794.885

-2112

-783.697

-2080

-772.508

-2032

-761.32

-2000

-750.131

-1984

-738.943

-1952

-727.754

-1936

-716.566

-1904

-705.377

-1888

-694.189

-1856

-683

-1824

-671.811

-1792

-660.623

-1760

-649.434

-1744

-638.246

-1712

-627.057

-1696

-615.869

-1680

-604.68

-1648

-593.492

-1616

-582.303

-1584

-571.115

-1568

-559.926

-1552

-548.738

-1536

-537.549

-1504

-526.361

-1488

-515.172

-1472

-503.984

-1456

-492.795

-1440

-481.607

-1408

-470.418

-1392

-459.23

-1376

-448.041

-1344

-436.852

-1312

-425.664

-1296

-414.475

-1296

-403.287

-1248

-392.098

-1232

-380.91

-1216

-369.721

-1216

-358.533

-1184

-347.344

-1168

-336.156

-1136

-324.967

-1120

-313.779

-1104

-302.59

-1088

-291.402

-1072

-280.213

-1040

-269.025

-1024

-257.836

-1008

-246.648

-992

-235.459

-976

-224.27

-944

-213.082

-944

-201.893

-912

-190.705

-896

-179.516

-880

-168.328

-880

-157.139

-848

-145.951

-848

-134.762

-832

-123.574

-800

-112.385

-768

-101.197

-752

-90.0082

-752

-78.8197

-736

-67.6311

-704

-56.4426

-688

-45.2541

-656

-34.0656

-656

-22.877

-624

-11.6885

-608

-0.5

-608

10.68852

-576

21.87705

-560

33.06557

-544

44.2541

-528

55.44262

-528

66.63115

-496

77.81967

-464

89.0082

-448

100.1967

-432

111.3852

-416

122.5738

-400

133.7623

-384

144.9508

-352

156.1393

-336

167.3279

-320

178.5164

-304

189.7049

-272

200.8934

-256

212.082

-240

223.2705

-208

234.459

-208

245.6475

-192

256.8361

-160

268.0246

-128

279.2131

-112

290.4016

-96

301.5902

-80

312.7787

-48

323.9672

-32

335.1557

0

346.3443

32

357.5328

48

368.7213

80

379.9098

112

391.0984

128

402.2869

144

413.4754

176

424.6639

192

435.8525

208

447.041

240

458.2295

272

469.418

288

480.6066

320

491.7951

336

502.9836

368

514.1721

400

525.3607

416

536.5492

448

547.7377

480

558.9262

512

570.1148

544

581.3033

576

592.4918

608

603.6803

640

614.8689

656

626.0574

688

637.2459

720

648.4344

752

659.623

784

670.8115

816

682

848

693.1885

880

704.377

912

715.5656

944

726.7541

976

737.9426

1008

749.1311

1056

760.3197

1088

771.5082

1104

782.6967

1152

793.8852

1184

805.0738

1216

816.2623

1248

827.4508

1280

838.6393

1312

849.8279

1344

861.0164

1392

872.2049

1424

883.3934

1472

894.582

1504

905.7705

1552

916.959

1584

928.1475

1632

939.3361

1680

950.5246

1728

961.7131

1776

972.9016

1824

984.0902

1856

995.2787

1904

1006.467

1952

1017.656

2000

1028.844

2048

1040.033

2096

1051.221

2128

1062.41

2176

1073.598

2224

1084.787

2288

1095.975

2320

1107.164

2384

1118.352

2432

1129.541

2480

1140.73

2544

1151.918

2576

1163.107

2640

1174.295

2704

1185.484

2752

1196.672

2800

1207.861

2864

1219.049

2912

1230.238

2960

1241.426

3008

1252.615

3072

1263.803

3136

1274.992

3200

1286.18

3264

1297.369

3328

1308.557

3392

1319.746

3440

1330.934

3520

1342.123

3584

1353.311

3648

1364.5

3712

1375.689

3776

1386.877

3856

1398.066

3920

1409.254

3984

1420.443

4032

1431.631

4128

1442.82

4192

1454.008

4272

1465.197

4320

1476.385

4400

1487.574

4464

1498.762

4544

1509.951

4608

1521.139

4704

1532.328

4752

1543.516

4832

1554.705

4896

1565.893

4960

1577.082

5040

1588.27

5120

1599.459

5184

1610.648

5264

1621.836

5328

1633.025

5392

1644.213

5472

1655.402

5520

1666.59

5616

1677.779

5696

1688.967

5776

1700.156

5840

1711.344

5904

1722.533

6000

1733.721

6064

1744.91

6144

1756.098

6208

1767.287

6272

1778.475

6352

1789.664

6400

1800.852

6480

1812.041

6528

1823.23

6592

1834.418

6672

1845.607

6736

1856.795

6800

1867.984

6864

1879.172

6928

1890.361

6992

1901.549

7040

1912.738

7104

1923.926

7152

1935.115

7184

1946.303

7248

1957.492

7280

1968.68

7328

1979.869

7376

1991.057

7408

2002.246

7456

2013.434

7488

2024.623

7536

2035.811

7568

2047

 

 

如果想得到該曲線的函數表達式(多項式擬合的表達式),在Excel 自帶圖表工具中可以能過爲曲線加趨勢線方式實現:

選擇多項式,調整階數讓擬合後在結果與原始曲線儘量重合,並勾選顯示公式:

EXCEL趨勢曲線多項式最高的階數是6階,但是實際效果與原始數據相差還是較大,看到是我們數據太複雜,EXCEL也無能爲力了,這時也只能請出強大的matlab來解決,把上述原始數據保存於EXCEL中,並強excel文件(.xls/xlsx)保存於matlab工作目錄下,然後運行如下代碼(可以把下面代碼保存爲.m文件,然後運行):

 

% 清屏,清除變量

clear,clc,close all

 

% 從excel中得到數據

x = xlsread('test.xlsx');

 

% 數據轉置

x = x';

 

% 畫出原始數據

plot(x(1,:),x(2,:),'r');

 

% 多項式擬合,如果擬合效果不好,可以得高多項式的階數,也就是下面最後一個參數,多項式越高,計算量就越大,

% P是多項式的表達式

[p,s]=polyfit(x(1,:),x(2,:),15); % 15是多項式階數

 

% 用上面擬合出的多項式計算對應的結果及與原始數據的偏差

[y_fit,DELTA]=polyval(p,x(1,:),s);

 

 

% 畫出擬合後的結果

hold on

plot(x(1,:),y_fit,'b');

 

% 給曲線加標註

legend('原始曲線','擬合後曲線');

 

% 顯示多項式各階係數

p

 

 

4階多項式擬合效果:

6階多項式擬合效果:

 

10階多項式擬合效果:

 

15階多項式擬合效果:

20階多項式擬合效果:

 

微信關注圖中張十三的博客公衆號,學習更多技術乾貨:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章