056.md 161.3 KB
Newer Older
W
wizardforcel 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536
# 曲线拟合

导入基础包:

In [1]:

```
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt

```

## 多项式拟合

导入线多项式拟合工具:

In [2]:

```
from numpy import polyfit, poly1d

```

产生数据:

In [3]:

```
x = np.linspace(-5, 5, 100)
y = 4 * x + 1.5
noise_y = y + np.random.randn(y.shape[-1]) * 2.5

```

画出数据:

In [4]:

```
%matplotlib inline

p = plt.plot(x, noise_y, 'rx')
p = plt.plot(x, y, 'b:')

```

![](data:image/png;base64,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
/wEcY+GYZJlNlgAAAABJRU5ErkJggg==
)

进行线性拟合,`polyfit` 是多项式拟合函数,线性拟合即一阶多项式:

In [5]:

```
coeff = polyfit(x, noise_y, 1)
print coeff

```

```
[ 3.93921315  1.59379469]

```

一阶多项式 $y = a_1 x + a_0$ 拟合,返回两个系数 $[a_1, a_0]$。

画出拟合曲线:

In [6]:

```
p = plt.plot(x, noise_y, 'rx')
p = plt.plot(x, coeff[0] * x + coeff[1], 'k-')
p = plt.plot(x, y, 'b--')

```

![](data:image/png;base64,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
rkJggg==
)

还可以用 `poly1d` 生成一个以传入的 `coeff` 为参数的多项式函数:

In [7]:

```
f = poly1d(coeff)
p = plt.plot(x, noise_y, 'rx')
p = plt.plot(x, f(x))

```

![](data:image/png;base64,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
)In [8]:

```
f

```

Out[8]:

```
poly1d([ 3.93921315,  1.59379469])
```

显示 `f`

In [9]:

```
print f

```

```

3.939 x + 1.594

```

还可以对它进行数学操作生成新的多项式:

In [10]:

```
print f + 2 * f ** 2

```

```
       2
31.03 x + 29.05 x + 6.674

```

## 多项式拟合正弦函数

正弦函数:

In [11]:

```
x = np.linspace(-np.pi,np.pi,100)
y = np.sin(x)

```

用一阶到九阶多项式拟合,类似泰勒展开:

In [12]:

```
y1 = poly1d(polyfit(x,y,1))
y3 = poly1d(polyfit(x,y,3))
y5 = poly1d(polyfit(x,y,5))
y7 = poly1d(polyfit(x,y,7))
y9 = poly1d(polyfit(x,y,9))

```

In [13]:

```
x = np.linspace(-3 * np.pi,3 * np.pi,100)

p = plt.plot(x, np.sin(x), 'k')
p = plt.plot(x, y1(x))
p = plt.plot(x, y3(x))
p = plt.plot(x, y5(x))
p = plt.plot(x, y7(x))
p = plt.plot(x, y9(x))

a = plt.axis([-3 * np.pi, 3 * np.pi, -1.25, 1.25])

```

![](data:image/png;base64,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
/344fVo+rLR8uVzzXeE2jedjb12ZwXtPC6Z+hdsa94yMDA4dOoTJZBrrrdjMvn37FDPunuy5AzTF
1qCrd80fkvP55S/lWlYbNtg2vqytjPnFqfT5WZi/XJ3Tlu7M+emQy6fFUx8jceCTI/ILPj5yzvvn
n8vF713QdNpeWUbJe2+84LbGPTg4mKSkJI4ePTrWW7EJs9lMfn4+S5YsUWQ+VTR3F3ruxtldhDRF
y8fTXci2bfDpp3JOu63sPL2TtNqLqYubeHo7XCjL+On1lKX0cWBr+VeDUlJkicZF2Jsto+RT83jB
bY07eFZQ9dixY8TGxhKuUN7vQKvCskx/v9z8ODRUuTlHYOaGScTU+tN5otQl6wF0dMD3vgcvvWTf
/+bO8p2ENUyhP7FTvc25MUOzZQbpnGam+8jYPTXbky0zMDBAQUHBhG+IfT6acVcIpT0HU4vCskxT
k1zn1kXV8hZPn0tT5ABZr2a5ZD2An/5UPjVvb/r1zvKdhDdEE7MsRJ2NuTlDi4cNErHYQGRFwJjs
xzJgwdRqwifaNuN+5MgRkpOTCQmZmL8/a7i1cV+yZInHBFUVN+5KyzIulGQApoZPpTqhgaqDrmmW
vWmT3Dfij3+077qK9goCG81E1/mx9vur1dmcmxMbFEttV+05hwZXrp9BXLM/3S3dLt/PQMMA3pHe
SHrbgqOaJDM8bm3c58+fT1FRET09PWO9lVFR8gNmNpoRFoHOX8FfjwuDqQDBvsGcji1GNKpzPH0o
ra1wxx1yyzyDwb5rd5XvYl3VFTTE9BEV6xrJyt0I8gnCS+dFe1/72dcuio/k9GTY//ZBl+/H0UwZ
jXNxa+Pu5+fH3Llz3b55R1dXF6WlpcyfP1+R+QYzZRRN63LRAaahVMwqI6w+Uu5rpyI//jF87Wuw
2gHHe+fpncRUzaIldmIGUwc5Px3ST6+nNLWfI5+7vvS2FkxVBrc27gDLly9n7969Y72NEcnLyyMt
LQ0fH2UaKntaez1rhGVIhLR5U/qfbNXW+Ogj2LNHbp3nCDvLdxLUmIiU4hr5yF2JM5ybDglgnA3i
mOtNRH9NPz7xtt1L7e3tVFRUMG/ePJV35Xm4vXFftmwZe/a4T/nY4VDacxhoHfCoxtjWmBmTSmVy
F3veUSedtakJ7roLXn0VAgPtv76yvZKOnlYia8OYsWFitNWzxnAZM8mXxpBYGezyAn7GEiP+U/1t
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
)

