当前位置:网站首页 > 技术博客 > 正文

1stopt多元非线性拟合教程



想必小伙伴们对1stOpt这款领先世界、当今最强大、最易于使用的国产数值优化分析计算软件平台并不陌生,但与此同时大家也知道它是一款商业软件。虽然网上能够找到其早期的1.5破姐版,但目前最新版已到9.0了。虽然1stOpt对学生用户提供5折优惠,但如果要买完整功能版的得需要花上好几千。可能几百块钱小伙伴们咬咬牙估计也能接受,但几千可能还是要权衡一下。

作为一向爱在各种社区、论坛闲逛的咱自然也会留意一些与1stOpt类似的产品。果不其然,在一次偶然的机会在小木虫上见到一位虫友在1stOpt话题下用一种我不曾见过的语言回答了该问题,而此语言的简洁程度和1stOpt不相上下。按图索骥,最终爬到了www.forcal.net。在此网站上花了一下午的时间把整个语言设计都给学了一遍,给我的整体感觉就是非常容易上手,在一定程度上可作为1stOpt的替代品来使用。

咱所讲的这款神器的名字就叫OpenLU,它是由软件作者采用C/C++开发并维护升级的开放式的数值计算程序,支持所有C/C++的运算符、可自定义函数与计算模块、具有极强的扩展性(加载Lu扩展动态库可实现对Delphi、Fortran等高级语言的交互应用)、能够轻松求解非线性方程(组)、多元积分、微分方程求解、参数优化拟合等各种数学计算与工程计算。

f4233ca106baba5baa06f2a9843a48c7.png

openLU软件界面

作为一款专门的数值计算程序,其使用方法显然不是三言两语就能讲明白的,这里为了让小伙伴们直观感受openLU的强大之处,从其官网(www.forcal.net)摘抄了几个案例供诸君观摩(注:以下示例及相关资源全部来源与官网,对软件作者深表感谢!):

示例1:解含参变量多重积分的方程组

59e40f8a052769a5fec9c27705058349.jpeg

示例1源代码

示例1结果

示例2:缺少部分参数的微分方程拟合

微分方程组如下:

求参数a,b,c,d以及x,y的初值。

数据如下:
t  x(t)  y(t)
11 45.79 41.40
12 53.03 38.90
13 64.05 36.78
14 75.40 36.04
15 90.36 33.78
16 107.14 35.40
17 127.79 34.68
18 150.77 36.61
19 179.65 37.71
20 211.82 41.98
21 249.91 45.72
22 291.31 53.10
23 334.95 65.44
24 380.67 83.00
25 420.28 108.74
26 445.56 150.01
27 447.63 205.61
28 414.04 281.60
29 347.04 364.56
30 265.33 440.30
31 187.57 489.68
32 128.00 512.95
33 85.25 510.01
34 57.17 491.06
35 39.96 462.22
36 29.22 430.15
37 22.30 396.95
38 16.52 364.87
39 14.41 333.16
40 11.58 304.97
41 10.41 277.73
42 10.17 253.16
43 7.86 229.66
44 9.23 209.53
45 8.22 190.07
46 8.76 173.58
47 7.90 156.40
48 8.38 143.05
49 9.53 130.75
50 9.33 117.49
51 9.72 108.16
52 10.55 98.08
53 13.05 88.91
54 13.58 82.28
55 16.31 75.42
56 17.75 69.58
57 20.11 62.58
58 23.98 59.22
59 28.51 54.91
60 31.61 49.79
61 37.13 45.94
62 45.06 43.41
63 53.40 41.30
64 62.39 40.28
65 72.89 37.71
66 86.92 36.58
67 103.32 36.98
68 121.70 36.65
69 144.86 37.87
70 171.92 39.63
71 202.51 42.97
72 237.69 46.95
73 276.77 54.93
74 319.76 64.61
75 362.05 81.28
76 400.11 105.50
77 427.79 143.03
78 434.56 192.45
79 410.31 260.84
80 354.18 339.39
81 278.49 413.79
82 203.72 466.94
83 141.06 494.72
84 95.08 499.37
85 66.76 484.58
86 45.41 460.63
87 33.13 429.79
88 25.89 398.77
89 20.51 366.49
90 17.11 336.56
91 12.69 306.39
92 11.76 279.53
93 11.22 254.95
94 10.29 233.50
95 8.82 212.74
96 9.51 193.61
97 8.69 175.01
98 9.53 160.59
99 8.68 146.12
100 10.82 131.85


























































































