#hw20.txt; Due April 13, 2014; Frank Wagner Help:=proc(): print(` BVPexact(Oper,D1,f,x,a,b,Ini,Fini,x1) `): end: ################### #####Problem 1##### ################### #BVPexact(Oper,D1,f,x,a,b,Ini,Fini,x1) #inputs an operator Oper in D1, #an expression f in x, two numbers a and b, #a list of values Ini and Fini, and a number x1 and #outputs the EXACT value of u(x1) where u(x) is #a solution of the ODE Boundary value problem #Oper(D1)u(x)=f(x), #f(a)=Ini[1], f'(a)=Ini[2], ...; #f(b)=Fini[1], f'(b)=Fini[2], ... BVPexact:=proc(Oper,D1,f,x,a,b,Ini,Fini,x1) local i,deg,c,Oper1,Inieq,Finieq,u,p: deg:=degree(Oper,D1): for i from 0 to deg do c[i]:=coeff(Oper,D1,i): od: Oper1:=add(c[i]*diff(u(x),x$i),i=1..deg)+c[0]*u(x): Inieq:={u(a)=Ini[1],seq((D@@i)(u)(a)=Ini[i+1],i=1..nops(Ini)-1)}: Finieq:={u(b)=Fini[1],seq((D@@i)(u)(b)=Fini[i+1],i=1..nops(Fini)-1)}: p:=dsolve({Oper1=f,op(Inieq),op(Finieq)},u(x)): subs(x=x1,eval(u(x),p)): end: #BVPexact(D1^2+1,D1,x^3,x,0,1,[1.5],[2.5],0.5); returns ##2.252722673 (with evalf) # #BVPexact(D1^4+3*D1^3+2*D1+1,D1,x^5+1,x,0,1,[1.0 , 2.0],[2.0 , 3.0 ],0.5); returns ##1.24029662259749-8.44592129567445*10^(-9)*I (with evalf)