黑色为原始的图形,可以看到,随着多项式拟合的阶数的增加,曲线与拟合数据的吻合程度在逐渐增大。

## 最小二乘拟合

导入相关的模块:

In [14]:

```
from scipy.linalg import lstsq
from scipy.stats import linregress

```

In [15]:

```
x = np.linspace(0,5,100)
y = 0.5 * x + np.random.randn(x.shape[-1]) * 0.35

plt.plot(x,y,'x')

```

Out[15]:

```
[<matplotlib.lines.Line2D at 0xbc98518>]
```

![](data:image/png;base64,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
AAAASUVORK5CYII=
)

一般来书,当我们使用一个 N-1 阶的多项式拟合这 M 个点时,有这样的关系存在:

$$XC = Y$$



$$\left[ \begin{matrix} x_0^{N-1} & \dots & x_0 & 1 \\\ x_1^{N-1} & \dots & x_1 & 1 \\\ \dots & \dots & \dots & \dots \\\ x_M^{N-1} & \dots & x_M & 1 \end{matrix}\right] \left[ \begin{matrix} C_{N-1} \\\ \dots \\\ C_1 \\\ C_0 \end{matrix} \right] = \left[ \begin{matrix} y_0 \\\ y_1 \\\ \dots \\\ y_M \end{matrix} \right]$$

### Scipy.linalg.lstsq 最小二乘解

要得到 `C` ,可以使用 `scipy.linalg.lstsq` 求最小二乘解。

这里,我们使用 1 阶多项式即 `N = 2`,先将 `x` 扩展成 `X`

In [16]:

```
X = np.hstack((x[:,np.newaxis], np.ones((x.shape[-1],1))))
X[1:5]

```

Out[16]:

```
array([[ 0.05050505,  1\.        ],
       [ 0.1010101 ,  1\.        ],
       [ 0.15151515,  1\.        ],
       [ 0.2020202 ,  1\.        ]])
```

求解:

In [17]:

```
C, resid, rank, s = lstsq(X, y)
C, resid, rank, s

```

Out[17]:

```
(array([ 0.50432002,  0.0415695 ]),
 12.182942535066523,
 2,
 array([ 30.23732043,   4.82146667]))
```

画图:

In [18]:

```
p = plt.plot(x, y, 'rx')
p = plt.plot(x, C[0] * x + C[1], 'k--')
print "sum squared residual = {:.3f}".format(resid)
print "rank of the X matrix = {}".format(rank)
print "singular values of X = {}".format(s)

```

```
sum squared residual = 12.183
rank of the X matrix = 2
singular values of X = [ 30.23732043   4.82146667]

```

![](data:image/png;base64,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
TkSuQmCC
)

### Scipy.stats.linregress 线性回归

对于上面的问题,还可以使用线性回归进行求解:

In [19]:

```
slope, intercept, r_value, p_value, stderr = linregress(x, y)
slope, intercept

```

Out[19]:

```
(0.50432001884393252, 0.041569499438028901)
```

In [20]:

```
p = plt.plot(x, y, 'rx')
p = plt.plot(x, slope * x + intercept, 'k--')
print "R-value = {:.3f}".format(r_value)
print "p-value (probability there is no correlation) = {:.3e}".format(p_value)
print "Root mean squared error of the fit = {:.3f}".format(np.sqrt(stderr))

```