示例2源代码

示例2结果

da9cd0300b22536239ecb11de5221c01.png

(图像来源: forcal.net/yyhz/luoptother.htm)

示例3:复数拟合:利用cole-cole模型拟合介电常数

e=(a+(b-a)/(1+(2*pi*f*c)^2))-1.0i*(d/(2*pi*f*(1/(36*pi)*1e-9))+((b-a)*2*pi*f*c)/(1+(2*pi*f*c)^2))

拟合参数:a,b,c,d

数据:复数 e = e1 + e2 * i (i为虚数单位)

f     e1[realPart] e2[imagPart]
78.6416 0.0101
.93 78.5189 0.0451
.86 78.5453 0.0435
.78 78.587 0.023
.71 78.6542 0.1911
.64 78.6054 0.1855
.57 78.6201 0.1524
.49 78.5626 0.089
.42 78.5386 0.068
.35 78.5829 0.1993
.28 78.6149 0.1347
.2 78.6495 0.2324
.13 78.6226 0.1863
.06 78.5616 0.1389
.99 78.5146 0.0626
.91 78.5795 0.0778
.84 78.5842 0.15
.77 78.5785 0.1944
.7 78.6011 0.1988
.62 78.5833 0.2089
.55 78.5298 0.1492
.56 78.5337 0.1835
.57 78.5676 0.2353
.59 78.5411 0.2025
.6 78.5219 0.209
.61 78.5208 0.2245
.62 78.5198 0.2761
.63 78.5312 0.2217
.64 78.5029 0.2126
.66 78.5344 0.2328
.67 78.5319 0.224
.68 78.5077 0.2183
.69 78.5345 0.2317
.7 78.4988 0.2495
.71 78.5091 0.2274
.72 78.4915 0.2267
.74 78.4901 0.249
.75 78.5024 0.2342
.76 78.4836 0.2522
.77 78.4873 0.2532
.78 78.4978 0.2615
.23 78.4948 0.271
.69 78.4762 0.2821
.14 78.479 0.28
.59 78.4771 0.2963
.05 78.4804 0.2938
.5 78.4822 0.3015
.95 78.486 0.3105
.4 78.482 0.319
.86 78.4746 0.3237
.31 78.4806 0.3389
.76 78.4747 0.3411
.22 78.4703 0.3535
.67 78.4737 0.3644
.12 78.4658 0.3889
.58 78.4736 0.3944
.03 78.482 0.4014
.48 78.4542 0.4141
.93 78.4759 0.416
.39 78.4894 0.4195
.8 78.491 0.4132
.8 78.4802 0.4335
.8 78.4632 0.4587
.8 78.4881 0.4779
.8 78.4726 0.5065
.8 78.4908 0.5164
.8 78.4856 0.5224
.8 78.492 0.5305
.8 78.4948 0.5082
.8 78.5064 0.5592
.8 78.4726 0.5863
.8 78.478 0.5951
.8 78.4849 0.5928
.8 78.4968 0.6001
.8 78.4783 0.5992
.8 78.4736 0.6006
.8 78.4737 0.6351
.8 78.4618 0.652
.8 78.4684 0.6446
.8 78.4699 0.6806
.7 78.4661 0.686
.4 78.479 0.7161
78.4725 0.7234
.6 78.4698 0.7509
.2 78.4618 0.7711
.8 78.4567 0.7959
.4 78.457 0.8197
78.4535 0.8434
.6 78.4542 0.8728
.3 78.4548 0.8929
.9 78.4428 0.9265
.5 78.4528 0.9455
.1 78.4494 0.9737
.7 78.4509 0.9944
.3 78.451 1.0089
.9 78.4428 1.0312
.5 78.446 1.0494
.2 78.4415 1.0718
.8 78.4424 1.101
.4 78.4476 1.123
78.4461 1.1537
.9 78.4525 1.1918
.8 78.4471 1.2336
.7 78.4527 1.2755
.7 78.4449 1.3167
.6 78.4407 1.3568
.5 78.4349 1.4022
.4 78.4317 1.4425
.3 78.4325 1.4809
.2 78.4263 1.5171
.1 78.4243 1.5621
.1 78.4242 1.6133
78.4334 1.6376
.9 78.4304 1.6946
.8 78.4303 1.7297
.7 78.4214 1.7644
.6 78.4189 1.8087
.5 78.4175 1.8453
.4 78.4149 1.8888
.4 78.4115 1.9302
.3 78.4059 1.9722
.4 78.3997 2.0431
.6 78.3949 2.1094
.8 78.3907 2.1788
78.391 2.2449
.1 78.3883 2.3201
.3 78.3852 2.3927
.5 78.38 2.4643
.7 78.3711 2.5338
.8 78.3642 2.6052
78.3575 2.6762
.2 78.3524 2.7449
.3 78.3515 2.8165
.5 78.3502 2.8895
.7 78.3433 2.9579
.9 78.3361 3.0293
78.3288 3.0984
.2 78.3219 3.1682
.4 78.3161 3.2349
.5 78.3078 3.304
.7 78.3039 3.3728
.5 78.2928 3.4979
.3 78.2817 3.625
.1 78.2674 3.7441
78.2551 3.8599
78.2436 3.9782
78.2297 4.1022
78.2163 4.229
78.2042 4.3487
78.1894 4.4612
78.1752 4.5803
78.1562 4.7061
78.1413 4.832
78.1275 4.947
78.1113 5.0617
78.0944 5.1861
78.0747 5.3089
78.0588 5.4322
78.0435 5.5502
78.0232 5.6666
78.0036 5.788
77.9694 5.9989
77.9384 6.1999
77.9009 6.4073
77.8615 6.6087
77.8266 6.8135
77.7883 7.0213
77.744 7.2225
77.7061 7.4315
77.6628 7.6281
77.6176 7.8345
77.5775 8.0377
77.531 8.2393
77.4807 8.4404
77.4391 8.6434
77.3859 8.841
77.3332 9.0447
77.2872 9.2392
77.23 9.4387
77.1786 9.6421
77.1261 9.8366
77.0262 10.1777
76.9288 10.5137
76.8265 10.8515
76.7183 11.1866
76.6111 11.5187
76.4991 11.8533
76.3844 12.1827
76.2637 12.5094
76.1481 12.8349
76.0205 13.1668
75.8923 13.4861
75.7675 13.8109
75.632 14.1324
75.4994 14.4493
75.3629 14.7689
75.2199 15.0811
75.0831 15.3966
74.9318 15.7106
74.7874 16.018
74.6375 16.3285








































































































































































































