| 查看: 2206 | 回复: 11 | ||
[求助]
求助,我现在要求离散点的定积分,请问可以通过1 stopt或者其他软件实现吗? 已有1人参与
|
| 数据 |
» 本帖附件资源列表
-
欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com - 附件 1 : 新建文本文档.txt
2016-06-03 14:39:41, 433 bytes
2楼2016-06-03 14:40:00
lijf517
木虫 (小有名气)
- 应助: 39 (小学生)
- 金币: 3391.9
- 红花: 14
- 帖子: 293
- 在线: 390.9小时
- 虫号: 2249203
- 注册: 2013-01-18
- 性别: GG
- 专业: 力学
|
自己写程序吧。最简单的,可以用梯形积分法,就是计算一系列梯形面积加起来。搞计算模拟的,没这点最基本的数值分析技能,在科研路上会受到很多牵制。随便找本数值分析的书都有这方面内容 发自小木虫Android客户端 |
3楼2016-06-03 14:49:16
4楼2016-06-03 15:40:47
lijf517
木虫 (小有名气)
- 应助: 39 (小学生)
- 金币: 3391.9
- 红花: 14
- 帖子: 293
- 在线: 390.9小时
- 虫号: 2249203
- 注册: 2013-01-18
- 性别: GG
- 专业: 力学
【答案】应助回帖
感谢参与,应助指数 +1
|
我看你还在拟合J-C本构的参数,说明我们专业一致啊。这点数值模拟的基本功还是得学学吧。下面是我用python写的代码,python是免费软件,matlab也可以做类似工作。 from scipy import integrate import numpy as np data = np.loadtxt("data.txt" ![]() rr = data[:, 0] sigZ = data[:, 1] fr = rr*np.abs(sigZ) intgl = 2.0*np.pi*integrate.trapz(fr, rr) print "The integral is ", intgl 运行结果显示,最终积分值为129534.146566 发自小木虫Android客户端 |
» 本帖已获得的红花(最新10朵)
5楼2016-06-03 16:41:36
6楼2016-06-04 20:53:50
|
r=[38.19 38.520745 38.85149 39.182235 39.512981 39.843726 40.174471 40.505216 40.835961 41.166706 41.497451 41.828197 42.158942 42.489687 42.820432 43.151177 43.481922 43.812667 44.143413 44.474158 ] r = Columns 1 through 15 38.1900 38.5207 38.8515 39.1822 39.5130 39.8437 40.1745 40.5052 40.8360 41.1667 41.4975 41.8282 42.1589 42.4897 42.8204 Columns 16 through 20 43.1512 43.4819 43.8127 44.1434 44.4742 z=[169.068823 149.155847 129.816022 115.859568 101.439384 85.497986 75.478163 77.166082 86.332299 104.642294 93.414629 57.866729 18.946838 -21.822963 -43.7857 -58.993042 -63.724287 -66.180258 -64.728137 -62.85555 ]; y=r*abs(z); s=trapz(r,y); 在matlab,我不知道错在哪里?能指导下吗 |
7楼2016-06-06 13:05:02
|
r=[38.19 38.520745 38.85149 39.182235 39.512981 39.843726 40.174471 40.505216 40.835961 41.166706 41.497451 41.828197 42.158942 42.489687 42.820432 43.151177 43.481922 43.812667 44.143413 44.474158 ] r = Columns 1 through 15 38.1900 38.5207 38.8515 39.1822 39.5130 39.8437 40.1745 40.5052 40.8360 41.1667 41.4975 41.8282 42.1589 42.4897 42.8204 Columns 16 through 20 43.1512 43.4819 43.8127 44.1434 44.4742 z=[169.068823 149.155847 129.816022 115.859568 101.439384 85.497986 75.478163 77.166082 86.332299 104.642294 93.414629 57.866729 18.946838 -21.822963 -43.7857 -58.993042 -63.724287 -66.180258 -64.728137 -62.85555 ]; y=r*abs(z); s=trapz(r,y); 在matlab,我不知道错在哪里?能指导下吗 |
8楼2016-06-06 13:06:29
9楼2016-06-06 14:35:40
lijf517
木虫 (小有名气)
- 应助: 39 (小学生)
- 金币: 3391.9
- 红花: 14
- 帖子: 293
- 在线: 390.9小时
- 虫号: 2249203
- 注册: 2013-01-18
- 性别: GG
- 专业: 力学
|
嗯,matlab的语法以及调用的函数名称与我上面贴的python代码略有差异。为尊重他人版权,我现在主要在linux下做模拟,使用的都是开源免费的软件,所以不再用matlab了。你其实也可以用matlab中的函数把文件中的数据读进数组,不需要一个个输进代码,容易出错。datFmt = '%f %f'; sizeDat = [2 Inf]; fileID = fopen('data.txt', 'r'); data = fscanf(fileID, dataFmt, sizeDat); data = data'; 这样就把文件data.txt中的数据读进数组data了 发自小木虫Android客户端 |
10楼2016-06-06 15:32:10











回复此楼
我不是学这个的,只是需要有些数据,需要量化表达出来,文献里使用积分表达的。

拐点