```
R-value = 0.903
p-value (probability there is no correlation) = 8.225e-38
Root mean squared error of the fit = 0.156

```

![](data:image/png;base64,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
)

可以看到,两者求解的结果是一致的,但是出发的角度是不同的。

## 更高级的拟合

In [21]:

```
from scipy.optimize import leastsq

```

先定义这个非线性函数:$y = a e^{-b sin( f x + \phi)}$

In [22]:

```
def function(x, a , b, f, phi):
    """a function of x with four parameters"""
    result = a * np.exp(-b * np.sin(f * x + phi))
    return result

```

画出原始曲线:

In [23]:

```
x = np.linspace(0, 2 * np.pi, 50)
actual_parameters = [3, 2, 1.25, np.pi / 4]
y = function(x, *actual_parameters)
p = plt.plot(x,y)

```

![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAW4AAAEACAYAAACTXJylAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz
AAALEgAACxIB0t1+/AAAHTBJREFUeJzt3XmUlNWd//H3l2aTRRCDiEYDCi5RkEVZ5AcUAkLUGB0C
ahYTzagz43YSzcTEOZGZzBxjMs7kzBATJ2DGLYr7Oi6INKAgKrIvggsKEVqUtUGxgfv741bZ0DTd
VdX11H2eqs/rnDpd3VVd9T3d1Z+6/X3uvY855xARkeRoFroAERHJjYJbRCRhFNwiIgmj4BYRSRgF
t4hIwii4RUQSpsHgNrNjzGyGmS0zs6Vmdl366xPNbJ2ZLUhfxhanXBERsYbmcZvZkcCRzrmFZtYO
mA9cAEwAtjvn/qM4ZYqISEbzhm50zm0ANqSvV5vZCuDo9M0WcW0iIlKPrHvcZtYN6Au8lv7StWa2
yMymmFnHCGoTEZF6ZBXc6TbJI8D1zrlq4A9Ad6APsB64PbIKRURkPw32uAHMrAXwDPCcc+539dze
DXjaOderzte1CYqISB6ccw22ohubVWLAFGD5vqFtZl33uduFwJKDPHliL7fcckvwGlR/+DpUf/Iu
Sa7duezGuw0enASGAN8DFpvZgvTXfgFcYmZ9AAe8D1yV1bOJiEiTNTar5BXqH5U/F005IiLSGK2c
PIhUKhW6hCZR/WGp/nCSXHu2Gj04mfcDm7moHltEpFSZGa4pBydFRCR+FNwiIgmj4BYRSRgFt4hI
wii4RUQSRsEtIpIwCm4RkYRRcIuIJIyCW0QkYRTcIiIJo+AWEUkYBbeISMIouEVEEkbBLSKSMApu
EZGEUXCLiCSMgltEJGEU3CIiCaPgFhFJmAbP8i4SB3PnwgcfHPj1igo491xo06b4NYmEpJMFS6wt
WgSjRsHIkQfe9u67MHAgTJpU/LpEopLNyYIV3BJbe/bAkCFwxRXwox8dePumTXDKKfDEEz7ARUqB
zvIuiXbnndCyJVx2Wf23d+oEt98OV14JNTXFrU0kJI24JZY++ghOOw1mzoSvf/3g93MOxoyBs8+G
G28sXn0iUVGrRBJr/Hg46ST41a8av2+m1/3mm9CtW+SliURKrRJJpGeegYUL4eabs7v/8cfDDTfA
1Vf7EbhIqVNwS6zs2AHXXAN//CO0bp39991wg58y+Mgj0dUmEhdqlUis/PSnUFUF99yT+/e++ipM
mADLl0OHDoWvTaQY1OOWRFm40B9oXLoUOnfO7zGuusovzLnjjsLWJlIsCm5JDOdg0CD4u787+PS/
bGzeXDu3e8CAwtUnUiw6OCmJ8cYbPnR/+MOmPc5hh/l2yx/+UJCyRGJJwS2xMHUqXHwxWIPjjOxM
mABPPgm7djX9sUTiSMEtwe3dWxvchXD00dCrF7zwQmEeTyRuFNwS3Jw5vsXR0ArJXF18sX8zEClF
DQa3mR1jZjPMbJmZLTWz69Jf72Rm08xslZm9aGYdi1OulKIHHyzcaDtj3Dh49lnYubOwjysSB42N
uGuAHzvnTgEGAVeb2cnATcA059wJwPT05yI5273bL5q56KLCPu4RR/hZJf/3f4V9XJE4aDC4nXMb
nHML09ergRXA0cD5wN3pu90NXBBlkVK6Zs6Er34VevQo/GNfdJEfzYuUmqx73GbWDegLzAO6OOeq
0jdVAV0KXpmUhalTCz/azrjwQpg2DbZvj+bxRULJ6tRlZtYOeBS43jm33faZs+Wcc2ZW70qbiRMn
fnk9lUqRSqWaUquUmJoaeOwxmD8/msfv1AmGDoWnnoLvfjea5xBpqsrKSiorK3P6nkZXTppZC+AZ
4Dnn3O/SX1sJpJxzG8ysKzDDOXdSne/Tyklp0HPP+W1b58yJ7jnuu8+P6p9+OrrnECmkJq+cND+0
ngIsz4R22lPAD9LXfwA80ZRCpTxFMZukrvPPh1mz/KpMkVLR4IjbzP4fMAtYDGTu+HPgdeAh4Fhg
DTDBObelzvdqxC0H9fnn0LUrLFsGRx0V7XONG+fPBn/55dE+j0ghZDPibrDH7Zx7hYOPykflW5jI
889Dnz7Rhzb4Uf3kyQpuKR1aOSlBRDmbpK5zz4V582DjxuI8n0jUFNxSdDt2+AOT48YV5/natIFz
zoFHHy3O84lETcEtRffss/7kvvmeLCEfWowjpUTBLUVXjNkkdY0dC4sXw0cfFfd5RaKg4Jai2r4d
pk+HC4q8SUKrVn5q4MMPF/d5RaKg4JaimjEDzjjDb+NabN/6lu+tiySdgluKavp0GBVoImkq5Vdp
6sw4knQKbimql14KF9yHHQYnnQSvvRbm+UUKRcEtRbN+vb/07RuuhpEj/ahfJMkU3FI006fDiBFQ
URGuhlGj/KhfJMkU3FI006f7EW9IZ54JS5bAtm1h6xBpCgW3FIVzYfvbGYcc4hf/zJwZtg6RplBw
S1GsXu0/9uwZtg5Qn1uST8EtRZEZbVuDm1UWh/rcknQKbimKOLRJMvr180vfN2wIXYlIfhTcErk9
e6CyEs46K3QlXkWFX4yjdokklYJbIvfWW/6ECV27hq6klvrckmQKbolcHKYB1pXpc+vsepJECm6J
XJz62xknnAB798I774SuRCR3Cm6J1Gef+dOGDR8eupL9mWl2iSSXglsiNWcO9OoFhx4aupIDqc8t
SaXglkjFsb+dMXKk3x98z57QlYjkRsEtkYpjfzvjqKOgSxdYuDB0JSK5UXBLZDZvhpUrYdCg0JUc
nPrckkQKbolMZaXfja9Vq9CVHJz63JJECm6JzEsvxbe/nZFKwdy58PnnoSsRyZ6CWyIT8vyS2erQ
AU45xYe3SFIouCUS69bBJ5/AaaeFrqRx6nNL0ii4JRKVlb4N0SwBr7CzzvLTAkWSIgF/VpJEs2bF
b7XkwQwaBIsXw86doSsRyY6CWyIxaxYMGxa6iuy0aQO9e/ul+SJJoOCWgquq8pdTTw1dSfaGDvVv
NiJJoOCWgps9G4YM8ScsSIphwxTckhwKbim42bOT0ybJGDIEXn8dvvgidCUijVNwS8Elqb+d0bEj
9Ojhz9YjEneNBreZ3WVmVWa2ZJ+vTTSzdWa2IH0ZG22ZkhRbtviTE/TrF7qS3KldIkmRzYj7z0Dd
YHbAfzjn+qYvzxe+NEmiV1+FgQOhZcvQleROwS1J0WhwO+dmA5vruckKX44kXRLbJBlDh/o3Hu3P
LXHXlB73tWa2yMymmFnHglUkiTZrlg/AJDriCL8/95Iljd9XJKR8g/sPQHegD7AeuL1gFUli7dzp
Q2/gwNCV5E/tEkmC5vl8k3Pu48x1M5sMPF3f/SZOnPjl9VQqRSqVyufpJCFee81vKtWmTehK8jds
GDzxBFx3XehKpFxUVlZSWVmZ0/eYc67xO5l1A552zvVKf97VObc+ff3HwBnOue/U+R6XzWNL6Zg4
EXbtgltvDV1J/j78EE4/3a/8NB3FkQDMDOdcg6++bKYDPgDMAU40s7Vmdjlwm5ktNrNFwHDgxwWp
WBItyQcmM4491v/HsGpV6EpEDi6rEXdeD6wRd1n54gs4/HC/D3eHDqGraZpLL/UHWK+4InQlUo4K
MuIWycb8+dCzZ/JDG7ThlMSfglsKohTaJBmaWSJxp+CWgiil4D7hBH/y4A8+CF2JSP0U3NJke/b4
FYdJXXhTl5lG3RJvCm5pssWL4aijoHPn0JUUjoJb4kzBLU1WSm2SjGHD/L7iInGk4JYmmz27dNok
GaeeWnsKNpG4UXBLkzhXmiPuigp/VhyNuiWOFNzSJG+/DW3bwjHHhK6k8NTnlrhScEuTJHkb18YM
GwYzZ4auQuRACm5pkspKKNVNH/v3h/ffh02bQlcisj8Ft+TNOT8iLdXgbtECBg9Wn1viR8EteXvn
HWjWDLp3D11JdIYP9/9ViMSJglvylhltl/K+1amU+twSPwpuyVtlpR+RlrLTT4fVq2FzfafLFglE
wS15KfX+dkbLljBoELzySuhKRGopuCUv770He/fC8ceHriR66nNL3Ci4JS+ZaYCl3N/OUJ9b4kbB
LXmZObP0+9sZZ5wBK1fC1q2hKxHxFNySM+dKe+FNXa1awcCB6nNLfCi4JWdr1kBNjT/HZLlIpdTn
lvhQcEvOyqm/nTF8uPrcEh8KbslZOfW3MwYMgOXLYdu20JWIKLglD+XU385o3dofpHz11dCViCi4
JUdr1vgzoJ94YuhKik99bokLBbfkJNMmKaf+dob63BIXCm7JSTn2tzMGDYKlS2H79tCVSLlTcEtO
yrG/ndG6tT+5wpw5oSuRcqfglqx9+CFUV8PJJ4euJBz1uSUOFNyStXLub2eozy1xoOCWrJXD/tuN
GTQIFi+GHTtCVyLlTMEtWSuH/bcb06YN9OunPreEpeCWrKxbB1u2wNe/HrqS8LQ/t4Sm4JasZPrb
zfSK0f7cEpz+DCUr06erTZIxeDAsWqT53BKOglsa5Ry88AKMGRO6knho08bvzz1jRuhKpFw1Gtxm
dpeZVZnZkn2+1snMppnZKjN70cw6RlumhLRsmT9pbjntv92YMWP8m5lICNmMuP8MjK3ztZuAac65
E4Dp6c+lRGVG2+U8f7suBbeE1GhwO+dmA5vrfPl84O709buBCwpcl8TICy/A2Lpv3WWuVy/YuRPe
eSd0JVKO8u1xd3HOVaWvVwFdClSPxMzOnTB3Lpx1VuhK4sVMo24Jp8kHJ51zDnAFqEViaOZM6NsX
Dj00dCXxo+CWUJrn+X1VZnakc26DmXUFPq7vThMnTvzyeiqVIqX5ZImj2SQHN3o0XHUVfPGFP3gr
ko/Kykoqc1zRZX7A3MidzLoBTzvneqU//w3wqXPuNjO7CejonLupzve4bB5b4u3kk+Hee+H000NX
Ek8DBsBvfqM57lI4ZoZzrsGpANlMB3wAmAOcaGZrzewy4NfAaDNbBZyV/lxKzIcfwief+L05pH5q
l0gIWY2483pgjbgT709/8nty3H9/6Eri65VX4Lrr4K23QlcipaIgI24pX88/r/52YwYOhPfeg6qq
xu8rUigKbqnX7t3w8stw9tmhK4m3Fi38VMkXXwxdiZQTBbfUa948+NrX4MgjQ1cSf+pzS7EpuKVe
mgaYvTFj/Ih7797QlUi5UHBLvRTc2evWDTp1goULQ1ci5ULBLQf49FNYuRKGDAldSXKoXSLFpOCW
A0ybBsOGQatWoStJjjFj/CwckWJQcMsB1CbJ3fDhfi73tm2hK5FyoOCW/TjnD7QpuHPTtq3OiiPF
o+CW/Sxd6lskPXqEriR51OeWYlFwy350tpv8KbilWBTcsp9nnoFvfCN0FcnUqxfs2gUrVoSuREqd
glu+tGEDLFqkZe75MoNx4+Dhh0NXIqVOwS1feuwxOPdcaN06dCXJNWGCgluip+CWLz30EIwfH7qK
ZBs8GDZvVrtEoqXgFqC2TaJpgE3TrJnaJRI9BbcAvk1yzjlqkxSC2iUSNQW3AD5o1CYpjEy7ZOXK
0JVIqVJwCxs2+J3txo4NXUlpULtEoqbgFrVJIjB+vD/YKxIFBbeoTRKBM8+ETZvULpFoKLjLXFUV
LFig2SSF1qwZfPvbapdINBTcZS6z6OaQQ0JXUnrGj1dwSzQU3GVOi26ic+aZtWcTEikkBXcZU5sk
WmqXSFQU3GUsM5tEbZLoqF0iUVBwlzHNJolepl3y9tuhK5FSouAuU1VV/hyJWnQTLbVLJAoK7jKl
NknxaDGOFJqCu0xNnao2SbFk2iXLl4euREqFgrsMrVjhp6ide27oSspDs2Zw2WVw552hK5FSYc65
aB7YzEX12NI011wDnTrBv/xL6ErKx9q10KcPrFkD7duHrkbizMxwzjV4um4Fd5nZtg26dYMlS+Do
o0NXU16+/W0YORL+/u9DVyJxlk1wq1VSZu65B0aNUmiHcM01MGkSaDwjTaXgLiPOwe9/D1dfHbqS
8jR8uD8TfGVl6Eok6RTcZeTll6F5cxg2LHQl5cnMv2lOmhS6Ekm6JvW4zWwNsA3YA9Q45wbsc5t6
3DFz4YV+wc1VV4WupHxVV8Oxx/ozDh17bOhqJI4iPzhpZu8D/Z1zm+q5TcEdIx98AP36+Y/t2oWu
prxdf73/Hfzbv4WuROKoWAcnG3wCiYc//hEuvVShHQf/8A8weTLs2hW6Ekmqpga3A14yszfN7IpC
FCSF9/nnMGWKDwwJ78QT/Zxu7V8i+WrexO8f4pxbb2adgWlmttI5Nztz48SJE7+8YyqVIpVKNfHp
JB9Tp0L//tCzZ+hKJOOaa3yr5HvfC12JhFZZWUlljlONCrYAx8xuAaqdc7enP1ePOyYGDIBbbtES
9zjZswd69PCbT51xRuhqJE4i7XGbWRsza5++3hY4G1iS7+NJNF5/HT75RNu3xk1FhV9B+fvfh65E
kqgprZIuwONmlnmc+51zLxakKimYSZN8b7uiInQlUtePfuRH3Rs3QufOoauRJNFeJSXs3Xdh4EBY
tcpvKiXxc+WV/nfz61+HrkTiQptMlbnx46FvX/jFL0JXIgfz179C797+pM1akCOg4C5rr74Kl1zi
991u0yZ0NdKQX/4S3nsP7rsvdCUSBwruMuUcDB7s98X4/vdDVyONqa6GE06Ap56C008PXY2Epm1d
y9RDD0FNDXz3u6ErkWy0awf//M9www3a8lWyo+AuMbt2wU03wb//uz9lliTD5ZfDpk1+1C3SGP1p
l5j//m/o1QtGjAhdieSiogJ++1v4x3/0/y2JNEQ97hLy6adw0kkwe7b/KMkzZgx885t+SbyUJx2c
LDPXXw+7d2s1XpItXgyjR/u59x06hK5GQlBwl5HVq/1MkhUrtAov6f72b+Hww+G220JXIiEouMvI
3/yN30zqpptCVyJN9dFH/jjF/PnQrVvoaqTYNB2wTDz8MCxa5FslknxHHQU/+Ykfee/ZE7oaiSMF
d8KtWuU3kZo6FQ45JHQ1Uig/+5kP7V/9KnQlEkdqlSTYZ5/BoEH+5L86u03pWb/er6T83//1Byyl
PKjHXeKuuMIvl/7LX8B05s+SNGMGfOc78OabcPTRoauRYlCPu4Tdc4+fr/0//6PQLmUjRvg53Rdf
rIU5Uksj7gRautT/Qb/8sp99IKVt715/2rnevTVFsBxoxF2Cqqv9Ptu//a1Cu1w0awb33gsPPqi9
TMTTiDtBnPNnBW/dGqZMCV2NFNvcuXDBBTBvnuZ3lzKNuEuIc36K2PLlfiMpKT+DB8PNN/sTP69b
F7oaCakpJwuWItmzx58U4a234KWXdEabcnbddfDFFzB0KEyb5k82LOVHwR1zNTXwwx/6cxNOnw7t
24euSEK78UY49FBIpeD55+HUU0NXJMWm4I6xzz+HCRP8rILnntPKSKl15ZX+TXzUKH/AcsCA0BVJ
ManHHVPbt8M550DbtvD44wptOdAll8DkyXDeeVBZGboaKSYFdwxt3OiXOPfo4c/83aJF6Iokrs47
z+9TM2ECPPlk6GqkWBTcMfPII36hxejRcOed/pRWIg0ZMQKeeQauvda3ULZtC12RRE3BHRMff+wX
1vzTP8Fjj/ld4bSUXbI1YAAsWeKv9+oFL7wQth6JloI7MOf8irjeveG442DBAj9fVyRXHTr4vWsm
T/Y7Rl5+OWzZEroqiYKCO6B162DcOD+6fuopvw+FDkJKU40e7UffrVv70feTT/oBgpQOBXcAy5bB
ZZf5UfYpp/iFNZrOJYXUvj3ccYffRfLmm6FfP3jgAX8yaUk+BXeROAezZvlZACNH+hkj77zjR9ut
WoWuTkrViBH+zPH/+q/+YHePHvBf/+U3K5Pk0iZTEduyxR/xnzQJNm3yq94uvdT/GytSbPPm+Z0l
Z870M1AuucT/16cD4fGhM+AEsn49PPGEXzjz2mt+afIPfuB3dtP0PomD1at9K+XRR/1/fBde6C8D
B/ptZCWc4MG9c6cri4Nt27b5U0vNnetH1ytX+lWPF17od3Jr1y50hSL1c84fY3n8cX/ZvBnOPx+G
D/ch3r176Y/GnYP33/dvYHE4PVzw4D7kEEfPntC/f+3ltNOSPXOiutqPVt54w//bOW8erFkDffr4
F/rZZ/u+YsuWoSsVyd2qVfD00zBnjv9vsabGHzgfONBfTj0VunZNbpg7B++9B/Pn117eesvvuHnr
rfD974euMAbB/dlnjiVL9v8hrVgBXbr4d/Ljjqu9dO/uXxCdO4fdtrS6Gqqq/OWjj+Ddd31QZy5b
tsDxx/uj9JkXc+/eWpYupWndutoByuuv+7/fHTv8Qc4ePaBnT3859lj/d33kkXD44eHaLbt3w6ef
+m0jPvjAh3Tm8v77/uNhh+0/mOzf39ceF5EGt5mNBX4HVACTnXO31bm93h53TQ2sXVv/D3TDBv8D
r6iAI47wId65s19Y0Latbzm0bVt7vVUrf9+KCmjevPY6+F9gTU3tZfduv9ve9u37X7Ztg61ba8N6
717/4su8CI8/vvbF2bOn/1dKPUApZ1u3+hlRq1fXfly3zv/9VlX527/yldoQb9/eXw49tPZ6mzZ+
sLPvJfM3vGdP7WX37tqPO3b4S3X1/tc/+cSvPN640Q+sDjvM58bXvlb/ALFDh9A/wYZFFtxmVgG8
DYwC/gq8AVzinFuxz33yOjjpnP9lbNxYe9m69cBfWnU17NpV/y8Zal8I+74wWrbc/8WTud6hgw/q
Ll38G4IZVFZWkkqlcq4/LlR/WOVcf02ND9KqKj/6rTtQ2r7d/w3vO7jKXN+zp/7BWPPm9Q/e2rXz
bw6ZQd7hh8Ps2cn+2WcT3Pnuxz0AeMc5tyb9RA8C3wJWNPRN2TCrDdbjjmvqo+WvnP/w4kD1h9WU
+lu08P+ZhjrQl/SffTby/af/aGDtPp+vS39NREQilm9wl+cEbRGRGMi3xz0ImOicG5v+/OfA3n0P
UJqZwl1EJA9RHZxsjj84ORL4CHidOgcnRUQkGnkdnHTO7Taza4AX8NMBpyi0RUSKI7IFOCIiEo1I
lpKY2VgzW2lmq83sZ1E8R1TM7C4zqzKzJaFryYeZHWNmM8xsmZktNbPrQteUCzNrbWbzzGyhmS03
s1tD15QrM6swswVm9nToWnJlZmvMbHG6/tdD15MrM+toZo+Y2Yr062dQ6JqyZWYnpn/umcvWg/39
FnzEnc3inDgzs6FANXCPc65X6HpyZWZHAkc65xaaWTtgPnBBUn7+AGbWxjm3M30s5RXgRufcK6Hr
ypaZ/QToD7R3zp0fup5cmNn7QH/n3KbQteTDzO4GZjrn7kq/fto657aGritXZtYMn58DnHNr694e
xYj7y8U5zrkaILM4JxGcc7OBzaHryJdzboNzbmH6ejV+UdRRYavKjXNuZ/pqS/wxlMSEiJl9FTgH
mAwkdCumZNZtZh2Aoc65u8Afi0tiaKeNAt6tL7QhmuDW4pyYMLNuQF9gXthKcmNmzcxsIVAFzHDO
LQ9dUw7+E/gpsDd0IXlywEtm9qaZXRG6mBx1Bzaa2Z/N7C0z+5OZBdyyrkkuBv5ysBujCG4d7YyB
dJvkEeD69Mg7MZxze51zfYCvAsPMLBW4pKyY2XnAx865BSR01AoMcc71Bb4BXJ1uHSZFc6AfcIdz
rh+wA7gpbEm5M7OWwDeBhw92nyiC+6/AMft8fgx+1C1FYmYtgEeB+5xzT4SuJ1/pf3OfBU4PXUuW
zgTOT/eJHwDOMrN7AteUE+fc+vTHjcDj+NZnUqwD1jnn3kh//gg+yJPmG8D89O+gXlEE95tATzPr
ln7nuAh4KoLnkXqYmQFTgOXOud+FridXZvYVM+uYvn4IMBpYELaq7DjnfuGcO8Y51x3/r+7LzrlL
Q9eVLTNrY2bt09fbAmcDiZld5ZzbAKw1sxPSXxoFLAtYUr4uwb/xH1S+uwMeVNIX55jZA8Bw4HAz
Wwv80jn358Bl5WII8D1gsZllAu/nzrnnA9aUi67A3emj6s2Ae51z0wPXlK+ktQ27AI/7936aA/c7
514MW1LOrgXuTw8a3wUuC1xPTtJvmKOABo8vaAGOiEjC6FwuIiIJo+AWEUkYBbeISMIouEVEEkbB
LSKSMApuEZGEUXCLiCSMgltEJGH+Px9Ir5f410BLAAAAAElFTkSuQmCC
)

