New answers tagged syntax
3
You mean something like:
Subscript[1, ##] & @@@ R
and:
MapThread[
Subsuperscript[1, Row[#1, ","], #2]&,
{
R,
Join[
ConstantArray["a", Length[R]/2],
ConstantArray["b", Length[R]/2]
]
}
]
?
Edit
If you want parentheses around the subscripts, you can use:
Subsuperscript[1, Row[{"(", Row[#1, &...
3
Solve[{DCp1total == WA1*DCpA0 + WB1*DCpB0,
DCp2total == WA2*DCpA0 + WB2*DCpB0, WA1 + WB1 == 1, WA2 + WB2 == 1,
DCp1total == 0.6, DCp2total == 0.3, DCpA0 == 0.5, DCpB0 == 0.4}]
{{WA1 -> 2., WA2 -> -1., WB1 -> -1., WB2 -> 2.}}
5
For the revised problem statement:
DCp1Total = 3/5;
DCp2Total = 3/10;
DCpA0 = 1/2;
DCpB0 = 2/5;
eq[1] = DCp1Total == WA1*DCpA0 + WB1*DCpB0 // Simplify;
eq[2] = DCp2Total == WA2*DCpA0 + WB2*DCpB0 // Simplify;
eq[3] = WA1 + WB1 == 1;
eq[4] = WA2 + WB2 == 1;
min = Minimize[Total[(Subtract @@@ (eq /@ Range[4]))^2], {WA1, WA2, WB1, WB2}]
(* {0, {WA1 -> 2, ...
6
There is no solution. But you can use least squares approximation
ps. do not use _ in variable names in Mathematica as _ is meant be used for pattern and you will get in trouble if you do that.
(*from clean kernel*)
DCpA0 = 1/2;
DCpB0 = 4/10;
WA0 = 7/10;
WB0 = 3/10;
DCp1Total = 6/10;
DCp2Total = 3/10;
eq1 = DCp1Total == WA1*DCpA0 + WB1*DCpB0;
eq2 = ...
2
The scoping construct is only relevant in so far as it groups the code into a singly parsed block. Hence, the same "unexpected" behaviour results from any type of grouping
(Aaa`Test[x_] := x + 1;
context = "Aaa`";
PrependTo[$ContextPath, context];
Context@Test
)
(* "Global`" *)
Hence, the WL possesses a parsing/evaluation ...
1
It looks like the definitions for NonCommutativeMultiply don't make it to the parallel kernels. You can test this as follows:
CloseKernels[];
Unprotect[NonCommutativeMultiply];
NonCommutativeMultiply[args___] := f[args];
Protect[NonCommutativeMultiply];
Quiet @ LaunchKernels[];
DistributeDefinitions[NonCommutativeMultiply];
ParallelEvaluate[Hold[Evaluate[3 **...
2
NHoldAll is designed for this.
ClearAll[b];
SetAttributes[b, NHoldAll];
x = (Sqrt[3/(2 (1 + Sqrt[11]/4))] b[0, π/3] -
(1 + Sqrt[7/3]) b[(2 π)/3, (2 π)/3]) /
(4 Sqrt[2] 7^(1/4) Sqrt[1 + Sqrt[7]/4]);
N[x]
(*
0.0843157 (0.905566 b[0, π/3] -
2.52753 b[(2 π)/3, (2 π)/3])
*)
There are also NHoldFirst and NHoldRest.
0
What worked better than Expand for x consisting of a large number of terms like the ones above is:
rules = {Sqrt[a_] :> N[Sqrt[a]], a_/b_ :> N[a/b] /; Mod[a, π] != 0,
Power[x_, y_] :> N[x^y]};
Sorry I couldn't post a specific example for x as it consists of more than 20 terms added.
1
As simple as
Collect[x, _b, N]
3
Clear["Global`*"]
Without a representative example, I cannot tell how the timing compares with using Expand
x = (Sqrt[3/(2 (1 + Sqrt[11]/4))] b[
0, π/3] - (1 + Sqrt[7/3]) b[(2 π)/3, (2 π)/3])/(4 Sqrt[
2] 7^(1/4) Sqrt[1 + Sqrt[7]/4]);
var = Cases[x, b[__], Infinity];
x2 = Total[Chop[N[CoefficientList[x, var]]] . var]
(* 0.0763535 b[...
1
NO[Times[x__, y_NonCommutativeMultiply, z___]] := x z NO[y]
NO[Times[x___, y_NonCommutativeMultiply, z__]] := x z NO[y]
should do the trick in all situations:
Depending of the canonical ordering of Times it might not be necessary to include both versions but better save then sorry.
1
You can use a Piecewise definition as well:
Clear[f]
f[x_, y_] :=
Piecewise[
{{1/(Sin[x] + Sin[y]), Mod[x, Pi] != 0 || Mod[y, Pi] != 0}},
0
]
f[2, 3.] (* 0.952002 *)
f[Pi, 3 Pi] (* 0 *)
f[2, 10 Pi] (* Csc[2] *)
f[Pi, 2 Pi] (* 0 *)
Here I made the default value $0$ explicit for future code readability, but ...
2
f[x_, y_] := 0 /; Mod[x, π] == 0 && Mod[y, π] == 0
does the trick. Just figured it.
Any comments are most welcome.
4
If you only need y'[end] as a result modify the ParametricNDSolve to
ysend = ParametricNDSolveValue[{m y''[t] ==n[t] - m g, φ''[t] == (n[t] l Sin[φ[t]] +m x''[t] l Cos[φ[t]])/i,
x''[t] == If[(x[t] - l*φ[t] == 0) // Evaluate,l (φ''[t] Cos[φ[t]] - φ'[t]^2 Sin[φ[t]]) // Evaluate, μk*n[t]/m// Evaluate],
y[0] == l*Cos[f],y'[0] == -2.9, φ[0] == f, φ'[0] == h,x[0]...
Top 50 recent answers are included
Related Tags
syntax × 797functions × 75
list-manipulation × 59
function-construction × 58
plotting × 52
programming × 39
calculus-and-analysis × 37
differential-equations × 32
equation-solving × 32
evaluation × 32
core-language × 27
warning-messages × 22
numerical-integration × 21
matrix × 18
symbolic × 18
replacement × 16
expression-manipulation × 16
symbols × 16
custom-notation × 16
operators × 15
pattern-matching × 14
variable-definitions × 14
functional-style × 13
simplifying-expressions × 12
mathematical-optimization × 12