wneuper@344
|
1 |
(* tests on biegelinie
|
wneuper@383
|
2 |
author: Walther Neuper 050826
|
wneuper@344
|
3 |
(c) due to copyright terms
|
wneuper@344
|
4 |
|
wneuper@358
|
5 |
use"../smltest/IsacKnowledge/biegelinie.sml";
|
wneuper@383
|
6 |
use"biegelinie.sml";
|
wneuper@344
|
7 |
*)
|
wneuper@344
|
8 |
val thy = Biegelinie.thy;
|
wneuper@344
|
9 |
|
wneuper@344
|
10 |
"-----------------------------------------------------------------";
|
wneuper@344
|
11 |
"table of contents -----------------------------------------------";
|
wneuper@344
|
12 |
"-----------------------------------------------------------------";
|
wneuper@344
|
13 |
"----------- the rules -------------------------------------------";
|
wneuper@352
|
14 |
"----------- Script [IntegrierenUndKonstanteBestimmen] -----------";
|
wneuper@448
|
15 |
"----------- IntegrierenUndKonstanteBestimmen by rewriting -------";
|
wneuper@392
|
16 |
"----------- simplify_leaf for this script -----------------------";
|
wneuper@458
|
17 |
"----------- Bsp 7.27 me -----------------------------------------";
|
wneuper@458
|
18 |
"----------- Bsp 7.27 autoCalculate ------------------------------";
|
wneuper@656
|
19 |
"----------- SubProblem (_,[vonBelastungZu,Biegelinien] ----------";
|
wneuper@638
|
20 |
"----------- SubProblem (_,[setzeRandbedingungen,Biegelinien] ----";
|
wneuper@641
|
21 |
"----------- method [Biegelinien,setzeRandbedingungenEin] + exec -";
|
wneuper@636
|
22 |
"----------- IntegrierenUndKonstanteBestimmen2 -------------------";
|
wneuper@656
|
23 |
"----------- investigate normalforms in biegelinien --------------";
|
wneuper@344
|
24 |
"-----------------------------------------------------------------";
|
wneuper@344
|
25 |
"-----------------------------------------------------------------";
|
wneuper@344
|
26 |
"-----------------------------------------------------------------";
|
wneuper@344
|
27 |
|
wneuper@344
|
28 |
|
wneuper@344
|
29 |
"----------- the rules -------------------------------------------";
|
wneuper@344
|
30 |
"----------- the rules -------------------------------------------";
|
wneuper@344
|
31 |
"----------- the rules -------------------------------------------";
|
wneuper@344
|
32 |
fun str2t str = (term_of o the o (parse Biegelinie.thy)) str;
|
wneuper@344
|
33 |
fun term2s t = Sign.string_of_term (sign_of Biegelinie.thy) t;
|
wneuper@344
|
34 |
fun rewrit thm str =
|
wneuper@344
|
35 |
fst (the (rewrite_ Biegelinie.thy tless_true e_rls true thm str));
|
wneuper@344
|
36 |
|
wneuper@344
|
37 |
val t = rewrit Belastung_Querkraft (str2t "- q x = - q_0"); term2s t;
|
wneuper@344
|
38 |
if term2s t = "Q' x = - q_0" then ()
|
wneuper@344
|
39 |
else raise error "/biegelinie.sml: Belastung_Querkraft";
|
wneuper@344
|
40 |
|
wneuper@344
|
41 |
val t = rewrit Querkraft_Moment (str2t "Q x = - q_0 * x + c"); term2s t;
|
wneuper@344
|
42 |
if term2s t = "M_b' x = - q_0 * x + c" then ()
|
wneuper@344
|
43 |
else raise error "/biegelinie.sml: Querkraft_Moment";
|
wneuper@344
|
44 |
|
wneuper@448
|
45 |
val t = rewrit Moment_Neigung (str2t "M_b x = -q_0 * x^^^2/2 + q_0/2 *L*x");
|
wneuper@344
|
46 |
term2s t;
|
wneuper@457
|
47 |
if term2s t = "- EI * y'' x = - q_0 * x ^^^ 2 / 2 + q_0 / 2 * L * x" then ()
|
wneuper@448
|
48 |
else raise error "biegelinie.sml: Moment_Neigung";
|
wneuper@352
|
49 |
|
wneuper@352
|
50 |
|
wneuper@352
|
51 |
"----------- Script [IntegrierenUndKonstanteBestimmen] -----------";
|
wneuper@352
|
52 |
"----------- Script [IntegrierenUndKonstanteBestimmen] -----------";
|
wneuper@352
|
53 |
"----------- Script [IntegrierenUndKonstanteBestimmen] -----------";
|
wneuper@457
|
54 |
val str =
|
wneuper@448
|
55 |
"Script BiegelinieScript \
|
wneuper@448
|
56 |
\(l_::real) (q_::real) (v_::real) (b_::real=>real) \
|
wneuper@448
|
57 |
\(rb_::bool list) (rm_::bool list) = \
|
wneuper@448
|
58 |
\ (let q__ = Take (q v_ = q_); \
|
wneuper@448
|
59 |
\ q__ = ((Rewrite sym_real_minus_eq_cancel True) @@ \
|
wneuper@448
|
60 |
\ (Rewrite Belastung_Querkraft True)) q__; \
|
wneuper@448
|
61 |
\ (Q__:: bool) = \
|
wneuper@448
|
62 |
\ (SubProblem (Biegelinie_,[named,integrate,function], \
|
wneuper@448
|
63 |
\ [Diff,integration,named]) \
|
wneuper@448
|
64 |
\ [real_ (rhs q__), real_ v_, real_real_ Q]); \
|
wneuper@448
|
65 |
\ Q__ = Rewrite Querkraft_Moment True Q__; \
|
wneuper@448
|
66 |
\ (M__::bool) = \
|
wneuper@448
|
67 |
\ (SubProblem (Biegelinie_,[named,integrate,function], \
|
wneuper@448
|
68 |
\ [Diff,integration,named]) \
|
wneuper@448
|
69 |
\ [real_ (rhs Q__), real_ v_, real_real_ M_b]); \
|
wneuper@448
|
70 |
\ e1__ = nth_ 1 rm_; \
|
wneuper@448
|
71 |
\ (x1__::real) = argument_in (lhs e1__); \
|
wneuper@448
|
72 |
\ (M1__::bool) = (Substitute [v_ = x1__]) M__; \
|
wneuper@448
|
73 |
\ M1__ = (Substitute [e1__]) M1__ ; \
|
wneuper@448
|
74 |
\ M2__ = Take M__; "^
|
wneuper@448
|
75 |
(*without this Take 'Substitute [v_ = x2__]' takes _last formula from ctree_*)
|
wneuper@448
|
76 |
" e2__ = nth_ 2 rm_; \
|
wneuper@448
|
77 |
\ (x2__::real) = argument_in (lhs e2__); \
|
wneuper@448
|
78 |
\ (M2__::bool) = ((Substitute [v_ = x2__]) @@ \
|
wneuper@448
|
79 |
\ (Substitute [e2__])) M2__; \
|
wneuper@448
|
80 |
\ (c_1_2__::bool list) = \
|
wneuper@448
|
81 |
\ (SubProblem (Biegelinie_,[linear,system],[no_met]) \
|
wneuper@448
|
82 |
\ [booll_ [M1__, M2__], reall [c,c_2]]); \
|
wneuper@448
|
83 |
\ M__ = Take M__; \
|
wneuper@448
|
84 |
\ M__ = ((Substitute c_1_2__) @@ \
|
wneuper@457
|
85 |
\ (Try (Rewrite_Set_Inst [(bdv_1, c),(bdv_2, c_2)]\
|
wneuper@457
|
86 |
\ simplify_System False)) @@ \
|
wneuper@457
|
87 |
\ (Rewrite Moment_Neigung False) @@ \
|
wneuper@457
|
88 |
\ (Rewrite make_fun_explicit False)) M__; "^
|
wneuper@448
|
89 |
(*----------------------- and the same once more ------------------------*)
|
wneuper@448
|
90 |
" (N__:: bool) = \
|
wneuper@448
|
91 |
\ (SubProblem (Biegelinie_,[named,integrate,function], \
|
wneuper@448
|
92 |
\ [Diff,integration,named]) \
|
wneuper@457
|
93 |
\ [real_ (rhs M__), real_ v_, real_real_ y']); \
|
wneuper@457
|
94 |
\ (B__:: bool) = \
|
wneuper@448
|
95 |
\ (SubProblem (Biegelinie_,[named,integrate,function], \
|
wneuper@448
|
96 |
\ [Diff,integration,named]) \
|
wneuper@457
|
97 |
\ [real_ (rhs N__), real_ v_, real_real_ y]); \
|
wneuper@457
|
98 |
\ e1__ = nth_ 1 rb_; \
|
wneuper@448
|
99 |
\ (x1__::real) = argument_in (lhs e1__); \
|
wneuper@457
|
100 |
\ (B1__::bool) = (Substitute [v_ = x1__]) B__; \
|
wneuper@457
|
101 |
\ B1__ = (Substitute [e1__]) B1__ ; \
|
wneuper@457
|
102 |
\ B2__ = Take B__; \
|
wneuper@457
|
103 |
\ e2__ = nth_ 2 rb_; \
|
wneuper@448
|
104 |
\ (x2__::real) = argument_in (lhs e2__); \
|
wneuper@457
|
105 |
\ (B2__::bool) = ((Substitute [v_ = x2__]) @@ \
|
wneuper@457
|
106 |
\ (Substitute [e2__])) B2__; \
|
wneuper@448
|
107 |
\ (c_1_2__::bool list) = \
|
wneuper@448
|
108 |
\ (SubProblem (Biegelinie_,[linear,system],[no_met]) \
|
wneuper@457
|
109 |
\ [booll_ [B1__, B2__], reall [c,c_2]]); \
|
wneuper@457
|
110 |
\ B__ = Take B__; \
|
wneuper@457
|
111 |
\ B__ = ((Substitute c_1_2__) @@ \
|
wneuper@457
|
112 |
\ (Rewrite_Set_Inst [(bdv, x)] make_ratpoly_in False)) B__ \
|
wneuper@457
|
113 |
\ in B__)"
|
wneuper@448
|
114 |
;
|
wneuper@448
|
115 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@448
|
116 |
(*---^^^-OK-----------------------------------------------------------------*)
|
wneuper@457
|
117 |
(*---vvv-NOTok--------------------------------------------------------------*)
|
wneuper@365
|
118 |
atomty sc;
|
wneuper@383
|
119 |
atomt sc;
|
wneuper@354
|
120 |
|
wneuper@448
|
121 |
(* use"../smltest/IsacKnowledge/biegelinie.sml";
|
wneuper@448
|
122 |
*)
|
wneuper@378
|
123 |
|
wneuper@448
|
124 |
"----------- IntegrierenUndKonstanteBestimmen by rewriting -------";
|
wneuper@448
|
125 |
"----------- IntegrierenUndKonstanteBestimmen by rewriting -------";
|
wneuper@448
|
126 |
"----------- IntegrierenUndKonstanteBestimmen by rewriting -------";
|
wneuper@448
|
127 |
val t = str2t "M_b x = L * q_0 * x / 2 + -1 * q_0 * x ^^^ 2 / 2";
|
wneuper@448
|
128 |
val t = rewrit Moment_Neigung t; term2s t;
|
wneuper@448
|
129 |
(*was "EI * ?y'' x = L * q_0 * x / 2 + -1 * q_0 * x ^^^ 2 / 2"
|
wneuper@448
|
130 |
### before declaring "y''" as a constant *)
|
wneuper@448
|
131 |
val t = rewrit make_fun_explicit t; term2s t;
|
wneuper@448
|
132 |
|
wneuper@352
|
133 |
|
wneuper@392
|
134 |
"----------- simplify_leaf for this script -----------------------";
|
wneuper@392
|
135 |
"----------- simplify_leaf for this script -----------------------";
|
wneuper@392
|
136 |
"----------- simplify_leaf for this script -----------------------";
|
wneuper@392
|
137 |
val rm_ = str2term"[M_b 0 = 0, M_b L = 0]";
|
wneuper@392
|
138 |
val M__ = str2term"M_b x = -1 * x ^^^ 2 / 2 + x * c + c_2";
|
wneuper@392
|
139 |
val Some (e1__,_) =
|
wneuper@392
|
140 |
rewrite_set_ thy false srls
|
wneuper@392
|
141 |
(str2term"(nth_::[real,bool list]=>bool) 1 " $ rm_);
|
wneuper@392
|
142 |
if term2str e1__ = "M_b 0 = 0" then ()
|
wneuper@392
|
143 |
else raise error "biegelinie.sml simplify nth_ 1 rm_";
|
wneuper@392
|
144 |
|
wneuper@392
|
145 |
val Some (x1__,_) =
|
wneuper@392
|
146 |
rewrite_set_ thy false srls
|
wneuper@392
|
147 |
(str2term"argument_in (lhs (M_b 0 = 0))");
|
wneuper@392
|
148 |
if term2str x1__ = "0" then ()
|
wneuper@392
|
149 |
else raise error "biegelinie.sml simplify argument_in (lhs (M_b 0 = 0)";
|
wneuper@392
|
150 |
|
wneuper@392
|
151 |
trace_rewrite:=true;
|
wneuper@392
|
152 |
trace_rewrite:=false;
|
wneuper@392
|
153 |
|
wneuper@392
|
154 |
|
wneuper@392
|
155 |
|
wneuper@458
|
156 |
"----------- Bsp 7.27 me -----------------------------------------";
|
wneuper@458
|
157 |
"----------- Bsp 7.27 me -----------------------------------------";
|
wneuper@458
|
158 |
"----------- Bsp 7.27 me -----------------------------------------";
|
wneuper@356
|
159 |
val fmz = ["Traegerlaenge L","Streckenlast q_0","Biegelinie y",
|
wneuper@352
|
160 |
"RandbedingungenBiegung [y 0 = 0, y L = 0]",
|
wneuper@356
|
161 |
"RandbedingungenMoment [M_b 0 = 0, M_b L = 0]",
|
wneuper@356
|
162 |
"FunktionsVariable x"];
|
wneuper@352
|
163 |
val (dI',pI',mI') =
|
wneuper@511
|
164 |
("Biegelinie.thy",["MomentBestimmte","Biegelinien"],
|
wneuper@352
|
165 |
["IntegrierenUndKonstanteBestimmen"]);
|
wneuper@359
|
166 |
val p = e_pos'; val c = [];
|
wneuper@352
|
167 |
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
|
wneuper@378
|
168 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@378
|
169 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@378
|
170 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@378
|
171 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@378
|
172 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@457
|
173 |
|
wneuper@356
|
174 |
val pits = get_obj g_pbl pt (fst p);writeln (itms2str thy pits);
|
wneuper@360
|
175 |
(*if itms2str thy pits = ... all 5 model-items*)
|
wneuper@356
|
176 |
val mits = get_obj g_met pt (fst p); writeln (itms2str thy mits);
|
wneuper@356
|
177 |
if itms2str thy mits = "[]" then ()
|
wneuper@356
|
178 |
else raise error "biegelinie.sml: Bsp 7.27 #2";
|
wneuper@457
|
179 |
|
wneuper@457
|
180 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@356
|
181 |
case nxt of (_,Add_Given "FunktionsVariable x") => ()
|
wneuper@378
|
182 |
| _ => raise error "biegelinie.sml: Bsp 7.27 #4a";
|
wneuper@457
|
183 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@356
|
184 |
val mits = get_obj g_met pt (fst p);writeln (itms2str thy mits);
|
wneuper@360
|
185 |
(*if itms2str thy mits = ... all 6 guard-items*)
|
wneuper@378
|
186 |
case nxt of (_, Apply_Method ["IntegrierenUndKonstanteBestimmen"]) => ()
|
wneuper@378
|
187 |
| _ => raise error "biegelinie.sml: Bsp 7.27 #4b";
|
wneuper@360
|
188 |
|
wneuper@378
|
189 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@464
|
190 |
case pt of Nd (PblObj _, [Nd _]) => ((*Apply_Method + Take*))
|
wneuper@464
|
191 |
| _ => raise error "biegelinie.sml: Bsp 7.27 #4c";
|
wneuper@378
|
192 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@360
|
193 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@360
|
194 |
|
wneuper@457
|
195 |
case nxt of
|
wneuper@457
|
196 |
(_,Subproblem ("Biegelinie.thy", ["named", "integrate", "function"])) => ()
|
wneuper@457
|
197 |
| _ => raise error "biegelinie.sml: Bsp 7.27 #4c";
|
wneuper@378
|
198 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@378
|
199 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@378
|
200 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@378
|
201 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@370
|
202 |
case nxt of (_, Apply_Method ["Diff", "integration", "named"]) => ()
|
wneuper@370
|
203 |
| _ => raise error "biegelinie.sml: Bsp 7.27 #5";
|
wneuper@378
|
204 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@457
|
205 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@457
|
206 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@457
|
207 |
case nxt of
|
wneuper@457
|
208 |
("Check_Postcond", Check_Postcond ["named", "integrate", "function"]) => ()
|
wneuper@457
|
209 |
| _ => raise error "biegelinie.sml: Bsp 7.27 #5a";
|
wneuper@370
|
210 |
|
wneuper@375
|
211 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@457
|
212 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@457
|
213 |
case nxt of
|
wneuper@457
|
214 |
(_, Subproblem ("Biegelinie.thy", ["named", "integrate", "function"]))=>()
|
wneuper@457
|
215 |
| _ => raise error "biegelinie.sml: Bsp 7.27 #5b";
|
wneuper@457
|
216 |
|
wneuper@378
|
217 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@378
|
218 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@378
|
219 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@378
|
220 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@378
|
221 |
case nxt of (_, Apply_Method ["Diff", "integration","named"]) => ()
|
wneuper@378
|
222 |
| _ => raise error "biegelinie.sml: Bsp 7.27 #6";
|
wneuper@397
|
223 |
|
wneuper@392
|
224 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@392
|
225 |
val (p,_,f,nxt,_,pt) = me nxt p c pt(*nxt = Check_Postcond ["named", "int..*);
|
wneuper@448
|
226 |
f2str f;
|
wneuper@375
|
227 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@392
|
228 |
case nxt of (_, Substitute ["x = 0"]) => ()
|
wneuper@392
|
229 |
| _ => raise error "biegelinie.sml: Bsp 7.27 #7";
|
wneuper@448
|
230 |
|
wneuper@392
|
231 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@392
|
232 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@451
|
233 |
if f2str f = "0 = c_2 + c * 0 + -1 * q_0 / 2 * 0 ^^^ 2" then ()
|
wneuper@392
|
234 |
else raise error "biegelinie.sml: Bsp 7.27 #8";
|
wneuper@392
|
235 |
|
wneuper@397
|
236 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@397
|
237 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@397
|
238 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@451
|
239 |
if f2str f = "0 = c_2 + c * L + -1 * q_0 / 2 * L ^^^ 2" then ()
|
wneuper@401
|
240 |
else raise error "biegelinie.sml: Bsp 7.27 #9";
|
wneuper@401
|
241 |
|
wneuper@448
|
242 |
(*val nxt = (+, Subproblem ("Biegelinie.thy", ["normalize", ..lin..sys]))*)
|
wneuper@448
|
243 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@448
|
244 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@448
|
245 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@448
|
246 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@448
|
247 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@448
|
248 |
case nxt of (_, Apply_Method ["EqSystem", "normalize", "2x2"]) => ()
|
wneuper@448
|
249 |
| _ => raise error "biegelinie.sml: Bsp 7.27 #10";
|
wneuper@401
|
250 |
|
wneuper@448
|
251 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@448
|
252 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@448
|
253 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@448
|
254 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@448
|
255 |
(*val nxt = Subproblem ["triangular", "2x2", "linear", "system"]*)
|
wneuper@448
|
256 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@448
|
257 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@448
|
258 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@448
|
259 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@457
|
260 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@448
|
261 |
case nxt of (_, Apply_Method["EqSystem", "top_down_substitution", "2x2"]) => ()
|
wneuper@448
|
262 |
| _ => raise error "biegelinie.sml: Bsp 7.27 #11";
|
wneuper@448
|
263 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@448
|
264 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@448
|
265 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@448
|
266 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@448
|
267 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@448
|
268 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@448
|
269 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@448
|
270 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@448
|
271 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@448
|
272 |
case nxt of (_, Check_Postcond ["normalize", "2x2", "linear", "system"]) => ()
|
wneuper@448
|
273 |
| _ => raise error "biegelinie.sml: Bsp 7.27 #12";
|
wneuper@448
|
274 |
|
wneuper@448
|
275 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@448
|
276 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@448
|
277 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@448
|
278 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@448
|
279 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@448
|
280 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@457
|
281 |
case nxt of
|
wneuper@457
|
282 |
(_, Subproblem ("Biegelinie.thy", ["named", "integrate", "function"]))=>()
|
wneuper@457
|
283 |
| _ => raise error "biegelinie.sml: Bsp 7.27 #13";
|
wneuper@448
|
284 |
|
wneuper@448
|
285 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@448
|
286 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@448
|
287 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@448
|
288 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@448
|
289 |
case nxt of (_, Apply_Method ["Diff", "integration", "named"]) => ()
|
wneuper@457
|
290 |
| _ => raise error "biegelinie.sml: Bsp 7.27 #14";
|
wneuper@448
|
291 |
|
wneuper@448
|
292 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@457
|
293 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@457
|
294 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@457
|
295 |
case nxt of
|
wneuper@457
|
296 |
(_, Check_Postcond ["named", "integrate", "function"]) => ()
|
wneuper@457
|
297 |
| _ => raise error "biegelinie.sml: Bsp 7.27 #15";
|
wneuper@401
|
298 |
|
wneuper@397
|
299 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@457
|
300 |
if f2str f =
|
wneuper@457
|
301 |
"y' x = c + 1 / (-1 * EI) * (L * q_0 / 4 * x ^^^ 2 + -1 * q_0 / 6 * x ^^^ 3)"
|
wneuper@457
|
302 |
then () else raise error "biegelinie.sml: Bsp 7.27 #16 f";
|
wneuper@457
|
303 |
case nxt of
|
wneuper@457
|
304 |
(_, Subproblem ("Biegelinie.thy", ["named", "integrate", "function"]))=>()
|
wneuper@457
|
305 |
| _ => raise error "biegelinie.sml: Bsp 7.27 #16";
|
wneuper@389
|
306 |
|
wneuper@457
|
307 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@457
|
308 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@457
|
309 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@457
|
310 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@457
|
311 |
case nxt of (_, Apply_Method ["Diff", "integration", "named"]) => ()
|
wneuper@457
|
312 |
| _ => raise error "biegelinie.sml: Bsp 7.27 #17";
|
wneuper@457
|
313 |
|
wneuper@457
|
314 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@457
|
315 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@457
|
316 |
if f2str f =
|
wneuper@457
|
317 |
"y x =\nc_2 + c * x +\n\
|
wneuper@457
|
318 |
\1 / (-1 * EI) * (L * q_0 / 12 * x ^^^ 3 + -1 * q_0 / 24 * x ^^^ 4)"
|
wneuper@457
|
319 |
then () else raise error "biegelinie.sml: Bsp 7.27 #18 f";
|
wneuper@457
|
320 |
case nxt of
|
wneuper@457
|
321 |
(_, Check_Postcond ["named", "integrate", "function"]) => ()
|
wneuper@457
|
322 |
| _ => raise error "biegelinie.sml: Bsp 7.27 #18";
|
wneuper@457
|
323 |
|
wneuper@457
|
324 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@457
|
325 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@457
|
326 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@457
|
327 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@457
|
328 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@457
|
329 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@457
|
330 |
case nxt of
|
wneuper@457
|
331 |
(_, Subproblem
|
wneuper@457
|
332 |
("Biegelinie.thy", ["normalize", "2x2", "linear", "system"])) => ()
|
wneuper@457
|
333 |
| _ => raise error "biegelinie.sml: Bsp 7.27 #19";
|
wneuper@457
|
334 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@457
|
335 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@457
|
336 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@457
|
337 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@457
|
338 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@457
|
339 |
case nxt of (_, Apply_Method ["EqSystem", "normalize", "2x2"]) => ()
|
wneuper@457
|
340 |
| _ => raise error "biegelinie.sml: Bsp 7.27 #20";
|
wneuper@457
|
341 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@457
|
342 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@457
|
343 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@457
|
344 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@457
|
345 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@457
|
346 |
if f2str f = "[c_2 = 0, L * c + c_2 = -1 * q_0 * L ^^^ 4 / (-24 * EI)]" then ()
|
wneuper@457
|
347 |
else raise error "biegelinie.sml: Bsp 7.27 #21 f";
|
wneuper@457
|
348 |
case nxt of
|
wneuper@457
|
349 |
(_, Subproblem
|
wneuper@457
|
350 |
("Biegelinie.thy", ["triangular", "2x2", "linear", "system"])) =>()
|
wneuper@457
|
351 |
| _ => raise error "biegelinie.sml: Bsp 7.27 #21";
|
wneuper@457
|
352 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@457
|
353 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@457
|
354 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@457
|
355 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@457
|
356 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@457
|
357 |
case nxt of (_, Apply_Method["EqSystem", "top_down_substitution", "2x2"]) => ()
|
wneuper@457
|
358 |
| _ => raise error "biegelinie.sml: Bsp 7.27 #22";
|
wneuper@457
|
359 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@457
|
360 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@457
|
361 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@457
|
362 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@457
|
363 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@457
|
364 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@457
|
365 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@457
|
366 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@457
|
367 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@457
|
368 |
case nxt of (_, Check_Postcond ["normalize", "2x2", "linear", "system"]) => ()
|
wneuper@457
|
369 |
| _ => raise error "biegelinie.sml: Bsp 7.27 #23";
|
wneuper@457
|
370 |
|
wneuper@457
|
371 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@457
|
372 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@457
|
373 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@457
|
374 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@457
|
375 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@457
|
376 |
if f2str f = "y x =\n-1 * q_0 * L ^^^ 4 / (-24 * EI * L) * x +\n\
|
wneuper@457
|
377 |
\(2 * L * q_0 / (-24 * EI) * x ^^^ 3 + \
|
wneuper@457
|
378 |
\-1 * q_0 / (-24 * EI) * x ^^^ 4)" then ()
|
wneuper@457
|
379 |
else raise error "biegelinie.sml: Bsp 7.27 #24 f";
|
wneuper@457
|
380 |
case nxt of ("End_Proof'", End_Proof') => ()
|
wneuper@457
|
381 |
| _ => raise error "biegelinie.sml: Bsp 7.27 #24";
|
wneuper@389
|
382 |
|
wneuper@448
|
383 |
(* use"../smltest/IsacKnowledge/biegelinie.sml";
|
wneuper@448
|
384 |
*)
|
wneuper@449
|
385 |
show_pt pt;
|
wneuper@511
|
386 |
(*(([], Frm), Problem (Biegelinie.thy, [MomentBestimmte, Biegelinien])),
|
wneuper@449
|
387 |
(([1], Frm), q x = q_0),
|
wneuper@449
|
388 |
(([1], Res), - q x = - q_0),
|
wneuper@449
|
389 |
(([2], Res), Q' x = - q_0),
|
wneuper@449
|
390 |
(([3], Pbl), Integrate (- q_0, x)),
|
wneuper@449
|
391 |
(([3,1], Frm), Q x = Integral - q_0 D x),
|
wneuper@449
|
392 |
(([3,1], Res), Q x = -1 * q_0 * x + c),
|
wneuper@449
|
393 |
(([3], Res), Q x = -1 * q_0 * x + c),
|
wneuper@449
|
394 |
(([4], Res), M_b' x = -1 * q_0 * x + c),
|
wneuper@449
|
395 |
(([5], Pbl), Integrate (-1 * q_0 * x + c, x)),
|
wneuper@449
|
396 |
(([5,1], Frm), M_b x = Integral -1 * q_0 * x + c D x),
|
wneuper@449
|
397 |
(([5,1], Res), M_b x = -1 * q_0 * x ^^^ 2 / 2 + x * c + c_2),
|
wneuper@449
|
398 |
(([5], Res), M_b x = -1 * q_0 * x ^^^ 2 / 2 + x * c + c_2),
|
wneuper@449
|
399 |
(([6], Res), M_b 0 = -1 * q_0 * 0 ^^^ 2 / 2 + 0 * c + c_2),
|
wneuper@449
|
400 |
(([7], Res), 0 = -1 * q_0 * 0 ^^^ 2 / 2 + 0 * c + c_2),
|
wneuper@449
|
401 |
(([8], Res), M_b L = -1 * q_0 * L ^^^ 2 / 2 + L * c + c_2),
|
wneuper@449
|
402 |
(([9], Res), 0 = -1 * q_0 * L ^^^ 2 / 2 + L * c + c_2),
|
wneuper@449
|
403 |
(([10], Pbl), solveSystem [0 = -1 * q_0 * L ^^^ 2 / 2 + L * c + c_2] [c_2]),
|
wneuper@449
|
404 |
(([10,1], Frm), [0 = -1 * q_0 * 0 ^^^ 2 / 2 + 0 * c + c_2,
|
wneuper@449
|
405 |
0 = -1 * q_0 * L ^^^ 2 / 2 + L * c + c_2]),
|
wneuper@449
|
406 |
(([10,1], Res), [0 = c_2, 0 = -1 * (q_0 * L ^^^ 2) / 2 + (L * c + c_2)]),
|
wneuper@449
|
407 |
(([10,2], Res), [c_2 = 0, L * c + c_2 = 0 + -1 * (-1 * (q_0 * L ^^^ 2) / 2)]),
|
wneuper@449
|
408 |
(([10,3], Res), [c_2 = 0, L * c + c_2 = q_0 * L ^^^ 2 / 2]),
|
wneuper@449
|
409 |
(([10,4], Pbl), solveSystem [L * c + c_2 = q_0 * L ^^^ 2 / 2] [c_2]),
|
wneuper@449
|
410 |
(([10,4,1], Frm), L * c + c_2 = q_0 * L ^^^ 2 / 2),
|
wneuper@449
|
411 |
(([10,4,1], Res), L * c + 0 = q_0 * L ^^^ 2 / 2),
|
wneuper@449
|
412 |
(([10,4,2], Res), L * c = q_0 * L ^^^ 2 / 2),
|
wneuper@449
|
413 |
(([10,4,3], Res), c = q_0 * L ^^^ 2 / 2 / L),
|
wneuper@449
|
414 |
(([10,4,4], Res), c = L * q_0 / 2),
|
wneuper@449
|
415 |
(([10,4,5], Res), [c = L * q_0 / 2, c_2 = 0]),
|
wneuper@449
|
416 |
(([10,4], Res), [c = L * q_0 / 2, c_2 = 0]),
|
wneuper@449
|
417 |
(([10], Res), [c = L * q_0 / 2, c_2 = 0]),
|
wneuper@449
|
418 |
(([11], Res), M_b x = -1 * q_0 * x ^^^ 2 / 2 + x * (L * q_0 / 2) + 0),
|
wneuper@449
|
419 |
(([12], Res), M_b x = L * q_0 * x / 2 + -1 * q_0 * x ^^^ 2 / 2),
|
wneuper@449
|
420 |
(([13], Res), EI * y'' x = L * q_0 * x / 2 + -1 * q_0 * x ^^^ 2 / 2),
|
wneuper@449
|
421 |
(([14], Res), y'' x = 1 / EI * (L * q_0 * x / 2 + -1 * q_0 * x ^^^ 2 / 2)),
|
wneuper@449
|
422 |
(([15], Pbl), Integrate (1 / EI * (L * q_0 * x / 2 + -1 * q_0 * x ^^^ 2 / 2), x)),
|
wneuper@449
|
423 |
(([15,1], Frm), y' x = Integral 1 / EI * (L * q_0 * x / 2 + -1 * q_0 * x ^^^ 2 / 2) D x),
|
wneuper@449
|
424 |
(([15,1], Res), y' x =
|
wneuper@449
|
425 |
(Integral L * q_0 * x / 2 D x + Integral -1 * q_0 * x ^^^ 2 / 2 D x) / EI +
|
wneuper@458
|
426 |
c)]*)
|
wneuper@458
|
427 |
|
wneuper@458
|
428 |
"----------- Bsp 7.27 autoCalculate ------------------------------";
|
wneuper@458
|
429 |
"----------- Bsp 7.27 autoCalculate ------------------------------";
|
wneuper@458
|
430 |
"----------- Bsp 7.27 autoCalculate ------------------------------";
|
wneuper@458
|
431 |
states:=[];
|
wneuper@458
|
432 |
CalcTree [(["Traegerlaenge L","Streckenlast q_0","Biegelinie y",
|
wneuper@458
|
433 |
"RandbedingungenBiegung [y 0 = 0, y L = 0]",
|
wneuper@458
|
434 |
"RandbedingungenMoment [M_b 0 = 0, M_b L = 0]",
|
wneuper@458
|
435 |
"FunktionsVariable x"],
|
wneuper@458
|
436 |
("Biegelinie.thy",
|
wneuper@511
|
437 |
["MomentBestimmte","Biegelinien"],
|
wneuper@458
|
438 |
["IntegrierenUndKonstanteBestimmen"]))];
|
wneuper@458
|
439 |
moveActiveRoot 1;
|
wneuper@464
|
440 |
autoCalculate 1 CompleteCalcHead;
|
wneuper@464
|
441 |
|
wneuper@464
|
442 |
fetchProposedTactic 1 (*->"Apply_Method" IntegrierenUndKonstanteBestimmen*);
|
wneuper@467
|
443 |
(*
|
wneuper@467
|
444 |
> val (_,Apply_Method' (_, None, ScrState is), _)::_ = tacis;
|
wneuper@467
|
445 |
> is = e_scrstate;
|
wneuper@467
|
446 |
val it = true : bool
|
wneuper@467
|
447 |
*)
|
wneuper@464
|
448 |
autoCalculate 1 (Step 1) (*->GENERATED ([1], Frm)*);
|
wneuper@464
|
449 |
val ((pt,_),_) = get_calc 1;
|
wneuper@464
|
450 |
case pt of Nd (PblObj _, [Nd _]) => ((*Apply_Method + Take*))
|
wneuper@464
|
451 |
| _ => raise error "biegelinie.sml: Bsp 7.27 autoCalculate#4c";
|
wneuper@464
|
452 |
|
wneuper@464
|
453 |
autoCalculate 1 CompleteCalc;
|
wneuper@656
|
454 |
val ((pt,p),_) = get_calc 1;
|
wneuper@656
|
455 |
if p = ([], Res) andalso length (children pt) = 23 andalso
|
wneuper@656
|
456 |
term2str (get_obj g_res pt (fst p)) = "y x =\n-1 * q_0 * L ^^^ 4 / (-24 * EI * L) * x +\n(2 * L * q_0 / (-24 * EI) * x ^^^ 3 + -1 * q_0 / (-24 * EI) * x ^^^ 4)"then () else raise error "biegelinie.sml: 1st biegelin.7.27 changed";
|
wneuper@656
|
457 |
|
wneuper@458
|
458 |
val (unc, del, gen) = (([],Pbl), ([],Pbl), ([],Res));
|
wneuper@478
|
459 |
getFormulaeFromTo 1 unc gen 1 (*only level 1*) false;
|
wneuper@463
|
460 |
show_pt pt;
|
wneuper@530
|
461 |
|
wneuper@539
|
462 |
(*check all formulae for getTactic*)
|
wneuper@539
|
463 |
getTactic 1 ([1],Frm) (*see smltest/../reverse-rew.sml*);
|
wneuper@539
|
464 |
getTactic 1 ([5],Res) (*tac2xml: not impl. for Substitute ["x = 0"]*);
|
wneuper@539
|
465 |
getTactic 1 ([6],Res) (* ---"--- ["M_b 0 = 0"]*);
|
wneuper@539
|
466 |
getTactic 1 ([7],Res) (*!!!!!Take!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*);
|
wneuper@539
|
467 |
getTactic 1 ([8],Frm) (*tac2xml: not impl. for Substitute ["x = L"]*);
|
wneuper@539
|
468 |
getTactic 1 ([8],Res) (* ---"--- ["M_b L = 0"]*);
|
wneuper@636
|
469 |
|
wneuper@636
|
470 |
|
wneuper@656
|
471 |
"----------- SubProblem (_,[vonBelastungZu,Biegelinien] ----------";
|
wneuper@656
|
472 |
"----------- SubProblem (_,[vonBelastungZu,Biegelinien] ----------";
|
wneuper@656
|
473 |
"----------- SubProblem (_,[vonBelastungZu,Biegelinien] ----------";
|
wneuper@656
|
474 |
val fmz =
|
wneuper@656
|
475 |
["Streckenlast q_0","FunktionsVariable x",
|
wneuper@656
|
476 |
"Funktionen [Q x = c + -1 * q_0 * x, \
|
wneuper@656
|
477 |
\M_b x = c_2 + c * x + -1 * q_0 / 2 * x ^^^ 2,\
|
wneuper@656
|
478 |
\ y' x = c_3 + 1 / (-1 * EI) * (c_2 * x + c / 2 * x ^^^ 2 + -1 * q_0 / 6 * x ^^^ 3),\
|
wneuper@656
|
479 |
\ y x = c_4 + c_3 * x + 1 / (-1 * EI) * (c_2 / 2 * x ^^^ 2 + c / 6 * x ^^^ 3 + -1 * q_0 / 24 * x ^^^ 4)]"];
|
wneuper@656
|
480 |
val (dI',pI',mI') = ("Biegelinie.thy", ["vonBelastungZu","Biegelinien"],
|
wneuper@656
|
481 |
["Biegelinien","ausBelastung"]);
|
wneuper@656
|
482 |
val p = e_pos'; val c = [];
|
wneuper@656
|
483 |
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
|
wneuper@656
|
484 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@656
|
485 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@656
|
486 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@656
|
487 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@656
|
488 |
if nxt = ("Apply_Method", Apply_Method ["Biegelinien", "ausBelastung"])
|
wneuper@656
|
489 |
then () else raise error "biegelinie.sml met2 b";
|
wneuper@656
|
490 |
|
wneuper@656
|
491 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "q x = q_0";
|
wneuper@656
|
492 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "- q x = - q_0";
|
wneuper@656
|
493 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "Q' x = - q_0";
|
wneuper@656
|
494 |
case nxt of (_, Subproblem (_, ["named", "integrate", "function"])) => ()
|
wneuper@656
|
495 |
| _ => raise error "biegelinie.sml met2 c";
|
wneuper@656
|
496 |
|
wneuper@656
|
497 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@656
|
498 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@656
|
499 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@656
|
500 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@656
|
501 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@656
|
502 |
|
wneuper@656
|
503 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "Q x = c + -1 * q_0 * x";
|
wneuper@656
|
504 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "Q x = c + -1 * q_0 * x";
|
wneuper@656
|
505 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "M_b' x = c + -1 * q_0 * x";
|
wneuper@656
|
506 |
case nxt of (_,Subproblem (_, ["named", "integrate", "function"])) => ()
|
wneuper@656
|
507 |
| _ => raise error "biegelinie.sml met2 d";
|
wneuper@656
|
508 |
|
wneuper@656
|
509 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@656
|
510 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@656
|
511 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@656
|
512 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@656
|
513 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
|
wneuper@656
|
514 |
"M_b x = Integral c + -1 * q_0 * x D x";
|
wneuper@656
|
515 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
|
wneuper@656
|
516 |
"M_b x = c_2 + c * x + -1 * q_0 / 2 * x ^^^ 2";
|
wneuper@656
|
517 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
|
wneuper@656
|
518 |
"M_b x = c_2 + c * x + -1 * q_0 / 2 * x ^^^ 2";
|
wneuper@656
|
519 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
|
wneuper@656
|
520 |
"- EI * y'' x = c_2 + c * x + -1 * q_0 / 2 * x ^^^ 2";
|
wneuper@656
|
521 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
|
wneuper@656
|
522 |
"y'' x = 1 / - EI * (c_2 + c * x + -1 * q_0 / 2 * x ^^^ 2)";
|
wneuper@656
|
523 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@656
|
524 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@656
|
525 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@656
|
526 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@656
|
527 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
|
wneuper@656
|
528 |
"y' x = Integral 1 / - EI * (c_2 + c * x + -1 * q_0 / 2 * x ^^^ 2) D x";
|
wneuper@656
|
529 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
|
wneuper@656
|
530 |
"y' x = Integral 1 / (-1 * EI) * (c_2 + c * x + -1 * q_0 / 2 * x ^^^ 2) D x";
|
wneuper@656
|
531 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
|
wneuper@656
|
532 |
"y' x =\nc_3 + 1 / (-1 * EI) * (c_2 * x + c / 2 * x ^^^ 2 + -1 * q_0 / 6 * x ^^^ 3)";
|
wneuper@656
|
533 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
|
wneuper@656
|
534 |
"y' x =\nc_3 + 1 / (-1 * EI) * (c_2 * x + c / 2 * x ^^^ 2 + -1 * q_0 / 6 * x ^^^ 3)";
|
wneuper@656
|
535 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@656
|
536 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@656
|
537 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@656
|
538 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@656
|
539 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
|
wneuper@656
|
540 |
"y x =\nIntegral c_3 +\n 1 / (-1 * EI) *\n (c_2 * x + c / 2 * x ^^^ 2 + -1 * q_0 / 6 * x ^^^ 3) D x";
|
wneuper@656
|
541 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
|
wneuper@656
|
542 |
"y x =\nc_4 + c_3 * x +\n1 / (-1 * EI) *\n(c_2 / 2 * x ^^^ 2 + c / 6 * x ^^^ 3 + -1 * q_0 / 24 * x ^^^ 4)";
|
wneuper@656
|
543 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
|
wneuper@656
|
544 |
"y x =\nc_4 + c_3 * x +\n1 / (-1 * EI) *\n(c_2 / 2 * x ^^^ 2 + c / 6 * x ^^^ 3 + -1 * q_0 / 24 * x ^^^ 4)";
|
wneuper@656
|
545 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@656
|
546 |
if nxt = ("End_Proof'", End_Proof') andalso f2str f =
|
wneuper@656
|
547 |
"[Q x = c + -1 * q_0 * x, M_b x = c_2 + c * x + -1 * q_0 / 2 * x ^^^ 2,\n y' x =\n c_3 + 1 / (-1 * EI) * (c_2 * x + c / 2 * x ^^^ 2 + -1 * q_0 / 6 * x ^^^ 3),\n y x =\n c_4 + c_3 * x +\n 1 / (-1 * EI) *\n (c_2 / 2 * x ^^^ 2 + c / 6 * x ^^^ 3 + -1 * q_0 / 24 * x ^^^ 4)]" then ()
|
wneuper@656
|
548 |
else raise error "biegelinie.sml met2 e";
|
wneuper@656
|
549 |
|
wneuper@656
|
550 |
|
wneuper@656
|
551 |
|
wneuper@638
|
552 |
"----------- SubProblem (_,[setzeRandbedingungen,Biegelinien] ----";
|
wneuper@638
|
553 |
"----------- SubProblem (_,[setzeRandbedingungen,Biegelinien] ----";
|
wneuper@638
|
554 |
"----------- SubProblem (_,[setzeRandbedingungen,Biegelinien] ----";
|
wneuper@639
|
555 |
val str =
|
wneuper@639
|
556 |
"Script Function2Equality (fun_::bool) (sub_::bool) =\
|
wneuper@639
|
557 |
\(equ___::bool)"
|
wneuper@639
|
558 |
;
|
wneuper@639
|
559 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@639
|
560 |
val str =
|
wneuper@639
|
561 |
"Script Function2Equality (fun_::bool) (sub_::bool) =\
|
wneuper@639
|
562 |
\ (let v_ = argument_in (lhs fun_)\
|
wneuper@639
|
563 |
\ in (equ___::bool))"
|
wneuper@639
|
564 |
;
|
wneuper@639
|
565 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@639
|
566 |
val str =
|
wneuper@639
|
567 |
"Script Function2Equality (fun_::bool) (sub_::bool) =\
|
wneuper@639
|
568 |
\ (let v_ = argument_in (lhs fun_);\
|
wneuper@639
|
569 |
\ (equ_) = (Substitute [sub_]) fun_\
|
wneuper@639
|
570 |
\ in (equ_::bool))"
|
wneuper@639
|
571 |
;
|
wneuper@639
|
572 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@639
|
573 |
val str =
|
wneuper@639
|
574 |
"Script Function2Equality (fun_::bool) (sub_::bool) =\
|
wneuper@639
|
575 |
\ (let v_ = argument_in (lhs fun_);\
|
wneuper@639
|
576 |
\ equ_ = (Substitute [sub_]) fun_\
|
wneuper@639
|
577 |
\ in (Rewrite_Set_Inst [(bdv, v_)] make_ratpoly_in False) equ_)"
|
wneuper@639
|
578 |
;
|
wneuper@639
|
579 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@639
|
580 |
(*---^^^-OK-----------------------------------------------------------------*)
|
wneuper@639
|
581 |
val str =
|
wneuper@639
|
582 |
(*(M_b x = c_2 + c * x + -1 * q_0 / 2 * x ^^^ 2) (M_b L = 0) -->
|
wneuper@639
|
583 |
0 = c_2 + c * L + -1 * q_0 / 2 * L ^^^ 2*)
|
wneuper@639
|
584 |
"Script Function2Equality (fun_::bool) (sub_::bool) =\
|
wneuper@639
|
585 |
\ (let bdv_ = argument_in (lhs fun_);\
|
wneuper@639
|
586 |
\ val_ = argument_in (lhs sub_);\
|
wneuper@639
|
587 |
\ equ_ = (Substitute [bdv_ = val_]) fun_;\
|
wneuper@639
|
588 |
\ equ_ = (Substitute [sub_]) fun_\
|
wneuper@639
|
589 |
\ in (Rewrite_Set_Inst [(bdv_, v_)] make_ratpoly_in False) equ_)"
|
wneuper@639
|
590 |
;
|
wneuper@639
|
591 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@639
|
592 |
(*---vvv-NOTok--------------------------------------------------------------*)
|
wneuper@639
|
593 |
atomty sc;
|
wneuper@638
|
594 |
|
wneuper@639
|
595 |
val fmz = ["functionEq (M_b x = c_2 + c * x + -1 * q_0 / 2 * x ^^^ 2)",
|
wneuper@639
|
596 |
"substitution (M_b L = 0)",
|
wneuper@639
|
597 |
"equality equ___"];
|
wneuper@639
|
598 |
val (dI',pI',mI') = ("Biegelinie.thy", ["makeFunctionTo","equation"],
|
wneuper@639
|
599 |
["Equation","fromFunction"]);
|
wneuper@639
|
600 |
val p = e_pos'; val c = [];
|
wneuper@639
|
601 |
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
|
wneuper@639
|
602 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@639
|
603 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@639
|
604 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@639
|
605 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@638
|
606 |
|
wneuper@639
|
607 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
|
wneuper@639
|
608 |
"M_b x = c_2 + c * x + -1 * q_0 / 2 * x ^^^ 2";
|
wneuper@639
|
609 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
|
wneuper@639
|
610 |
"M_b L = c_2 + c * L + -1 * q_0 / 2 * L ^^^ 2";
|
wneuper@639
|
611 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
|
wneuper@639
|
612 |
"0 = c_2 + c * L + -1 * q_0 / 2 * L ^^^ 2";
|
wneuper@639
|
613 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@639
|
614 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@639
|
615 |
if nxt = ("End_Proof'", End_Proof') andalso
|
wneuper@642
|
616 |
(* f2str f = "0 = c_2 + L * c + -1 * q_0 / 2 * L ^^^ 2"
|
wneuper@642
|
617 |
CHANGE NOT considered, already on leave*)
|
wneuper@642
|
618 |
f2str f = "0 = (2 * c_2 + 2 * L * c + -1 * L ^^^ 2 * q_0) / 2"
|
wneuper@639
|
619 |
then () else raise error "biegelinie.sml: SubProblem (_,[setzeRandbed";
|
wneuper@638
|
620 |
|
wneuper@638
|
621 |
|
wneuper@641
|
622 |
"----------- method [Biegelinien,setzeRandbedingungenEin] + exec -";
|
wneuper@641
|
623 |
"----------- method [Biegelinien,setzeRandbedingungenEin] + exec -";
|
wneuper@641
|
624 |
"----------- method [Biegelinien,setzeRandbedingungenEin] + exec -";
|
wneuper@642
|
625 |
"----- check the scripts syntax";
|
wneuper@641
|
626 |
val str =
|
wneuper@641
|
627 |
"Script SetzeRandbedScript (funs_::bool list) (beds_::bool list) =\
|
wneuper@641
|
628 |
\ (let b1 = Take (nth_ 1 beds_)\
|
wneuper@641
|
629 |
\ in (equs_::bool list))"
|
wneuper@641
|
630 |
;
|
wneuper@641
|
631 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@641
|
632 |
val str =
|
wneuper@641
|
633 |
"Script SetzeRandbedScript (funs_::bool list) (beds_::bool list) =\
|
wneuper@641
|
634 |
\ (let b1_ = Take (nth_ 1 beds_); \
|
wneuper@642
|
635 |
\ fs_ = filter (sameFunId (lhs b1_)) funs_; \
|
wneuper@641
|
636 |
\ f1_ = hd fs_ \
|
wneuper@641
|
637 |
\ in (equs_::bool list))"
|
wneuper@641
|
638 |
;
|
wneuper@641
|
639 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@641
|
640 |
|
wneuper@641
|
641 |
val ttt = str2term "sameFunId (lhs b1_) fun___"; atomty ttt;
|
wneuper@641
|
642 |
val ttt = str2term "filter"; atomty ttt;
|
wneuper@641
|
643 |
val ttt = str2term "filter::[real => bool, real list] => real list";atomty ttt;
|
wneuper@641
|
644 |
val ttt = str2term "filter::[bool => bool, bool list] => bool list";
|
wneuper@641
|
645 |
val ttt = str2term "filter (sameFunId (lhs b1_)) funs_"; atomty ttt;
|
wneuper@641
|
646 |
|
wneuper@641
|
647 |
val str =
|
wneuper@641
|
648 |
"Script SetzeRandbedScript (funs_::bool list) (rb_::bool list) =\
|
wneuper@641
|
649 |
\ (let beds_ = rev beds_; \
|
wneuper@641
|
650 |
\ b1_ = Take (nth_ 1 beds_); \
|
wneuper@641
|
651 |
\ fs_ = filter (sameFunId (lhs b1_)) funs_; \
|
wneuper@641
|
652 |
\ f1_ = hd fs_ \
|
wneuper@641
|
653 |
\ in (equs_::bool list))"
|
wneuper@641
|
654 |
;
|
wneuper@641
|
655 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@642
|
656 |
val str =
|
wneuper@642
|
657 |
"Script SetzeRandbedScript (funs_::bool list) (rb_::bool list) =\
|
wneuper@642
|
658 |
\ (let b1_ = Take (nth_ 1 rb_); \
|
wneuper@642
|
659 |
\ fs_ = filter (sameFunId (lhs b1_)) funs_; \
|
wneuper@642
|
660 |
\ (equ_::bool) = \
|
wneuper@642
|
661 |
\ (SubProblem (Biegelinie_,[makeFunctionTo,equation],\
|
wneuper@642
|
662 |
\ [Equation,fromFunction]) \
|
wneuper@642
|
663 |
\ [bool_ (hd fs_), bool_ b1_]) \
|
wneuper@642
|
664 |
\ in [equ_])"
|
wneuper@642
|
665 |
;
|
wneuper@642
|
666 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@642
|
667 |
val str =
|
wneuper@642
|
668 |
"Script SetzeRandbedScript (funs_::bool list) (rb_::bool list) =\
|
wneuper@642
|
669 |
\ (let b1_ = Take (nth_ 1 rb_); \
|
wneuper@642
|
670 |
\ fs_ = filter (sameFunId (lhs b1_)) funs_; \
|
wneuper@642
|
671 |
\ (e1_::bool) = \
|
wneuper@642
|
672 |
\ (SubProblem (Biegelinie_,[makeFunctionTo,equation],\
|
wneuper@642
|
673 |
\ [Equation,fromFunction]) \
|
wneuper@642
|
674 |
\ [bool_ (hd fs_), bool_ b1_]); \
|
wneuper@642
|
675 |
\ b2_ = Take (nth_ 2 rb_); \
|
wneuper@642
|
676 |
\ fs_ = filter (sameFunId (lhs b2_)) funs_; \
|
wneuper@642
|
677 |
\ (e2_::bool) = \
|
wneuper@642
|
678 |
\ (SubProblem (Biegelinie_,[makeFunctionTo,equation],\
|
wneuper@642
|
679 |
\ [Equation,fromFunction]) \
|
wneuper@642
|
680 |
\ [bool_ (hd fs_), bool_ b2_]) \
|
wneuper@642
|
681 |
\ in [e1_,e1_])"
|
wneuper@642
|
682 |
;
|
wneuper@642
|
683 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@642
|
684 |
(*---vvv-NOTok--------------------------------------------------------------*)
|
wneuper@642
|
685 |
(*---^^^-OK-----------------------------------------------------------------*)
|
wneuper@642
|
686 |
atomty sc;
|
wneuper@642
|
687 |
|
wneuper@642
|
688 |
"----- execute script by manual rewriting";
|
wneuper@642
|
689 |
(*show_types := true;*)
|
wneuper@642
|
690 |
val funs_ = str2term "funs_::bool list";
|
wneuper@642
|
691 |
val funs = str2term
|
wneuper@642
|
692 |
"[Q x = c + -1 * q_0 * x,\
|
wneuper@642
|
693 |
\M_b x = c_2 + c * x + -1 * q_0 / 2 * x ^^^ 2,\
|
wneuper@642
|
694 |
\y' x = c_3 + 1 / (-1 * EI) * (c_2 * x + c / 2 * x ^^^ 2 + -1 * q_0 / 6 * x ^^^ 3),\
|
wneuper@642
|
695 |
\y x = c_4 + c_3 * x + 1 / (-1 * EI) * (c_2 / 2 * x ^^^ 2 + c / 6 * x ^^^ 3 + -1 * q_0 / 24 * x ^^^ 4)]";
|
wneuper@642
|
696 |
val rb_ = str2term "rb_::bool list";
|
wneuper@642
|
697 |
val rb = str2term "[y 0 = 0, y L = 0, M_b 0 = 0, M_b L = 0]";
|
wneuper@642
|
698 |
|
wneuper@642
|
699 |
"--- script expression 1";
|
wneuper@642
|
700 |
val screxp1_ = str2term "Take (nth_ 1 (rb_::bool list))";
|
wneuper@642
|
701 |
val screxp1 = subst_atomic [(rb_, rb)] screxp1_; term2str screxp1;
|
wneuper@642
|
702 |
val Some (b1,_) = rewrite_set_ Isac.thy false srls2 screxp1; term2str b1;
|
wneuper@642
|
703 |
if term2str b1 = "Take (y 0 = 0)" then ()
|
wneuper@642
|
704 |
else raise error "biegelinie.sml: rew. Bieglie2 --1";
|
wneuper@642
|
705 |
val b1 = str2term "(y 0 = 0)";
|
wneuper@642
|
706 |
|
wneuper@642
|
707 |
"--- script expression 2";
|
wneuper@642
|
708 |
val screxp2_ = str2term "filter (sameFunId (lhs b1_)) funs_";
|
wneuper@642
|
709 |
val b1_ = str2term "b1_::bool";
|
wneuper@642
|
710 |
val screxp2 = subst_atomic [(b1_,b1),(funs_,funs)] screxp2_; term2str screxp2;
|
wneuper@642
|
711 |
val Some (fs,_) = rewrite_set_ Isac.thy false srls2 screxp2; term2str fs;
|
wneuper@642
|
712 |
if term2str fs = "[y x =\n c_4 + c_3 * x +\n 1 / (-1 * EI) *\n (c_2 / 2 * x ^^^ 2 + c / 6 * x ^^^ 3 + -1 * q_0 / 24 * x ^^^ 4)]" then ()
|
wneuper@642
|
713 |
else raise error "biegelinie.sml: rew. Bieglie2 --2";
|
wneuper@642
|
714 |
|
wneuper@642
|
715 |
"--- script expression 3";
|
wneuper@642
|
716 |
val screxp3_ = str2term "SubProblem (Biegelinie_,[makeFunctionTo,equation],\
|
wneuper@642
|
717 |
\ [Equation,fromFunction]) \
|
wneuper@642
|
718 |
\ [bool_ (hd fs_), bool_ b1_]";
|
wneuper@642
|
719 |
val fs_ = str2term "fs_::bool list";
|
wneuper@642
|
720 |
val screxp3 = subst_atomic [(fs_,fs),(b1_,b1)] screxp3_;
|
wneuper@642
|
721 |
writeln (term2str screxp3);
|
wneuper@642
|
722 |
val Some (equ,_) = rewrite_set_ Isac.thy false srls2 screxp3;
|
wneuper@642
|
723 |
if term2str equ = "SubProblem\n (Biegelinie_, [makeFunctionTo, equation], [Equation, fromFunction])\n [bool_\n (y x =\n c_4 + c_3 * x +\n 1 / (-1 * EI) *\n (c_2 / 2 * x ^^^ 2 + c / 6 * x ^^^ 3 + -1 * q_0 / 24 * x ^^^ 4)),\n bool_ (y 0 = 0)]" then ()
|
wneuper@642
|
724 |
else raise error "biegelinie.sml: rew. Bieglie2 --3";
|
wneuper@642
|
725 |
writeln (term2str equ);
|
wneuper@642
|
726 |
(*SubProblem
|
wneuper@642
|
727 |
(Biegelinie_, [makeFunctionTo, equation], [Equation, fromFunction])
|
wneuper@642
|
728 |
[bool_
|
wneuper@642
|
729 |
(y x =
|
wneuper@642
|
730 |
c_4 + c_3 * x +
|
wneuper@642
|
731 |
1 / (-1 * EI) *
|
wneuper@642
|
732 |
(c_2 / 2 * x ^^^ 2 + c / 6 * x ^^^ 3 + -1 * q_0 / 24 * x ^^^ 4)),
|
wneuper@642
|
733 |
bool_ (y 0 = 0)]*)
|
wneuper@642
|
734 |
show_types := false;
|
wneuper@642
|
735 |
|
wneuper@642
|
736 |
|
wneuper@656
|
737 |
"----- execute script by interpreter: setzeRandbedingungenEin";
|
wneuper@642
|
738 |
val fmz = ["Funktionen [Q x = c + -1 * q_0 * x,\
|
wneuper@642
|
739 |
\M_b x = c_2 + c * x + -1 * q_0 / 2 * x ^^^ 2,\
|
wneuper@642
|
740 |
\y' x = c_3 + 1 / (-1 * EI) * (c_2 * x + c / 2 * x ^^^ 2 + -1 * q_0 / 6 * x ^^^ 3),\
|
wneuper@642
|
741 |
\y x = c_4 + c_3 * x + 1 / (-1 * EI) * (c_2 / 2 * x ^^^ 2 + c / 6 * x ^^^ 3 + -1 * q_0 / 24 * x ^^^ 4)]",
|
wneuper@642
|
742 |
"Randbedingungen [y 0 = 0, y L = 0, M_b 0 = 0, M_b L = 0]",
|
wneuper@642
|
743 |
"Gleichungen equs___"];
|
wneuper@642
|
744 |
val (dI',pI',mI') = ("Biegelinie.thy", ["setzeRandbedingungen","Biegelinien"],
|
wneuper@642
|
745 |
["Biegelinien","setzeRandbedingungenEin"]);
|
wneuper@642
|
746 |
val p = e_pos'; val c = [];
|
wneuper@642
|
747 |
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
|
wneuper@642
|
748 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@642
|
749 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@642
|
750 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@656
|
751 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@656
|
752 |
|
wneuper@656
|
753 |
"--- before 1.subpbl [Equation, fromFunction]";
|
wneuper@656
|
754 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@648
|
755 |
case nxt of (_, Apply_Method ["Biegelinien", "setzeRandbedingungenEin"])=>()
|
wneuper@656
|
756 |
| _ => raise error "biegelinie.sml: met setzeRandbed*Ein aa";
|
wneuper@656
|
757 |
"----- Randbedingung y 0 = 0 in SUBpbl with met [Equation, fromFunction]";
|
wneuper@648
|
758 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@656
|
759 |
if (#1 o (get_obj g_fmz pt)) (fst p) =
|
wneuper@656
|
760 |
["functionEq\n (y x =\n c_4 + c_3 * x +\n 1 / (-1 * EI) *\n (c_2 / 2 * x ^^^ 2 + c / 6 * x ^^^ 3 + -1 * q_0 / 24 * x ^^^ 4))",
|
wneuper@656
|
761 |
"substitution (y 0 = 0)", "equality equ___"] then ()
|
wneuper@656
|
762 |
else raise error "biegelinie.sml met setzeRandbed*Ein bb";
|
wneuper@656
|
763 |
(writeln o istate2str) (get_istate pt p);
|
wneuper@656
|
764 |
"--- after 1.subpbl [Equation, fromFunction]";
|
wneuper@642
|
765 |
|
wneuper@642
|
766 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@656
|
767 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@656
|
768 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@656
|
769 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@656
|
770 |
case nxt of (_, Apply_Method["Equation", "fromFunction"]) => ()
|
wneuper@656
|
771 |
| _ => raise error "biegelinie.sml met2 ff";
|
wneuper@656
|
772 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
|
wneuper@656
|
773 |
"y x =\nc_4 + c_3 * x +\n1 / (-1 * EI) *\n(c_2 / 2 * x ^^^ 2 + c / 6 * x ^^^ 3 + -1 * q_0 / 24 * x ^^^ 4)";
|
wneuper@656
|
774 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@656
|
775 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@656
|
776 |
case nxt of (_, Check_Postcond ["makeFunctionTo", "equation"]) => ()
|
wneuper@656
|
777 |
| _ => raise error "biegelinie.sml met2 gg";
|
wneuper@642
|
778 |
|
wneuper@656
|
779 |
"--- before 2.subpbl [Equation, fromFunction]";
|
wneuper@656
|
780 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "0 = c_4 + 0 / (-1 * EI)" ;
|
wneuper@656
|
781 |
case nxt of (_,Subproblem (_, ["makeFunctionTo", "equation"])) => ()
|
wneuper@656
|
782 |
| _ => raise error "biegelinie.sml met2 hh";
|
wneuper@656
|
783 |
"--- after 1st arrival at 2.subpbl [Equation, fromFunction]";
|
wneuper@642
|
784 |
|
wneuper@656
|
785 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@656
|
786 |
if (#1 o (get_obj g_fmz pt)) (fst p) =
|
wneuper@656
|
787 |
["functionEq\n (y x =\n c_4 + c_3 * x +\n 1 / (-1 * EI) *\n (c_2 / 2 * x ^^^ 2 + c / 6 * x ^^^ 3 + -1 * q_0 / 24 * x ^^^ 4))",
|
wneuper@656
|
788 |
"substitution (y L = 0)", "equality equ___"] then ()
|
wneuper@656
|
789 |
else raise error "biegelinie.sml metsetzeRandbed*Ein bb ";
|
wneuper@656
|
790 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@656
|
791 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@656
|
792 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@656
|
793 |
|
wneuper@656
|
794 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@656
|
795 |
case nxt of (_, Apply_Method["Equation", "fromFunction"]) => ()
|
wneuper@656
|
796 |
| _ => raise error "biegelinie.sml met2 ii";
|
wneuper@656
|
797 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "y x =\nc_4 + c_3 * x +\n1 / (-1 * EI) *\n(c_2 / 2 * x ^^^ 2 + c / 6 * x ^^^ 3 + -1 * q_0 / 24 * x ^^^ 4)";
|
wneuper@656
|
798 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "y L =\nc_4 + c_3 * L +\n1 / (-1 * EI) *\n(c_2 / 2 * L ^^^ 2 + c / 6 * L ^^^ 3 + -1 * q_0 / 24 * L ^^^ 4)";
|
wneuper@656
|
799 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "0 =\nc_4 + c_3 * L +\n1 / (-1 * EI) *\n(c_2 / 2 * L ^^^ 2 + c / 6 * L ^^^ 3 + -1 * q_0 / 24 * L ^^^ 4)";
|
wneuper@656
|
800 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "0 =\nc_4 + L * c_3 +\n(12 * L ^^^ 2 * c_2 + 4 * L ^^^ 3 * c + -1 * L ^^^ 4 * q_0) / (-24 * EI)" ;
|
wneuper@656
|
801 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "0 =\nc_4 + L * c_3 +\n(12 * L ^^^ 2 * c_2 + 4 * L ^^^ 3 * c + -1 * L ^^^ 4 * q_0) / (-24 * EI)";
|
wneuper@656
|
802 |
case nxt of (_,Subproblem (_, ["makeFunctionTo", "equation"])) => ()
|
wneuper@656
|
803 |
| _ => raise error "biegelinie.sml met2 jj";
|
wneuper@656
|
804 |
|
wneuper@656
|
805 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@656
|
806 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@656
|
807 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@656
|
808 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@656
|
809 |
case nxt of (_, Apply_Method ["Equation", "fromFunction"])=>()
|
wneuper@656
|
810 |
| _ => raise error "biegelinie.sml met2 kk";
|
wneuper@656
|
811 |
|
wneuper@656
|
812 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "M_b x = c_2 + c * x + -1 * q_0 / 2 * x ^^^ 2"(*true*);
|
wneuper@656
|
813 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "0 = c_2 + c * 0 + -1 * q_0 / 2 * 0 ^^^ 2";
|
wneuper@656
|
814 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "0 = c_2";
|
wneuper@656
|
815 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "0 = c_2";
|
wneuper@656
|
816 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@656
|
817 |
case nxt of (_,Subproblem (_, ["makeFunctionTo", "equation"])) => ()
|
wneuper@656
|
818 |
| _ => raise error "biegelinie.sml met2 ll";
|
wneuper@656
|
819 |
|
wneuper@656
|
820 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@656
|
821 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@656
|
822 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@656
|
823 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@656
|
824 |
case nxt of (_, Apply_Method ["Equation", "fromFunction"])=>()
|
wneuper@656
|
825 |
| _ => raise error "biegelinie.sml met2 mm";
|
wneuper@656
|
826 |
|
wneuper@656
|
827 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "M_b x = c_2 + c * x + -1 * q_0 / 2 * x ^^^ 2";
|
wneuper@656
|
828 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "M_b L = c_2 + c * L + -1 * q_0 / 2 * L ^^^ 2";
|
wneuper@656
|
829 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "0 = c_2 + c * L + -1 * q_0 / 2 * L ^^^ 2";
|
wneuper@656
|
830 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "0 = (2 * c_2 + 2 * L * c + -1 * L ^^^ 2 * q_0) / 2";
|
wneuper@656
|
831 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "0 = (2 * c_2 + 2 * L * c + -1 * L ^^^ 2 * q_0) / 2";
|
wneuper@656
|
832 |
case nxt of (_, Check_Postcond ["setzeRandbedingungen", "Biegelinien"]) => ()
|
wneuper@656
|
833 |
| _ => raise error "biegelinie.sml met2 nn";
|
wneuper@656
|
834 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@656
|
835 |
if nxt = ("End_Proof'", End_Proof') andalso f2str f =
|
wneuper@656
|
836 |
"[0 = c_4 + 0 / (-1 * EI),\n 0 =\n c_4 + L * c_3 +\n (12 * L ^^^ 2 * c_2 + 4 * L ^^^ 3 * c + -1 * L ^^^ 4 * q_0) / (-24 * EI),\n 0 = c_2, 0 = (2 * c_2 + 2 * L * c + -1 * L ^^^ 2 * q_0) / 2]" then ()
|
wneuper@656
|
837 |
else raise error "biegelinie.sml met2 oo";
|
wneuper@656
|
838 |
|
wneuper@656
|
839 |
(*
|
wneuper@642
|
840 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@642
|
841 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@642
|
842 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@642
|
843 |
*)
|
wneuper@642
|
844 |
|
wneuper@642
|
845 |
"----------- IntegrierenUndKonstanteBestimmen2 -------------------";
|
wneuper@642
|
846 |
"----------- IntegrierenUndKonstanteBestimmen2 -------------------";
|
wneuper@642
|
847 |
"----------- IntegrierenUndKonstanteBestimmen2 -------------------";
|
wneuper@642
|
848 |
"----- script ";
|
wneuper@642
|
849 |
val str =
|
wneuper@642
|
850 |
"Script Belastung2BiegelScript (q_::real) (v_::real) = \
|
wneuper@642
|
851 |
\ (let q__ = Take (q v_ = q_); \
|
wneuper@642
|
852 |
\ q__ = ((Rewrite sym_real_minus_eq_cancel True) @@ \
|
wneuper@642
|
853 |
\ (Rewrite Belastung_Querkraft True)) q__; \
|
wneuper@642
|
854 |
\ (Q__:: bool) = \
|
wneuper@642
|
855 |
\ (SubProblem (Biegelinie_,[named,integrate,function], \
|
wneuper@642
|
856 |
\ [Diff,integration,named]) \
|
wneuper@642
|
857 |
\ [real_ (rhs q__), real_ v_, real_real_ Q]); \
|
wneuper@642
|
858 |
\ M__ = Rewrite Querkraft_Moment True Q__; \
|
wneuper@642
|
859 |
\ (M__::bool) = \
|
wneuper@642
|
860 |
\ (SubProblem (Biegelinie_,[named,integrate,function], \
|
wneuper@642
|
861 |
\ [Diff,integration,named]) \
|
wneuper@642
|
862 |
\ [real_ (rhs M__), real_ v_, real_real_ M_b]); \
|
wneuper@642
|
863 |
\ N__ = ((Rewrite Moment_Neigung False) @@ \
|
wneuper@642
|
864 |
\ (Rewrite make_fun_explicit False)) M__; \
|
wneuper@642
|
865 |
\ (N__:: bool) = \
|
wneuper@642
|
866 |
\ (SubProblem (Biegelinie_,[named,integrate,function], \
|
wneuper@642
|
867 |
\ [Diff,integration,named]) \
|
wneuper@642
|
868 |
\ [real_ (rhs N__), real_ v_, real_real_ y']); \
|
wneuper@642
|
869 |
\ (B__:: bool) = \
|
wneuper@642
|
870 |
\ (SubProblem (Biegelinie_,[named,integrate,function], \
|
wneuper@642
|
871 |
\ [Diff,integration,named]) \
|
wneuper@642
|
872 |
\ [real_ (rhs N__), real_ v_, real_real_ y]) \
|
wneuper@642
|
873 |
\ in [Q__, M__, N__, B__])"
|
wneuper@642
|
874 |
;
|
wneuper@642
|
875 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@641
|
876 |
(*---^^^-OK-----------------------------------------------------------------*)
|
wneuper@641
|
877 |
(*---vvv-NOTok--------------------------------------------------------------*)
|
wneuper@641
|
878 |
|
wneuper@641
|
879 |
|
wneuper@658
|
880 |
"----- Bsp 7.27 with me";
|
wneuper@637
|
881 |
val fmz = ["Traegerlaenge L","Streckenlast q_0","Biegelinie y",
|
wneuper@636
|
882 |
"Randbedingungen [y 0 = 0, y L = 0, M_b 0 = 0, M_b L = 0]",
|
wneuper@637
|
883 |
"FunktionsVariable x"];
|
wneuper@637
|
884 |
val (dI',pI',mI') = ("Biegelinie.thy", ["Biegelinien"],
|
wneuper@637
|
885 |
["IntegrierenUndKonstanteBestimmen2"]);
|
wneuper@637
|
886 |
val p = e_pos'; val c = [];
|
wneuper@637
|
887 |
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
|
wneuper@637
|
888 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@637
|
889 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@637
|
890 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@637
|
891 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@637
|
892 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@637
|
893 |
if nxt = ("Apply_Method", Apply_Method ["IntegrierenUndKonstanteBestimmen2"])
|
wneuper@637
|
894 |
then () else raise error "biegelinie.sml met2 a";
|
wneuper@642
|
895 |
|
wneuper@637
|
896 |
(*** actual arg(s) missing for '["(#Find, (Funktionen, funs_))"]' i.e. should be 'copy-named' by '*_._'
|
wneuper@637
|
897 |
... THIS MEANS:
|
wneuper@637
|
898 |
#a# "Script Biegelinie2Script ..
|
wneuper@637
|
899 |
\ ... (SubProblem (Biegelinie_,[vonBelastungZu,Biegelinien], \
|
wneuper@637
|
900 |
\ [Biegelinien,ausBelastung]) \
|
wneuper@637
|
901 |
\ [real_ q_, real_ v_]); \
|
wneuper@636
|
902 |
|
wneuper@637
|
903 |
#b# prep_met ... (["Biegelinien","ausBelastung"],
|
wneuper@637
|
904 |
... ("#Given" ,["Streckenlast q_","FunktionsVariable v_"]),
|
wneuper@637
|
905 |
"Script Belastung2BiegelScript (q_::real) (v_::real) = \
|
wneuper@636
|
906 |
|
wneuper@637
|
907 |
#a#b# BOTH HAVE 2 ARGUMENTS q_ and v_ ...OK
|
wneuper@637
|
908 |
##########################################################################
|
wneuper@637
|
909 |
BUT THE (#Find, (Funktionen, funs_)) IS NOT COPYNAMED BY funs___ !!!3*_!!!
|
wneuper@637
|
910 |
##########################################################################*)
|
wneuper@656
|
911 |
"further 'me' see ----- SubProblem (_,[vonBelastungZu,Biegelinien] -------\
|
wneuper@656
|
912 |
\ ----- SubProblem (_,[setzeRandbedingungen,Biegelinien] -";
|
wneuper@642
|
913 |
|
wneuper@658
|
914 |
"----- Bsp 7.27 with autoCalculate";
|
wneuper@658
|
915 |
states:=[];
|
wneuper@658
|
916 |
CalcTree [(["Traegerlaenge L","Streckenlast q_0","Biegelinie y",
|
wneuper@658
|
917 |
"Randbedingungen [y 0 = 0, y L = 0, M_b 0 = 0, M_b L = 0]",
|
wneuper@658
|
918 |
"FunktionsVariable x"],
|
wneuper@658
|
919 |
("Biegelinie.thy", ["Biegelinien"],
|
wneuper@658
|
920 |
["IntegrierenUndKonstanteBestimmen2"]))];
|
wneuper@658
|
921 |
moveActiveRoot 1;
|
wneuper@658
|
922 |
trace_script := true;
|
wneuper@658
|
923 |
autoCalculate 1 CompleteCalcHead;val ((pt,_),_) = get_calc 1;show_pt pt;
|
wneuper@658
|
924 |
(*
|
wneuper@658
|
925 |
autoCalculate 1 CompleteCalc;
|
wneuper@658
|
926 |
*)
|
wneuper@658
|
927 |
trace_script := false;
|
wneuper@636
|
928 |
|
wneuper@636
|
929 |
|
wneuper@656
|
930 |
"----------- investigate normalforms in biegelinien --------------";
|
wneuper@656
|
931 |
"----------- investigate normalforms in biegelinien --------------";
|
wneuper@656
|
932 |
"----------- investigate normalforms in biegelinien --------------";
|
wneuper@642
|
933 |
"----- coming from integration:";
|
wneuper@642
|
934 |
val Q = str2term "Q x = c + -1 * q_0 * x";
|
wneuper@642
|
935 |
val M_b = str2term "M_b x = c_2 + c * x + -1 * q_0 / 2 * x ^^^ 2";
|
wneuper@642
|
936 |
val y' = str2term "y' x = c_3 + 1 / (-1 * EI) * (c_2 * x + c / 2 * x ^^^ 2 + -1 * q_0 / 6 * x ^^^ 3)";
|
wneuper@642
|
937 |
val y = str2term "y x = c_4 + c_3 * x +\n1 / (-1 * EI) * (c_2 / 2 * x ^^^ 2 + c / 6 * x ^^^ 3 + -1 * q_0 / 24 * x ^^^ 4)";
|
wneuper@642
|
938 |
(*^^^ 1 / (-1 * EI) NOT distributed - ok! ^^^^^^^^^^^^^^^^^^^^^^^*)
|
wneuper@642
|
939 |
|
wneuper@642
|
940 |
"----- functions comming from:";
|