加入噪声:

In [24]:

```
from scipy.stats import norm
y_noisy = y + 0.8 * norm.rvs(size=len(x))
p = plt.plot(x, y, 'k-')
p = plt.plot(x, y_noisy, 'rx')

```

![](data:image/png;base64,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
AABJRU5ErkJggg==
)

### Scipy.optimize.leastsq

定义误差函数,将要优化的参数放在前面:

In [25]:

```
def f_err(p, y, x):
    return y - function(x, *p)

```

将这个函数作为参数传入 `leastsq` 函数,第二个参数为初始值:

In [26]:

```
c, ret_val = leastsq(f_err, [1, 1, 1, 1], args=(y_noisy, x))
c, ret_val

```

Out[26]:

```
(array([ 3.03199715,  1.97689384,  1.30083191,  0.6393337 ]), 1)
```

`ret_val` 是 1~4 时,表示成功找到最小二乘解:

In [27]:

```
p = plt.plot(x, y_noisy, 'rx')
p = plt.plot(x, function(x, *c), 'k--')

```

![](data:image/png;base64,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
A5MAAAAASUVORK5CYII=
)

### Scipy.optimize.curve_fit

更高级的做法:

In [28]:

```
from scipy.optimize import curve_fit

```

不需要定义误差函数,直接传入 `function` 作为参数:

In [29]:

```
p_est, err_est = curve_fit(function, x, y_noisy)

```

In [30]:

```
print p_est
p = plt.plot(x, y_noisy, "rx")
p = plt.plot(x, function(x, *p_est), "k--")

```

```
[ 3.03199711  1.97689385  1.3008319   0.63933373]

```

![](data:image/png;base64,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
A5MAAAAASUVORK5CYII=
)

这里第一个返回的是函数的参数,第二个返回值为各个参数的协方差矩阵:

In [31]:

```
print err_est

```

```
[[ 0.08483704 -0.02782318  0.00967093 -0.03029038]
 [-0.02782318  0.00933216 -0.00305158  0.00955794]
 [ 0.00967093 -0.00305158  0.0014972  -0.00468919]
 [-0.03029038  0.00955794 -0.00468919  0.01484297]]

```

协方差矩阵的对角线为各个参数的方差:

In [32]:

```
print "normalized relative errors for each parameter"
print "   a\t b\t f\tphi"
print np.sqrt(err_est.diagonal()) / p_est

```

```
normalized relative errors for each parameter
   a	  b	 f	phi
[ 0.09606473  0.0488661   0.02974528  0.19056043]

```