新人求助,为什么会经常出现计算过程中,local内核已中断
mathematica吧
全部回复
仅看楼主
level 3
djx070558 楼主
原来常用MATLAB,由于要进行较大的符号计算,临时摸索MMA。
使用版本MMA12,运行一个Solve,然后就会出现RT的情况。
然后把里面的一些变量用代号代替,求出解后保存成wdx格式,再导入还是一直有这问题。
第一个情况
Ans = Solve[{f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13,
f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26,
f27, f28, f29, f30, f31, f32, f33}, {E1cm, F1cm, C1c, E11cm,
F11cm, C11c, E10cm, F10cm, C10c, E2cm, F2cm, C2c, D2c, E21cm,
F21cm, C21c, D21c, E20cm, F20cm, C20c, D20c, E3cm, F3cm, C3c, D3c,
E31cm, F31cm, C31c, D31c, E30cm, F30cm, C30c, D30c}];
第二个情况(ANS416.wdx大概有200M)
ANS = Import["D:/Master/Analisys/ANS416.wdx"];
2020年04月22日 07点04分 1
吧务
level 10
内核突然退出一般是内存用超了**作系统干掉了。
2020年04月22日 07点04分 2
昨天用新电脑跑,也是这样。 内存16g, 计算可能会出现,但是导入一个文件应该不至于吧?
2020年04月22日 08点04分
@djx070558 上次碰见导入大文件失败的人,他是因为导入的是CSV格式。WL导入CSV是调用JAVA做的,JVM堆内存设小了就导不成。你这WDX我也没导过不晓得。
2020年04月22日 11点04分
@asdasd1dsadsa 那请问,如果我做符号运算,solve后怎么保存结果下次再用?应该保存什么格式?
2020年04月22日 11点04分
@djx070558 要不先导入为字符串再转换为表达式?或者试试MX,WXF之类的格式?
2020年04月22日 11点04分
level 3
djx070558 楼主
(* 部分条件,只是示例,程序中有用$Assumptions *)
X1[R1] == 0; X1[R2] == 0;
X3[R2] == 0; X3[R3] == 0;
Y2[Z1] == 0; Y2[Z2] == 0;
Y4[Z2] == 0; Y4[Z3] == 0;
(*形式解*)
S1 = A1*X1[r, z] + B1*Y1[r, z];
S2 = A2*X2[r, z] + B2*Y2[r, z];
fai1 = S1 + S2;
S3 = A3*X3[r, z] + B3*Y3[r, z];
S4 = A4*X4[r, z] + B4*Y4[r, z];
fai2 = S3 + S4;
(*边界条件*)
f1 = fai1 /. r -> R1 == 0;
f2 = fai1 /. r -> R2 == fai2 /. r -> R2;
f3 = D[fai1 , r] /. r -> R2 == D[fai2, r] /. r -> R2 ;
f4 = fai2 /. r -> R3 == 0;
f5 = fai1 /. z -> Z1 == 0;
f6 = fai1 /. z -> Z2 == fai2 /. z -> Z2;
f7 = D[fai1 , z] /. z -> R2 == D[fai2, z] /. z -> Z2 ;
f8 = fai2 /. z -> Z3 == 0;
目的是要求解出 A B .
其中X Y里面可能包含Bessel函数和e^z等.
2020年04月23日 02点04分 4
吧务
level 10
你那些X1啥的是函数吗?我这里没有X1的定义,{f1,...}不构成方程组
2020年04月23日 10点04分 5
不好意思 这个忘了说明。 X Y代表的是一个已知函数, 只是这么表示一下
2020年04月24日 01点04分
为什么{f1,..}不构成方程组呢?
2020年04月24日 01点04分
@djx070558 没有X1的定义的时候{f1,...}不是方程组
2020年04月24日 03点04分
@asdasd1dsadsa 我有具体的表达式,就是比较复杂,比如说是 Exp[k z] BesselJ[n,k r]之类的
2020年04月24日 06点04分
1