示例3源代码

示例3结果

9ee890529540b32d2b49527026290f1f.png

(图像来源: forcal.net/yyhz/luoptother.htm)

由于篇幅原因,更多更复杂精彩多样有用的openLU应用案例就不在此分享了,感兴趣的伙伴欢迎转战www.forcal.net学个痛快。反正咱看完所有案例就有个感觉,学习中遇到的百分之七八十的问题都可以通过案例改改巴拉巴拉就完事,非常方便。

虽然openLU不收大家一分钱,但如果大家在学术活动中获益于openLU的计算结果,不妨显著的标注出来,包括但不限于注明软件来源网站及作者、引用软件作者关于lu以及openLU相关的学术文章。

这里就不分享openLU的软件包了,大家直接点击左下角阅读原文去其官方下载,或直接在浏览器中输入www.forcal.net访问下载。

最后,衷心感谢软件作者开发出如此优秀的数值计算工具并开源其绝大部分源代码,并免费提供给大家使用!

参考资料:www.forcal.net

如需转载,请在公众号中回复“转载”获取授权!

版权声明


相关文章:

  • 冒泡排序递归算法2025-09-07 14:00:59
  • 如何用c语言随机数生成2025-09-07 14:00:59
  • springboot整合swagger32025-09-07 14:00:59
  • 倒排索引的存储方式2025-09-07 14:00:59
  • zipwithindex会重复么2025-09-07 14:00:59
  • debian 软件源配置2025-09-07 14:00:59
  • dcnn与cnn的区别2025-09-07 14:00:59
  • ipvsadm命令使用什么选项添加真实服务器2025-09-07 14:00:59
  • 红黑二叉树原理2025-09-07 14:00:59
  • ubuntu安装opera2025-09-07 14:00:59