MATLAB问题

MATLAB问题,第1张

错误的意思是,你不能 吧 变量变为bouble,因此,f(x)应该写为f,修改的程序如下:\x0d\syms x \x0d\f=input('function');\x0d\n=input('times of derivation');\x0d\s=1;\x0d\while s<=n;\x0d\ f=diff(f,s)+f;\x0d\ s=s+1;\x0d\end\x0d\测试通过,祝顺利!

这种大矩阵问题,不能单纯地按照矩阵来进行存储,比如你现在的矩阵,一共95489856个元素,如果按照32位浮点数来存储,一共占用内存365M左右,这个数据应该是超过你的虚拟内存(virtual memory),你说的2GB内存是你的物理内存。具体怎么解决我不太清楚,不过可以给你一点小建议:
第一种方法:可以查看一下MATLAB的数据内存管理,参看help memory或者在help文档中,在index下查看memory的具体命令。
第二种方法:改变矩阵的存储方法,这就需要恰当地分析矩阵的元素,选择合适的存储方法,在在大规模的场运算中,是最基本的方法和技术,最新的ANSYS软件,据说能够处理数上百万个自由度,如果单纯按照矩阵来存储这些求解问题的节点矩阵,那需要的空间简直是无法想象。所以改变矩阵存储方法,是最行之有效地
1 查找matlab根路径在matlab命令行中敲入:matlabroot
显示根路径,如:C:\MATLAB7
2查看当前Java虚拟机最大堆内存, 敲入:javalangRuntimegetRuntimemaxMemory
3查看Java虚拟机版本敲入:version -java
4在 $MATLAB\bin\$ARCH 路径下新建javaopts文件
$MATLAB是根路径,例如C:\MATLAB7
$ARCH是系统架构例如win32,则在C:\MATLAB7\bin\win32下新建javaopts文件
5用记事本打开javaopts文件,
对于不同的版本的Java虚拟机,输入:
The following table shows the default settings MATLAB uses for versions of the JVM:
JVM Initial Heap Size Max Heap Size
160 -Xms64m -Xmx128m (32-bit)
-Xmx196m (64-bit)
150 -Xms64m -Xmx96m (32-bit)
-Xmx128m (64-bit)
142 -Xms16m -Xmx96m
131 -Xms16000000 -Xmx64000000
122 -Xms16000000 -Xmx64000000
118 -ms16000000 -mx64000000
例如我的Java是142,在javaopts文件写入-Xmx96m,保存就ok啦
如果输入错误就报错:warning : Failed to start to Java Virtual machine
6 重启matlab,敲入javalangRuntimegetRuntimemaxMemory
显示最大内存改变,设置成功

函数主要是用来:创建或编辑一个最优化参数选项
句法规则
options = optimset('param1',value1,'param2',value2,) %设置所有参数及其值,未设置的为默认值
options = optimset %全部设置为默认
options = optimset(optimfun) %设置与最优化函数有关的参数为默认
options = optimset(oldopts,'param1',value1,) %复制一个已存在的选项,修改特定项
options = optimset(oldopts,newopts) %用另一个新选项合并目前选项


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13332151.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-16
下一篇 2023-07-16

发表评论

登录后才能评论

评论列表(0条)

保存