用findroot求解,其中有一个参数输出的值总是等于初始值.
mathematica吧
全部回复
仅看楼主
level 2
In[7495]:= FindRoot[{0.` - 354.99999999999994` Subscript[ry, 1] -
354.99999999999994` Subscript[ry, 2] -
354.99999999999994` Subscript[rz, 1] -
354.99999999999994` Subscript[rz, 10] +
7.241999999999999`*^6 Subscript[tx, 1] -
70999.99999999999` Subscript[tx, 2] -
70999.99999999999` Subscript[tx, 10] == 1,
0.` + 354.99999999999994` Subscript[rx, 1] +
354.99999999999994` Subscript[rx, 2] +
354.99999999999994` Subscript[rz, 1] +
7.241999999999999`*^6 Subscript[ty, 1] -
70999.99999999999` Subscript[ty, 2] -
7.099999999999999`*^6 Subscript[ty, 10] == 0,
0.` + 354.99999999999994` Subscript[rx, 1] +
354.99999999999994` Subscript[rx, 10] -
354.99999999999994` Subscript[ry, 1] +
7.241999999999999`*^6 Subscript[tz, 1] -
7.099999999999999`*^6 Subscript[tz, 2] -
70999.99999999999` Subscript[tz, 10] == 0,
0.` + 5.1
18371794871
795` Subscript[rx, 1] +
1.
18333333333
33333` Subscript[rx, 2] +
1.
18333333333
33333` Subscript[rx, 10] +
354.99999999999994` Subscript[ty, 1] -
354.99999999999994` Subscript[ty, 2] +
354.99999999999994` Subscript[tz, 1] -
354.99999999999994` Subscript[tz, 10] == 0,
0.` + 5.1
18371794871
795` Subscript[ry, 1] +
1.
18333333333
33333` Subscript[ry, 2] -
0.38503846153846155` Subscript[ry, 10] -
354.99999999999994` Subscript[tx, 1] +
354.99999999999994` Subscript[tx, 2] -
354.99999999999994` Subscript[tz, 1] == 0,
0.` + 5.1
18371794871
795` Subscript[rz, 1] -
0.38503846153846155` Subscript[rz, 2] +
1.
18333333333
33333` Subscript[rz, 10] -
354.99999999999994` Subscript[tx, 1] +
354.99999999999994` Subscript[tx, 10] +
354.99999999999994` Subscript[ty, 1] == 0,
0.` + 354.99999999999994` Subscript[ry, 1] +
354.99999999999994` Subscript[ry, 2] -
354.99999999999994` Subscript[rz, 2] -
354.99999999999994` Subscript[rz, 11] -
70999.99999999999` Subscript[tx, 1] +
7.241999999999999`*^6 Subscript[tx, 2] -
70999.99999999999` Subscript[tx, 11] == 0,
0.` - 354.99999999999994` Subscript[rx, 1] -
354.99999999999994` Subscript[rx, 2] +
354.99999999999994` Subscript[rz, 2] -
70999.99999999999` Subscript[ty, 1] +
7.241999999999999`*^6 Subscript[ty, 2] -
7.099999999999999`*^6 Subscript[ty, 11] == 0,
0.` + 354.99999999999994` Subscript[rx, 2] +
354.99999999999994` Subscript[rx, 11] -
354.99999999999994` Subscript[ry, 2] -
7.099999999999999`*^6 Subscript[tz, 1] +
7.241999999999999`*^6 Subscript[tz, 2] -
70999.99999999999` Subscript[tz, 11] == 0,
0.` + 1.
18333333333
33333` Subscript[rx, 1] +
5.1
18371794871
795` Subscript[rx, 2] +
1.
18333333333
33333` Subscript[rx, 11] +
354.99999999999994` Subscript[ty, 1] -
354.99999999999994` Subscript[ty, 2] +
354.99999999999994` Subscript[tz, 2] -
354.99999999999994` Subscript[tz, 11] == 0,
0.` + 1.
18333333333
33333` Subscript[ry, 1] +
5.1
18371794871
795` Subscript[ry, 2] -
0.38503846153846155` Subscript[ry, 11] -
354.99999999999994` Subscript[tx, 1] +
354.99999999999994` Subscript[tx, 2] -
354.99999999999994` Subscript[tz, 2] == 0,
0.` - 0.38503846153846155` Subscript[rz, 1] +
5.1
18371794871
795` Subscript[rz, 2] +
1.
18333333333
33333` Subscript[rz, 11] -
354.99999999999994` Subscript[tx, 2] +
354.99999999999994` Subscript[tx, 11] +
354.99999999999994` Subscript[ty, 2] == 0,
0.` - 354.99999999999994` Subscript[ry, 11] +
354.99999999999994` Subscript[rz, 1] -
70999.99999999999` Subscript[tx, 1] +
5.048099999999998`*^9 Subscript[tx, 10] -
70999.99999999999` Subscript[tx, 11] == 0,
0.` + 354.99999999999994` Subscript[rx, 11] +
354.99999999999994` Subscript[rz, 10] -
7.099999999999999`*^6 Subscript[ty, 1] +
5.041000709999998`*^11 Subscript[ty, 10] -
70999.99999999999` Subscript[ty, 11] == 0,
0.` - 354.99999999999994` Subscript[rx, 1] -
354.99999999999994` Subscript[ry, 10] -
70999.99999999999` Subscript[tz, 1] +
5.041000709999998`*^11 Subscript[tz, 10] -
7.099999999999999`*^6 Subscript[tz, 11] == 0,
0.` + 1.
18333333333
33333` Subscript[rx, 1] +
5.986149572649572` Subscript[rx, 10] +
1.
18333333333
33333` Subscript[rx, 11] -
354.99999999999994` Subscript[ty, 11] +
354.99999999999994` Subscript[tz, 1] == 0,
0.` - 0.38503846153846155` Subscript[ry, 1] +
3.277924358974359` Subscript[ry, 10] +
1.
18333333333
33333` Subscript[ry, 11] +
354.99999999999994` Subscript[tx, 11] -
354.99999999999994` Subscript[tz, 10] == 0,
0.` + 1.
18333333333
33333` Subscript[rz, 1] +
3.277924358974359` Subscript[rz, 10] -
0.38503846153846155` Subscript[rz, 11] -
354.99999999999994` Subscript[tx, 1] +
354.99999999999994` Subscript[ty, 10] == 0,
0.` + 354.99999999999994` Subscript[ry, 10] +
354.99999999999994` Subscript[ry, 11] +
354.99999999999994` Subscript[rz, 2] +
354.99999999999994` Subscript[rz, 11] -
70999.99999999999` Subscript[tx, 2] -
70999.99999999999` Subscript[tx, 10] +
7.241999999999999`*^6 Subscript[tx, 11] == 0,
0.` - 354.99999999999994` Subscript[rx, 10] -
354.99999999999994` Subscript[rx, 11] +
354.99999999999994` Subscript[rz, 11] -
7.099999999999999`*^6 Subscript[ty, 2] -
70999.99999999999` Subscript[ty, 10] +
7.241999999999999`*^6 Subscript[ty, 11] == 0,
0.` - 354.99999999999994` Subscript[rx, 2] -
354.99999999999994` Subscript[rx, 11] -
354.99999999999994` Subscript[ry, 11] -
70999.99999999999` Subscript[tz, 2] -
7.099999999999999`*^6 Subscript[tz, 10] +
7.241999999999999`*^6 Subscript[tz, 11] == 0,
0.` + 1.
18333333333
33333` Subscript[rx, 2] +
1.
18333333333
33333` Subscript[rx, 10] +
5.1
18371794871
795` Subscript[rx, 11] +
354.99999999999994` Subscript[ty, 10] -
354.99999999999994` Subscript[ty, 11] +
354.99999999999994` Subscript[tz, 2] -
354.99999999999994` Subscript[tz, 11] == 0,
0.` - 0.38503846153846155` Subscript[ry, 2] +
1.
18333333333
33333` Subscript[ry, 10] +
5.1
18371794871
795` Subscript[ry, 11] -
354.99999999999994` Subscript[tx, 10] +
354.99999999999994` Subscript[tx, 11] -
354.99999999999994` Subscript[tz, 11] == 0,
0.` + 1.
18333333333
33333` Subscript[rz, 2] -
0.38503846153846155` Subscript[rz, 10] +
5.1
18371794871
795` Subscript[rz, 11] -
354.99999999999994` Subscript[tx, 2] +
354.99999999999994` Subscript[tx, 11] +
354.99999999999994` Subscript[ty, 11] == 0}, {{Subscript[tx, 1],
0}, {Subscript[ty, 1], 0}, {Subscript[tz, 1], 0}, {Subscript[rx,
1], 0}, {Subscript[ry, 1], 0}, {Subscript[rz, 1], 0}, {Subscript[
tx, 2], 0}, {Subscript[ty, 2], 0}, {Subscript[tz, 2],
0}, {Subscript[rx, 2], 0}, {Subscript[ry, 2], 0}, {Subscript[rz,
2], 0}, {Subscript[tx, 10], 0}, {Subscript[ty, 10], 0}, {Subscript[
tz, 10], 0}, {Subscript[rx, 10], 0}, {Subscript[ry, 10],
0}, {Subscript[rz, 10], 0}, {Subscript[tx, 11], 0}, {Subscript[ty,
11], 0}, {Subscript[tz, 11], 0}, {Subscript[rx, 11],
0}, {Subscript[ry, 11], 0}, {Subscript[rz, 11], 0}}]
Out[7495]= {0 -> 1.40039*10^-7, Subscript[ty, 1] -> -2.44378*10^-10,
Subscript[tz, 1] -> 3.75161*10^-8,
Subscript[rx, 1] -> -2.65259*10^-6, Subscript[ry, 1] -> 0.0000100417,
Subscript[rz, 1] -> 6.83927*10^-6, 0 -> 5.42568*10^-10,
Subscript[ty, 2] -> -1.64248*10^-8,
Subscript[tz, 2] -> 3.75242*10^-8,
Subscript[rx, 2] -> -2.48661*10^-6,
Subscript[ry, 2] -> 9.99723*10^-6, Subscript[rz, 2] -> 1.27463*10^-6,
Subscript[tx, 10] -> 1.5238*10^-12,
Subscript[ty, 10] -> -1.29788*10^-14,
Subscript[tz, 10] -> 6.12921*10^-15,
Subscript[rx, 10] -> -2.1489*10^-6,
Subscript[ry, 10] -> 1.00724*10^-6, Subscript[rz, 10] -> 0.000012917,
Subscript[tx, 11] -> -2.24884*10^-10,
Subscript[ty, 11] -> -1.64302*10^-8,
Subscript[tz, 11] -> 1.4228*10^-10,
Subscript[rx, 11] -> -2.6606*10^-6,
Subscript[ry, 11] -> 5.44763*10^-7,
Subscript[rz, 11] -> 1.86981*10^-6}
2021年05月27日 14点05分 1
吧务
level 10
方程的零点可能有无穷个,与x=xinit有一个交点很正常。
2021年05月27日 15点05分 2
能帮忙说的详细点么,怎么解决这个问题
2021年05月28日 03点05分
@外服第一刘能 很可能没有问题需要解决。你验证FindRoot的结果是否是零点了吗?
2021年05月28日 07点05分
@asdasd1dsadsa 不是这个问题 ,可能我描述的有点问题 是输出结果应该是x1等于值,现在是0等于值 (看输出结果的第一个输出)
2021年05月31日 02点05分
@外服第一刘能 说明Subscript表达式有值。用Clear清楚定义。
2021年05月31日 07点05分
吧务
level 15
你一个线性方程组用FindRoot干嘛,用Solve,或者CoefficientArrays加LinearSolve啊。
你的下一个问题的答案大概是 WorkingPrecision-> 32 加 SetPrecision。
2021年06月05日 02点06分 3
linearsolve 求解提示病态所以想换个函数试试
2021年06月21日 11点06分
1