{{{id=86| # Copyright 2009, P. Lutus # Released under the GPL (http://www.gnu.org/copyleft/gpl.html) /// }}} {{{id=45| %auto # initialization # reset() # commented out for now -- ticket 7255 var('f m b v x y z a b c d x_a x_b x_t y_a y_b y_t z_b z_t') # special equation rendering def render(x,name = "temp.png",size = "normal"): if(type(x) != type("")): x = latex(x) latex.eval("\\" + size + " $" + x + "$",{},"",name) def radians(x): return x * pi / 180 /// }}} {{{id=79| render(latex(v == (x_b+x_t)/2 * y * z),"full_volume_first_order_trapezoid.png","Large") /// }}} {{{id=73| render("$y = mx+b$","regress.png","Large") /// }}} {{{id=74| render(latex(m == (y_b-y_a)/(x_b-x_a)),"m_equ.png","Large") /// }}} {{{id=76| render(latex(b == (y_b-y_a)*m),"b_equ.png","Large") /// }}} {{{id=75| render("$f(x_a) = y_a$","temp.png","Large") /// }}} {{{id=80| render("$f(x_b) = y_b$","temp.png","Large") /// }}} {{{id=49| %auto # interpolation function ntrp(x,x_b,x_a,y_b,y_a) = (x-x_a)/(x_b-x_a)*(y_b-y_a)+y_a render(y == ntrp(x,x_b,x_a,y_b,y_a),"ntrp.png","Large") /// }}} {{{id=81| print " °c °f " for c in range(0,110,10): print "%4d %4.0f" % (c,ntrp(c,100,0,212,32)) /// °c °f 0 32 10 50 20 68 30 86 40 104 50 122 60 140 70 158 80 176 90 194 100 212 }}} {{{id=63| %auto # first-order (x) trapezoidal tank area fax(y,x_t,x_b,z,y_t,y_b) = ntrp(y,y_t,y_b,x_t,x_b) * z render(a == fax(y,x_b,x_t,z,y_b,y_t),"fax.png","Large") /// }}} {{{id=88| a == fax(y,x_t,x_b,z,y_t,y_b) /// a == ((y - y_b)*(x_b - x_t)/(y_b - y_t) + x_b)*z }}} {{{id=83| %auto # first-order (x) trapezoidal tank volume fvx(y,x_t,x_b,z,y_t,y_b) = integrate(fax(y,x_t,x_b,z,y_t,y_b),y) render(v == fvx(y,x_t,x_b,z,y_t,y_b),"fvx.png","Large") /// }}} {{{id=46| %auto # second-order (x,z) trapezoidal tank area faxz(y,x_t,x_b,z_t,z_b,y_t,y_b) = ntrp(y,y_t,y_b,x_t,x_b) * ntrp(y,y_t,y_b,z_t,z_b) render(a == faxz(y,x_b,x_t,z_b,z_t,y_b,y_t),"faxz.png","Large") /// }}} {{{id=38| %auto # second-order (x,z) trapezoidal tank volume fvxz(y,x_t,x_b,z_t,z_b,y_t,y_b) = integrate(faxz(y,x_t,x_b,z_t,z_b,y_t,y_b),y) render(v == fvxz(y,x_t,x_b,z_t,z_b,y_t,y_b),"fvxz.png","Large") /// }}} {{{id=84| fvxz(10,0,10,0,10,10,0) /// 1000/3 }}} {{{id=87| v == fvxz(y,x_t,x_b,z_t,z_b,y_t,y_b) /// v == 1/6*(2*((x_b - x_t)*z_b - (x_b - x_t)*z_t)*y^3 - 3*(((2*x_b - x_t)*y_t - x_t*y_b)*z_b - ((x_b - 2*x_t)*y_b + x_b*y_t)*z_t)*y^2 + 6*((x_b*y_t^2 - x_t*y_b*y_t)*z_b - (x_b*y_b*y_t - x_t*y_b^2)*z_t)*y)/(y_b^2 - 2*y_b*y_t + y_t^2) }}} {{{id=85| render("$v = fvxz(y,x_t,x_b,z_t,z_b,y_t,y_b)$","fvxz.png","Large") /// }}} {{{id=40| html.table([[y,N(fvxz(y,10, 5, 12, 7,10,0))] for y in range(0,11)]) ///
0 | 0.000000000000000 |
1 | 38.0833333333333 |
2 | 82.6666666666667 |
3 | 134.250000000000 |
4 | 193.333333333333 |
5 | 260.416666666667 |
6 | 336.000000000000 |
7 | 420.583333333333 |
8 | 514.666666666667 |
9 | 618.750000000000 |
10 | 733.333333333333 |