请教各位大神,用NSolve解出的解反代回方程,结果与求解的
mathematica吧
全部回复
仅看楼主
level 4
请教各位大神,用NSolve解出的解反代回方程,结果与求解的不相等。比如说NSolve[dd==0,cc],解出的结果cc代入式子dd,结果dd≠0。
为什么出现这种情况,怎么办[狂汗]
2020年06月22日 10点06分 1
level 9
程序发出来看看
2020年06月22日 11点06分 2
麻烦大佬看一下
2020年06月22日 13点06分
@喝柠檬汁的女孩 你没有发程序啊
2020年06月22日 14点06分
@🌚黑黄🌝 发在下一楼了,这里编辑不完
2020年06月22日 14点06分
@喝柠檬汁的女孩 我晚上回家给你看
2020年06月22日 23点06分
level 4
w = 794; u0 = 10^5; c1 = u0; c2 = u0/2; c4 = u0/2; c3 =
10^9; r = 1.0001; c5 = u0*(r + 1)^2/8/r; d1 = u0*(r - 1)^2/r; d2 =
u0*(1 - r^2)/r; p = 10^3; t1 = 10^(-2); t2 = 0.5*10^(-4); tr =
10^(-6); c11 = (1 - I*w*tr)*(2*c1/9 - 4*c2/3 + 2*c3 +
20*c4/9); c13 = (1 - I*w*tr)*(-4*c1/9 + 2*c2/3 + 2*c3 -
4*c4/9); c33 = (1 - I*w*tr)*(8*c1/9 + 8*c2/3 + 2*c3 +
8*c4/9); c44r = (1 - I*w*tr)*(2*c5 -
d2^2*(1 - I*w*t2)^2/(4*d1*(1 - I*w*t1)*(1 - I*w*tr))); B =
16*10^9;(*杨氏模量*)v = 0.35; G = B/(2*(1 + v));(*剪切模量*)lamda =
2*v*G/(1 -
2*v);(*拉梅常数*)p0 = 2680; vp = 3095; vs = 1487; bb1 = \[Sqrt](-1/(
2*c33 c44r) (c13^2 - c11 c33 + 2 c13 c44r + cc c33 p +
cc c44r p + \[Sqrt](-4 c33 c44r (c11 - cc p) (c44r -
cc p) + (c13^2 - c11 c33 + 2 c13 c44r +
cc (c33 + c44r) p)^2))); bb2 = \[Sqrt](-1/(
2*c33 c44r) (c13^2 - c11 c33 + 2 c13 c44r + cc c33 p +
cc c44r p - \[Sqrt](-4 c33 c44r (c11 - cc p) (c44r -
cc p) + (c13^2 - c11 c33 + 2 c13 c44r +
cc (c33 + c44r) p)^2))); rr2 =
Sqrt[(lamda - cc*p0 + 2*G)/(lamda + 2*G)]; rr1 =
Sqrt[(G - cc*p0)/
G]; fai1 = (p*cc - c11 + c44r*bb1^2)/(I*
bb1*(c13 + c44r)); fai2 = (p*cc - c11 + c44r*bb2^2)/(I*
bb2*(c13 + c44r)); pusai1 = -(rr1^2*G - (lamda - cc*p0 + 2*G))/(I*
rr1*(lamda + G)); pusai2 = -(rr2^2*G - (lamda - cc*p0 + 2*G))/(I*
rr2*(lamda + G)); D11 = 1; D12 = 1; D13 = -1; D14 = -1; D21 =
I*fai1; D22 = I*fai2; D23 = -I*pusai1; D24 = -I*pusai2; D31 =
I*(-I*c13 + fai1*bb1*c33); D32 = I*(-I*c13 + fai2*bb2*c33); D33 =
I*(pusai1*rr1*(2*G + lamda) + I*lamda); D34 =
I*(pusai2*rr2*(2*G + lamda) + I*lamda); D41 = -c44r*(I*fai1 -
bb1); D42 = -c44r*(I*fai2 - bb2); D43 = G*(rr1 + I*pusai1); D44 =
G*(rr2 + I*pusai2); d = {{D11, D12, D13, D14}, {D21, D22, D23,
D24}, {D31, D32, D33, D34}, {D41, D42, D43, D44}}; ddd =
Simplify[d]; MatrixForm[ddd]; dd = Det[ddd]; NSolve[dd == 0, cc]
2020年06月22日 14点06分 4
level 7
为什么楼主的程序执行不出来啊。。
此外,NSolve帮助文档里, 可能存在的问题里有写,算出来的解是个近似的解,可以通过Working Precision 来找出公差更小的解。建议楼主可以参考下文档里的方法。
程序跑不出来我也不清楚改WorkingPrecision的方法管不管用。
2020年06月25日 02点06分 5
我的电脑可以出结果啊,但是有的w值代入确实不出结果,一直处于正在运行。
2020年06月25日 06点06分
请教一下,用了WorkingPrecision->15,有结果输出但反代≠0,为16,输出{},->17输出The precision of the argument function is less than WorkingPrecision {17}是不是表示这个方程无解?
2020年06月25日 09点06分
w=794,应该可以求出来
2020年06月25日 09点06分
@喝柠檬汁的女孩 你的参数里用了形如 0.35 的小数,这种数的精度是MachinePrecision ,在 Mathematica 的舍入运算里这种精度默认最低。要避免这个问题,别用小数,全用分数,是最简单的方法。
2020年07月04日 02点07分
吧务
level 15
联动:https://zhidao.baidu.com/question/1697607140789280588.html
该说的都在那边说了。
2020年07月04日 02点07分 7
1