EDA365电子论坛网

标题: 求教一个matlab的内存分配原理 [打印本页]

作者: dream123    时间: 2022-9-16 09:31
标题: 求教一个matlab的内存分配原理
1.我之前用其他语言的时候,因为对变量分配的内存空间是有限的,针对类似运算1/3*3都是无法完美恢复成1的,一般根据事先定义的位宽结果为0.9999....9。) Y1 B- `+ L% w
2.matlab确可以神奇地恢复,求教matlab的内存分配机制。5 _) C! f9 E0 |3 b$ x  @; p
3.如果matlab真的可以保留全部精度,那么建立算法模型的时候,就可以获得理论上的完美无精度损失模型,这感觉是不可思议的。) V5 F) o0 T1 m: I

! |) ]8 P( `4 Z* b0 R
6 x# e# g3 M! ?/ J
作者: replace    时间: 2022-9-16 10:53
你这描述,需要的不是去了解内存分配机制,而是调用符号计算工具箱。
; K( s# P# H0 G' T0 S' BMATLAB的符号计算只能说可以满足一部分应用,有时候还是用mathematica等计算更方便。另外maple也有符号计算,我没用过,你也可以去了解一下。
作者: dream123    时间: 2022-9-16 13:13
replace 发表于 2022-9-16 10:536 \# r% i: C. I. [! W. {
你这描述,需要的不是去了解内存分配机制,而是调用符号计算工具箱。
: M  \+ H8 R$ AMATLAB的符号计算只能说可以满足一部 ...
  f  {* r0 m1 g$ L+ O: l
我其实并不是说需要建立完全无损失的模型,因为工程应用都是需要定点模型的。只是想深入理解下matlab的底层原理。这个困扰了我好久
  M: y) N7 o1 E
作者: qian211111    时间: 2022-9-16 13:20
1、matlab对于简单的计算,因为导致的误差可能非常少致使结果正确、稍微复杂就出现误差:
% j5 e6 T# H8 b$ V& q3 N$ u3 r* l. D
" d# L) j5 R8 N2 w1/3*3-1
4 ]) p+ b8 U% Qans = 06 Z4 d  p2 G: P
3 y+ S, b/ J8 B% t, O
(4/3-1)*3-1: ^8 ~1 h, a* k7 l
ans =-2.220446049250313e-16
7 |4 h: ~" J5 V' R! A9 f; b; I  S9 S" h' W' \1 v
2、简单的计算,可能matlab内部修正过。类似linspace函数。




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2