# Run the command "Execute Worksheet" in the Edit menu to see output. restart; Digits:=16; # Forces Maple to compute exactly 16 digits in every "evalf" IiM7 interface(displayprecision=16); # Forces Maple to display all 16 of those digits ISIi 2.1, #5: Use the Bisection method to find a solution accurate to within 10^(-5) for the following problems, # This program uses the bisection method on the given function f, starting from given endpoints # left and right, and a given tolerance Tol. It computes the number of iterations required. bisection:=proc(f,left,right,Tol) local N,Count,RootFound,a,b,m,x: N:=floor(ln((right-left)/Tol)/ln(2)): Count:=1: RootFound:=false: a:=evalf(left): b:=evalf(right): print("Starting interval", [a,b]); if(sign(f(a))<>sign(f(b))) then while ( (RootFound=false) and (Count<=N) ) do m := evalf(a+(b-a)/2): if (evalf(f(m))=0) then RootFound:=true: x:=m: else if sign(evalf(f(m)))=sign(evalf(f(a))) then a:=m: else b:=m: end if: x:=evalf(a+(b-a)/2): end if: Count:=Count+1: print(Count, "Interval", [a,b], "Root", x); end do: else print(`Function doesn't change sign.`): end if: end: prob2_1_5a:=x->x-2^(-x); Zio2I0kieEc2IkYlNiRJKW9wZXJhdG9yR0YlSSZhcnJvd0dGJUYlLCY5JCIiIikiIiMsJEYqISIiRi9GJUYlRiU= prob2_1_5b:=x->exp(x)-x^2+3*x-2; Zio2I0kieEc2IkYlNiRJKW9wZXJhdG9yR0YlSSZhcnJvd0dGJUYlLCotSSRleHBHRiU2IzkkIiIiKiRGLSIiIyEiIkYtIiIkISIjRi5GJUYlRiU= prob2_1_5c:=x->2*x*cos(2*x)-(x+1)^2; Zio2I0kieEc2IkYlNiRJKW9wZXJhdG9yR0YlSSZhcnJvd0dGJUYlLCYqJjkkIiIiLUkkY29zR0YlNiMsJEYrIiIjRixGMSokLCZGK0YsRixGLEYxISIiRiVGJUYl prob2_1_5d:=x->x*cos(x)-2*x^2+3*x-1; Zio2I0kieEc2IkYlNiRJKW9wZXJhdG9yR0YlSSZhcnJvd0dGJUYlLCoqJjkkIiIiLUkkY29zR0YlNiNGK0YsRiwqJEYrIiIjISIjRisiIiQhIiJGLEYlRiVGJQ== bisection(prob2_1_5a,0,1,0.00001); NiRRMlN0YXJ0aW5nfmludGVydmFsNiI3JCQiIiFGJyQiIiJGJw== NiciIiNRKUludGVydmFsNiI3JCQiMSsrKysrKytdISM7JCIiIiIiIVElUm9vdEYlJCIxKysrKysrK3ZGKQ== NiciIiRRKUludGVydmFsNiI3JCQiMSsrKysrKytdISM7JCIxKysrKysrK3ZGKVElUm9vdEYlJCIxKysrKysrXWlGKQ== NiciIiVRKUludGVydmFsNiI3JCQiMSsrKysrK11pISM7JCIxKysrKysrK3ZGKVElUm9vdEYlJCIxKysrKysrdm9GKQ== NiciIiZRKUludGVydmFsNiI3JCQiMSsrKysrK11pISM7JCIxKysrKysrdm9GKVElUm9vdEYlJCIxKysrKytdaWxGKQ== NiciIidRKUludGVydmFsNiI3JCQiMSsrKysrK11pISM7JCIxKysrKytdaWxGKVElUm9vdEYlJCIxKysrKytEMWtGKQ== NiciIihRKUludGVydmFsNiI3JCQiMSsrKysrRDFrISM7JCIxKysrKytdaWxGKVElUm9vdEYlJCIxKysrK11QJVsnRik= NiciIilRKUludGVydmFsNiI3JCQiMSsrKysrRDFrISM7JCIxKysrK11QJVsnRilRJVJvb3RGJSQiMSsrKytESlhrRik= NiciIipRKUludGVydmFsNiI3JCQiMSsrKysrRDFrISM7JCIxKysrK0RKWGtGKVElUm9vdEYlJCIxKysrXTd5RGtGKQ== NiciIzVRKUludGVydmFsNiI3JCQiMSsrKysrRDFrISM7JCIxKysrXTd5RGtGKVElUm9vdEYlJCIxKysrRGMsO2tGKQ== NiciIzZRKUludGVydmFsNiI3JCQiMSsrKysrRDFrISM7JCIxKysrRGMsO2tGKVElUm9vdEYlJCIxKytdN0c4NmtGKQ== NiciIzdRKUludGVydmFsNiI3JCQiMSsrXTdHODZrISM7JCIxKysrRGMsO2tGKVElUm9vdEYlJCIxKyt2PVVkOGtGKQ== NiciIzhRKUludGVydmFsNiI3JCQiMSsrXTdHODZrISM7JCIxKyt2PVVkOGtGKVElUm9vdEYlJCIxK11pOk5ON2tGKQ== NiciIzlRKUludGVydmFsNiI3JCQiMSsrXTdHODZrISM7JCIxK11pOk5ON2tGKVElUm9vdEYlJCIxK0Qxa0p1NmtGKQ== NiciIzpRKUludGVydmFsNiI3JCQiMStEMWtKdTZrISM7JCIxK11pOk5ON2tGKVElUm9vdEYlJCIxXVAlKVIkWz9UJ0Yp NiciIztRKUludGVydmFsNiI3JCQiMStEMWtKdTZrISM7JCIxXVAlKVIkWz9UJ0YpUSVSb290RiUkIjFESiY+diYqPVQnRik= NiciIzxRKUludGVydmFsNiI3JCQiMStEMWtKdTZrISM7JCIxREomPnYmKj1UJ0YpUSVSb290RiUkIjE3eStlJT49VCdGKQ== bisection(prob2_1_5b,0,1,0.00001); NiRRMlN0YXJ0aW5nfmludGVydmFsNiI3JCQiIiFGJyQiIiJGJw== NiciIiNRKUludGVydmFsNiI3JCQiIiFGKCQiMSsrKysrKytdISM7USVSb290RiUkIjErKysrKysrREYr NiciIiRRKUludGVydmFsNiI3JCQiMSsrKysrKytEISM7JCIxKysrKysrK11GKVElUm9vdEYlJCIxKysrKysrXVBGKQ== NiciIiVRKUludGVydmFsNiI3JCQiMSsrKysrKytEISM7JCIxKysrKysrXVBGKVElUm9vdEYlJCIxKysrKysrREpGKQ== NiciIiZRKUludGVydmFsNiI3JCQiMSsrKysrKytEISM7JCIxKysrKysrREpGKVElUm9vdEYlJCIxKysrKytdN0dGKQ== NiciIidRKUludGVydmFsNiI3JCQiMSsrKysrKytEISM7JCIxKysrKytdN0dGKVElUm9vdEYlJCIxKysrKytEY0VGKQ== NiciIihRKUludGVydmFsNiI3JCQiMSsrKysrKytEISM7JCIxKysrKytEY0VGKVElUm9vdEYlJCIxKysrK103eURGKQ== NiciIilRKUludGVydmFsNiI3JCQiMSsrKysrKytEISM7JCIxKysrK103eURGKVElUm9vdEYlJCIxKysrK0QxUkRGKQ== NiciIipRKUludGVydmFsNiI3JCQiMSsrKytEMVJEISM7JCIxKysrK103eURGKVElUm9vdEYlJCIxKysrXVBmZURGKQ== NiciIzVRKUludGVydmFsNiI3JCQiMSsrK11QZmVEISM7JCIxKysrK103eURGKVElUm9vdEYlJCIxKysrdiRmJG9ERik= NiciIzZRKUludGVydmFsNiI3JCQiMSsrK3YkZiRvRCEjOyQiMSsrKytdN3lERilRJVJvb3RGJSQiMSsrXSg9VUtkI0Yp NiciIzdRKUludGVydmFsNiI3JCQiMSsrXSg9VUtkIyEjOyQiMSsrKytdN3lERilRJVJvb3RGJSQiMSsrdiRmJG92REYp NiciIzhRKUludGVydmFsNiI3JCQiMSsrXSg9VUtkIyEjOyQiMSsrdiRmJG92REYpUSVSb290RiUkIjErXWkhKkdZdURGKQ== NiciIzlRKUludGVydmFsNiI3JCQiMStdaSEqR1l1RCEjOyQiMSsrdiRmJG92REYpUSVSb290RiUkIjErdj1VSzJ2REYp NiciIzpRKUludGVydmFsNiI3JCQiMSt2PVVLMnZEISM7JCIxKyt2JGYkb3ZERilRJVJvb3RGJSQiMV0ob3pUeWBkI0Yp NiciIztRKUludGVydmFsNiI3JCQiMSt2PVVLMnZEISM7JCIxXShvelR5YGQjRilRJVJvb3RGJSQiMUQieSskZUF2REYp NiciIzxRKUludGVydmFsNiI3JCQiMUQieSskZUF2RCEjOyQiMV0ob3pUeWBkI0YpUSVSb290RiUkIjFQTS1DQEl2REYp bisection(prob2_1_5c,-3,-2,0.00001); NiRRMlN0YXJ0aW5nfmludGVydmFsNiI3JCQhIiQiIiEkISIjRig= NiciIiNRKUludGVydmFsNiI3JCQhMSsrKysrKytEISM6JCEiIyIiIVElUm9vdEYlJCExKysrKysrXUFGKQ== NiciIiRRKUludGVydmFsNiI3JCQhMSsrKysrK11BISM6JCEiIyIiIVElUm9vdEYlJCExKysrKysrREBGKQ== NiciIiVRKUludGVydmFsNiI3JCQhMSsrKysrK11BISM6JCExKysrKysrREBGKVElUm9vdEYlJCExKysrKytdKD0jRik= NiciIiZRKUludGVydmFsNiI3JCQhMSsrKysrK11BISM6JCExKysrKytdKD0jRilRJVJvb3RGJSQhMSsrKysrdj1BRik= NiciIidRKUludGVydmFsNiI3JCQhMSsrKysrdj1BISM6JCExKysrKytdKD0jRilRJVJvb3RGJSQhMSsrKytdNy5BRik= NiciIihRKUludGVydmFsNiI3JCQhMSsrKytdNy5BISM6JCExKysrKytdKD0jRilRJVJvb3RGJSQhMSsrKytESiY+I0Yp NiciIilRKUludGVydmFsNiI3JCQhMSsrKytESiY+IyEjOiQhMSsrKysrXSg9I0YpUSVSb290RiUkITErKytdaVMiPiNGKQ== NiciIipRKUludGVydmFsNiI3JCQhMSsrK11pUyI+IyEjOiQhMSsrKysrXSg9I0YpUSVSb290RiUkITErKytESlgqPSNGKQ== NiciIzVRKUludGVydmFsNiI3JCQhMSsrK11pUyI+IyEjOiQhMSsrK0RKWCo9I0YpUSVSb290RiUkITErK10ob0gvPiNGKQ== NiciIzZRKUludGVydmFsNiI3JCQhMSsrK11pUyI+IyEjOiQhMSsrXShvSC8+I0YpUSVSb290RiUkITErK3ZveiI0PiNGKQ== NiciIzdRKUludGVydmFsNiI3JCQhMSsrK11pUyI+IyEjOiQhMSsrdm96IjQ+I0YpUSVSb290RiUkITErXVA0QDsiPiNGKQ== NiciIzhRKUludGVydmFsNiI3JCQhMSsrK11pUyI+IyEjOiQhMStdUDRAOyI+I0YpUSVSb290RiUkITErdm96VEciPiNGKQ== NiciIzlRKUludGVydmFsNiI3JCQhMSsrK11pUyI+IyEjOiQhMSt2b3pURyI+I0YpUSVSb290RiUkITFdUCVbQFg4PiNGKQ== NiciIzpRKUludGVydmFsNiI3JCQhMV1QJVtAWDg+IyEjOiQhMSt2b3pURyI+I0YpUSVSb290RiUkITFEY0UocDk4PiNGKQ== NiciIztRKUludGVydmFsNiI3JCQhMURjRShwOTg+IyEjOiQhMSt2b3pURyI+I0YpUSVSb290RiUkITFpbFpRJSpIIj4jRik= NiciIzxRKUludGVydmFsNiI3JCQhMURjRShwOTg+IyEjOiQhMWlsWlElKkgiPiNGKVElUm9vdEYlJCExJDRyeTEyOD4jRik= bisection(prob2_1_5c,-1,0,0.00001); NiRRMlN0YXJ0aW5nfmludGVydmFsNiI3JCQhIiIiIiEkRihGKA== NiciIiNRKUludGVydmFsNiI3JCQhIiIiIiEkITErKysrKysrXSEjO1ElUm9vdEYlJCExKysrKysrK3ZGLA== NiciIiRRKUludGVydmFsNiI3JCQhIiIiIiEkITErKysrKysrdiEjO1ElUm9vdEYlJCExKysrKysrXSgpRiw= NiciIiVRKUludGVydmFsNiI3JCQhMSsrKysrK10oKSEjOyQhMSsrKysrKyt2RilRJVJvb3RGJSQhMSsrKysrK0QiKUYp NiciIiZRKUludGVydmFsNiI3JCQhMSsrKysrK0QiKSEjOyQhMSsrKysrKyt2RilRJVJvb3RGJSQhMSsrKysrXTd5Rik= NiciIidRKUludGVydmFsNiI3JCQhMSsrKysrK0QiKSEjOyQhMSsrKysrXTd5RilRJVJvb3RGJSQhMSsrKysrdm96Rik= NiciIihRKUludGVydmFsNiI3JCQhMSsrKysrK0QiKSEjOyQhMSsrKysrdm96RilRJVJvb3RGJSQhMSsrKytdKG8vKUYp NiciIilRKUludGVydmFsNiI3JCQhMSsrKytdKG8vKSEjOyQhMSsrKysrdm96RilRJVJvb3RGJSQhMSsrKytEInkrKUYp NiciIipRKUludGVydmFsNiI3JCQhMSsrKytEInkrKSEjOyQhMSsrKysrdm96RilRJVJvb3RGJSQhMSsrK103RykpekYp NiciIzVRKUludGVydmFsNiI3JCQhMSsrK103RykpeiEjOyQhMSsrKysrdm96RilRJVJvb3RGJSQhMSsrK0RjXnl6Rik= NiciIzZRKUludGVydmFsNiI3JCQhMSsrK103RykpeiEjOyQhMSsrK0RjXnl6RilRJVJvb3RGJSQhMSsrXVAlKVIkKXpGKQ== NiciIzdRKUludGVydmFsNiI3JCQhMSsrXVAlKVIkKXohIzskITErKytEY155ekYpUSVSb290RiUkITErK0RKcSY0KXpGKQ== NiciIzhRKUludGVydmFsNiI3JCQhMSsrXVAlKVIkKXohIzskITErK0RKcSY0KXpGKVElUm9vdEYlJCExK11QTXg8Iyl6Rik= NiciIzlRKUludGVydmFsNiI3JCQhMStdUE14PCMpeiEjOyQhMSsrREpxJjQpekYpUSVSb290RiUkITErRCJHUW46KXpGKQ== NiciIzpRKUludGVydmFsNiI3JCQhMStdUE14PCMpeiEjOyQhMStEIkdRbjopekYpUSVSb290RiUkITFdUGZlRCg9KXpGKQ== NiciIztRKUludGVydmFsNiI3JCQhMV1QZmVEKD0peiEjOyQhMStEIkdRbjopekYpUSVSb290RiUkITFESnFxKj48KXpGKQ== NiciIzxRKUludGVydmFsNiI3JCQhMURKcXEqPjwpeiEjOyQhMStEIkdRbjopekYpUSVSb290RiUkITE3eXZ3T2siKXpGKQ== bisection(prob2_1_5d,0.2,0.3,0.00001); NiRRMlN0YXJ0aW5nfmludGVydmFsNiI3JCQiIiMhIiIkIiIkRig= NiciIiNRKUludGVydmFsNiI3JCQiMSsrKysrKytEISM7JCIiJCEiIlElUm9vdEYlJCIxKysrKysrXUZGKQ== NiciIiRRKUludGVydmFsNiI3JCQiMSsrKysrK11GISM7JEYjISIiUSVSb290RiUkIjErKysrKyt2R0Yp NiciIiVRKUludGVydmFsNiI3JCQiMSsrKysrK3ZHISM7JCIiJCEiIlElUm9vdEYlJCIxKysrKytdUEhGKQ== NiciIiZRKUludGVydmFsNiI3JCQiMSsrKysrXVBIISM7JCIiJCEiIlElUm9vdEYlJCIxKysrKyt2b0hGKQ== NiciIidRKUludGVydmFsNiI3JCQiMSsrKysrdm9IISM7JCIiJCEiIlElUm9vdEYlJCIxKysrK11QJSlIRik= NiciIihRKUludGVydmFsNiI3JCQiMSsrKysrdm9IISM7JCIxKysrK11QJSlIRilRJVJvb3RGJSQiMSsrKytEY3dIRik= NiciIilRKUludGVydmFsNiI3JCQiMSsrKysrdm9IISM7JCIxKysrK0Rjd0hGKVElUm9vdEYlJCIxKysrXWlsc0hGKQ== NiciIipRKUludGVydmFsNiI3JCQiMSsrK11pbHNIISM7JCIxKysrK0Rjd0hGKVElUm9vdEYlJCIxKysrdiQ0WShIRik= NiciIzVRKUludGVydmFsNiI3JCQiMSsrK3YkNFkoSCEjOyQiMSsrKytEY3dIRilRJVJvb3RGJSQiMSsrXVBmZXZIRik= NiciIzZRKUludGVydmFsNiI3JCQiMSsrK3YkNFkoSCEjOyQiMSsrXVBmZXZIRilRJVJvb3RGJSQiMSsrRGN3NHZIRik= NiciIzdRKUludGVydmFsNiI3JCQiMSsrRGN3NHZIISM7JCIxKytdUGZldkhGKVElUm9vdEYlJCIxK10ob3pUYChIRik= NiciIzhRKUludGVydmFsNiI3JCQiMSsrRGN3NHZIISM7JCIxK10ob3pUYChIRilRJVJvb3RGJSQiMStEY0UoPl8oSEYp NiciIzlRKUludGVydmFsNiI3JCQiMStEY0UoPl8oSCEjOyQiMStdKG96VGAoSEYpUSVSb290RiUkIjFdKD08dyFHdkhGKQ== bisection(prob2_1_5d,1.2,1.3,0.00001); NiRRMlN0YXJ0aW5nfmludGVydmFsNiI3JCQiIzchIiIkIiM4Rig= NiciIiNRKUludGVydmFsNiI3JCQiMSsrKysrK103ISM6JCIjOCEiIlElUm9vdEYlJCIxKysrKysrdjdGKQ== NiciIiRRKUludGVydmFsNiI3JCQiMSsrKysrK103ISM6JCIxKysrKysrdjdGKVElUm9vdEYlJCIxKysrKytdaTdGKQ== NiciIiVRKUludGVydmFsNiI3JCQiMSsrKysrK103ISM6JCIxKysrKytdaTdGKVElUm9vdEYlJCIxKysrKytEYzdGKQ== NiciIiZRKUludGVydmFsNiI3JCQiMSsrKysrRGM3ISM6JCIxKysrKytdaTdGKVElUm9vdEYlJCIxKysrK11QZjdGKQ== NiciIidRKUludGVydmFsNiI3JCQiMSsrKysrRGM3ISM6JCIxKysrK11QZjdGKVElUm9vdEYlJCIxKysrK0QieUQiRik= NiciIihRKUludGVydmFsNiI3JCQiMSsrKysrRGM3ISM6JCIxKysrK0QieUQiRilRJVJvb3RGJSQiMSsrK103LmQ3Rik= NiciIilRKUludGVydmFsNiI3JCQiMSsrKysrRGM3ISM6JCIxKysrXTcuZDdGKVElUm9vdEYlJCIxKysrRDFrYzdGKQ== NiciIipRKUludGVydmFsNiI3JCQiMSsrKysrRGM3ISM6JCIxKysrRDFrYzdGKVElUm9vdEYlJCIxKytdN2BXYzdGKQ== NiciIzVRKUludGVydmFsNiI3JCQiMSsrXTdgV2M3ISM6JCIxKysrRDFrYzdGKVElUm9vdEYlJCIxKyt2b0hhYzdGKQ== NiciIzZRKUludGVydmFsNiI3JCQiMSsrdm9IYWM3ISM6JCIxKysrRDFrYzdGKVElUm9vdEYlJCIxK10ob3oiZmM3Rik= NiciIzdRKUludGVydmFsNiI3JCQiMStdKG96ImZjNyEjOiQiMSsrK0Qxa2M3RilRJVJvb3RGJSQiMSt2JDRAO21EIkYp NiciIzhRKUludGVydmFsNiI3JCQiMSt2JDRAO21EIiEjOiQiMSsrK0Qxa2M3RilRJVJvb3RGJSQiMV0ob3pUR21EIkYp NiciIzlRKUludGVydmFsNiI3JCQiMSt2JDRAO21EIiEjOiQiMV0ob3pUR21EIkYpUSVSb290RiUkIjFESlg5QmljN0Yp 2.2, #3: The following four methods are proposed to compute 21^(1/3). Rank them in order, based on their apparent speed of convergence, assuming p0=1. # This program just iterates f, from a given initial condition, a total of Maxiter times. iterator:=proc(f,initial,Maxiter) local i,x: x:=evalf(initial); for i from 1 to Maxiter do x:=evalf(f(x)): print(x): end do: end: prob2_2_3a:=x->(20*x+21/x^2)/(21); Zio2I0kieEc2IkYlNiRJKW9wZXJhdG9yR0YlSSZhcnJvd0dGJUYlLCY5JCMiIz8iI0AqJEYqISIjIiIiRiVGJUYl prob2_2_3b:=x->x-(x^3-21)/(3*x^2); Zio2I0kieEc2IkYlNiRJKW9wZXJhdG9yR0YlSSZhcnJvd0dGJUYlLCY5JCIiIiomLCYqJEYqIiIkRishI0BGK0YrRiohIiMjISIiRi9GJUYlRiU= prob2_2_3c:=x->x-(x^4-21*x)/(x^2-21); Zio2I0kieEc2IkYlNiRJKW9wZXJhdG9yR0YlSSZhcnJvd0dGJUYlLCY5JCIiIiomLCYqJEYqIiIlRitGKiEjQEYrLCYqJEYqIiIjRitGMEYrISIiRjRGJUYlRiU= prob2_2_3d:=x->(21/x)^(1/2); Zio2I0kieEc2IkYlNiRJKW9wZXJhdG9yR0YlSSZhcnJvd0dGJUYlKiYiI0AjIiIiIiIjKiQ5JCEiIkYrRiVGJUYl iterator(prob2_2_3a,1,10); JCIxXzRRXzRRXz4hIzo= JCIxRicqeXRVdkBAISM6 JCIxZlEtI3BcR0MjISM6 JCIxV3NfcydSW0wjISM6 JCIxIkcvLVEkNDJDISM6 JCIxJHAydkdmXVkjISM6 JCIxQXclSFlWQV4jISM6 JCIxdkxRJzRkNWIjISM6 JCIxW0Y/bnhCJGUjISM6 JCIxUl5oVzkzNUUhIzo= iterator(prob2_2_3b,1,10); JCIxbm1tbW1tbXchIzo= JCIxYi5yUVA/SV8hIzo= JCIxN19wPXBwVVAhIzo= JCIxLmtGb04mWypIISM6 JCIxa20nZUFBcXgjISM6 JCIxWEtVbT0vZkYhIzo= JCIxXjdTIj1DKmVGISM6 JCIxPzZRd1QjKmVGISM6 JCIxQDZRd1QjKmVGISM6 JCIxQDZRd1QjKmVGISM6 iterator(prob2_2_3c,1,4); JCIiIUYj JCIiIUYj JCIiIUYj JCIiIUYj iterator(prob2_2_3d,1,10);LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYjLUkjbWlHRiQ2JVEhRicvJSdpdGFsaWNHUSV0cnVlRicvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0Yn JCIxU2UmXHB2RGUlISM6 JCIxcyFHSDkmcFNAISM6 JCIxKHo+XGZ2PzgkISM6 JCIxOjVVRmxPKmUjISM6 JCIxJD5aV0ZBeSVHISM6 JCIxc0FqXzdfOkYhIzo= JCIxQixyJTQmKTN5IyEjOg== JCIxRSl6JFEpMyFbRiEjOg== JCIxTnpSJDQpUmtGISM6 JCIxJDQtUkciPmNGISM6 evalf(21^(1/3)); # the true answer JCIxQDZRd1QjKmVGISM6 By far the best method is from the function in part (b), which happens to be Newton's method. After 8 steps, it has already nailed the answer to 16 digits. The second best method is part (d), which gets the answer to three digits after 10 steps. The third best is part (a), which after 10 steps is only correct to one digit. The worst method is part (c), which immediately lands on the wrong fixed point and never leaves. 2.2 #7. Use Theorem 2.2 to show that g(x) = Pi + 0.5*sin(x/2) has a unique fixed point on [0,2*Pi]. Use fixed-point iteration to find an approximation to the fixed point that is accurate to within 10^(-2). Use Corollary 2.4 to estimate the number of iterations required to achieve 10^(-2) accuracy, and compare this theoretical estimate to the number actually needed. g:=x->Pi+1/2*sin(x/2); Zio2I0kieEc2IkYlNiRJKW9wZXJhdG9yR0YlSSZhcnJvd0dGJUYlLCZJI1BpRyUqcHJvdGVjdGVkRyIiIi1JJHNpbkdGJTYjLCQ5JCNGLCIiI0YyRiVGJUYl maximize(D(g)(x),x=0..2*Pi); IyIiIiIiJQ== So the maximum of the derivative of g on the given interval is k = 1/4. Then Theorem 2.3 tells us the iterates of g converge to the unique fixed point. # Run the iterator program for 10 steps, with initial condition the midpoint iterator(g,Pi,10); JCIxJHoqZWBFZlRPISM6 JCIxOl5XaylbZ2kkISM6 JCIxTihRQ2kmKnBpJCEjOg== JCIxPGFBJXpRcGkkISM6 JCIxJTReJDNBJXBpJCEjOg== JCIxKkhbSytVcGkkISM6 JCIxVClwYixVcGkkISM6 JCIxRCdIWyxVcGkkISM6 JCIxJTR1WyxVcGkkISM6 JCIxQTkoWyxVcGkkISM6 # Find the exact solution using prepackaged Maple program: fsolve(g(x)=x,x=0..2*Pi); JCIxdTooWyxVcGkkISM6 The iterator is correct to within 0.01 after two steps. Now Corollary 2.4 says the error is at most k^n/(1-k)*abs(p1-p0). fsolve(0.01=(1/4)^n/(1-1/4)*abs(Pi-g(Pi)),n); JCIxJXlFWCVvV0hJISM6 This tells us that we should require at least three steps, using the theoretical estimate. Of course, the theoretical estimate is always the worst possible upper bound, and we often get a little luckier than we'd expect. 2.3 #5: Use Newton's method to find solutions accurate to within 10^(-4) for the following problems. newtonizer:=proc(f,initial,Tol,Maxiter) local Count,AbsError,x,newx: Count:=1: x:=evalf(initial): AbsError:=Tol+1: print(Count,x): while ( (AbsError>Tol) and (Count<=Maxiter) and (evalf(D(f)(x))<>0) ) do newx:=evalf(x-f(x)/D(f)(x)): Count:=Count+1: AbsError:=evalf(abs(newx-x)): x:=newx: print(Count,x): end do: if (AbsError>Tol) then print(`Couldn't reach tolerance.`): end if: if (evalf(D(f)(x))=0) then print(`Derivative was zero.`): end if: end: prob2_3_5a:=x->x^3-2*x^2-5; Zio2I0kieEc2IkYlNiRJKW9wZXJhdG9yR0YlSSZhcnJvd0dGJUYlLCgqJDkkIiIkIiIiKiRGKyIiIyEiIyEiJkYtRiVGJUYl prob2_3_5b:=x->x^3+3*x^2-1; Zio2I0kieEc2IkYlNiRJKW9wZXJhdG9yR0YlSSZhcnJvd0dGJUYlLCgqJDkkIiIkIiIiKiRGKyIiI0YsISIiRi1GJUYlRiU= prob2_3_5c:=x->x-cos(x); Zio2I0kieEc2IkYlNiRJKW9wZXJhdG9yR0YlSSZhcnJvd0dGJUYlLCY5JCIiIi1JJGNvc0c2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkdGJTYjRiohIiJGJUYlRiU= prob2_3_5d:=x->x-0.8-0.2*sin(x); Zio2I0kieEc2IkYlNiRJKW9wZXJhdG9yR0YlSSZhcnJvd0dGJUYlLCg5JCIiIiQiIikhIiJGLiomJCIiI0YuRistSSRzaW5HNiQlKnByb3RlY3RlZEdJKF9zeXNsaWJHRiU2I0YqRitGLkYlRiVGJQ== Now to actually use Newton's method, we start with the midpoint of the interval and assume 10 steps are sufficient. newtonizer(prob2_3_5a,2.5,0.0001,10); NiQiIiIkIiNEISIi NiQiIiMkIjE5ZEc5ZEc5RiEjOg== NiQiIiQkIjFVR3M7OiY0cCMhIzo= NiQiIiUkIjElKm9EKlxaMXAjISM6 NiQiIiYkIjE6J0chW3VrIXAjISM6 newtonizer(prob2_3_5b,-2.5,0.0001,10); NiQiIiIkISNEISIi NiQiIiMkITFubW1tbW1tSSEjOg== NiQiIiQkITFNWidRZ3YzIUghIzo= NiQiIiUkITFQUVUvKj4oekchIzo= NiQiIiYkITFxI3BZSyZRekchIzo= NiQiIickITFBPWRUX1F6RyEjOg== newtonizer(prob2_3_5c,Pi/4,0.0001,10); NiQiIiIkIjEjW3VSaiIpUiZ5ISM7 NiQiIiMkIjEkUV9eTGhgUighIzs= NiQiIiQkIjEtLDEieV4zUighIzs= NiQiIiUkIjE2OzpLOCYzUighIzs= newtonizer(prob2_3_5d,Pi/4,0.0001,10); NiQiIiIkIjEjW3VSaiIpUiZ5ISM7 NiQiIiMkIjFOc0I0IzM3biohIzs= NiQiIiQkIjEwYlsmM1lMayohIzs= NiQiIiUkIjEzRiZwKClRTGsqISM7 2.3 #7. Repeat Exercise 5 using the Secant Method. secantizer:=proc(f,left,right,Tol,Maxiter) local Count,AbsError,firstx,secondx,newx,firsty,secondy: Count:=1: firstx:=evalf(left): secondx:=evalf(right): AbsError:=Tol+1: print(0,firstx): print(1,secondx): firsty:=evalf(f(firstx)): secondy:=evalf(f(secondx)): while ( (AbsError>Tol) and (Count<=Maxiter) and (firsty<>secondy) ) do newx:=evalf(secondx-secondy*(secondx-firstx)/(secondy-firsty)): Count:=Count+1: print(Count,newx): AbsError:=evalf(abs(newx-secondx)): firstx:=secondx: firsty:=secondy: secondx:=newx: secondy:=evalf(f(secondx)): end do: if (AbsError>Tol) then print(`Couldn't reach tolerance.`): end if: if (firsty=secondy) then print(`Secant slope was zero.`): end if: end: To run the Secant Method, we start with the left and right endpoints of the interval and suppose it will be done in 20 iterations. secantizer(prob2_3_5a,1,4,0.0001,20); NiQiIiEkIiIiRiM= NiQiIiIkIiIlIiIh NiQiIiMkIjFYWFhYWFhYOiEjOg== NiQiIiQkIjFGZzInUk1wKj4hIzo= NiQiIiUkIjFcWGp0TTEwVCEjOg== NiQiIiYkIjF3WHlkISpwJUgjISM6 NiQiIickIjFnO3kuanN5QyEjOg== NiQiIigkIjE0PEBIIW84diMhIzo= NiQiIikkIjFlITNXWiUzJG8jISM6 NiQiIiokIjFAR29MIilSIXAjISM6 NiQiIzUkIjFlIyo+J1xbMXAjISM6 NiQiIzYkIjF1UCl5V1oxcCMhIzo= secantizer(prob2_3_5b,-3,-2,0.0001,20); NiQiIiEkISIkRiM= NiQiIiIkISIjIiIh NiQiIiMkITErKysrKytdRiEjOg== NiQiIiQkITFubW1tbW1tSSEjOg== NiQiIiUkITFpdG8oUUM/J0chIzo= NiQiIiYkITFuQllPZj14RyEjOg== NiQiIickITFVcGMoKlFUekchIzo= NiQiIigkITEzb3QlPiZRekchIzo= secantizer(prob2_3_5c,0,Pi/2,0.0001,20); NiQiIiEkRiNGIw== NiQiIiIkIjEnKlt6RWp6cTohIzo= NiQiIiMkIjF2bF4uWjo1aCEjOw== NiQiIiQkIjEnXGRWVCZwS3MhIzs= NiQiIiUkIjFxc3VwNW4mUighIzs= NiQiIiYkIjFqMi5sViQzUighIzs= NiQiIickIjEhUVkuTF4zUighIzs= secantizer(prob2_3_5d,0,Pi/2,0.0001,20); NiQiIiEkRiNGIw== NiQiIiIkIjEnKlt6RWp6cTohIzo= NiQiIiMkIjEjPks8dy9zOyohIzs= NiQiIiQkIjE7JkdRRThiaCohIzs= NiQiIiUkIjFhIVI1JjNZVicqISM7 NiQiIiYkIjFnKSlbWClRTGsqISM7 2.3 #9. Repeat Exercise 5 using the method of False Position. # This program uses the bisection method on the given function f, starting from given endpoints # left and right, and a given tolerance Tol. It computes the number of iterations required. falsepositionizer:=proc(f,left,right,Tol,Maxiter) local N,Count,AbsError,a,b,m,x,lefty,righty,midy: N:=floor(ln((right-left)/Tol)/ln(2)): Count:=1: a:=evalf(left): b:=evalf(right): lefty:=evalf(f(a)): righty:=evalf(f(b)): if (sign(lefty)<>sign(righty)) then print("Starting interval", [a,b]): AbsError:=Tol+1: while ( (AbsError>Tol) and (Count<=N) and (sign(righty)<>sign(lefty))) do x := evalf(b-righty*(b-a)/(righty-lefty)): midy:=evalf(f(x)): if (midy=0) then AbsError:=0: elif sign(midy)=sign(lefty) then AbsError:=abs(x-a): a:=x: lefty:=midy: else AbsError:=abs(x-b): b:=x: righty:=midy: end if: Count:=Count+1: print(Count, "Interval", [a,b], "Root", x); end do: else print(`Function doesn't change sign.`): end if: end: falsepositionizer(prob2_3_5a,1,4,0.0001,20); NiRRMlN0YXJ0aW5nfmludGVydmFsNiI3JCQiIiIiIiEkIiIlRig= NiciIiNRKUludGVydmFsNiI3JCQiMVhYWFhYWFg6ISM6JCIiJSIiIVElUm9vdEYlRic= NiciIiRRKUludGVydmFsNiI3JCQiMUZnMidSTXAqPiEjOiQiIiUiIiFRJVJvb3RGJUYn NiciIiVRKUludGVydmFsNiI3JCQiMUF5QzMpZTBKIyEjOiRGIyIiIVElUm9vdEYlRic= NiciIiZRKUludGVydmFsNiI3JCQiMSlIPStaVW1cIyEjOiQiIiUiIiFRJVJvb3RGJUYn NiciIidRKUludGVydmFsNiI3JCQiMSxaQ28pKW8mZiMhIzokIiIlIiIhUSVSb290RiVGJw== NiciIihRKUludGVydmFsNiI3JCQiMXlQOGcqKT1YRSEjOiQiIiUiIiFRJVJvb3RGJUYn NiciIilRKUludGVydmFsNiI3JCQiMWR5KWYlWzdwRSEjOiQiIiUiIiFRJVJvb3RGJUYn NiciIipRKUludGVydmFsNiI3JCQiMSpwKyVmO14hbyMhIzokIiIlIiIhUSVSb290RiVGJw== NiciIzVRKUludGVydmFsNiI3JCQiMSZSNiQ9aSllbyMhIzokIiIlIiIhUSVSb290RiVGJw== NiciIzZRKUludGVydmFsNiI3JCQiMS5fJTRjOCUpbyMhIzokIiIlIiIhUSVSb290RiVGJw== NiciIzdRKUludGVydmFsNiI3JCQiMXNRIWYkKipmKm8jISM6JCIiJSIiIVElUm9vdEYlRic= NiciIzhRKUludGVydmFsNiI3JCQiMVYhPiR6ajohcCMhIzokIiIlIiIhUSVSb290RiVGJw== NiciIzlRKUludGVydmFsNiI3JCQiMV16JWVFPC9wIyEjOiQiIiUiIiFRJVJvb3RGJUYn NiciIzpRKUludGVydmFsNiI3JCQiMTlmTGYmUjBwIyEjOiQiIiUiIiFRJVJvb3RGJUYn falsepositionizer(prob2_3_5b,-3,-2,0.0001,20); NiRRMlN0YXJ0aW5nfmludGVydmFsNiI3JCQhIiQiIiEkISIjRig= NiciIiNRKUludGVydmFsNiI3JCQhIiQiIiEkITErKysrKytdRiEjOlElUm9vdEYlRio= NiciIiRRKUludGVydmFsNiI3JCQhIiQiIiEkITFBOC8mZm94J0chIzpRJVJvb3RGJUYq NiciIiVRKUludGVydmFsNiI3JCQhIiQiIiEkITFfPUAqNDEleUchIzpRJVJvb3RGJUYq NiciIiZRKUludGVydmFsNiI3JCQhIiQiIiEkITE+Ryoqb0pJekchIzpRJVJvb3RGJUYq NiciIidRKUludGVydmFsNiI3JCQhIiQiIiEkITFvL1JsJHkkekchIzpRJVJvb3RGJUYq falsepositionizer(prob2_3_5c,0,Pi/2,0.0001,20); NiRRMlN0YXJ0aW5nfmludGVydmFsNiI3JCQiIiFGJyQiMScqW3pFanpxOiEjOg== NiciIiNRKUludGVydmFsNiI3JCQiMXZsXi5aOjVoISM7JCIxJypbekVqenE6ISM6USVSb290RiVGJw== NiciIiRRKUludGVydmFsNiI3JCQiMSlcZFZUJnBLcyEjOyQiMScqW3pFanpxOiEjOlElUm9vdEYlRic= NiciIiVRKUludGVydmFsNiI3JCQiMSEpKmYyMWZFUCghIzskIjEnKlt6RWp6cTohIzpRJVJvb3RGJUYn NiciIiZRKUludGVydmFsNiI3JCQiMT8ieiUpb3goKVEoISM7JCIxJypbekVqenE6ISM6USVSb290RiVGJw== NiciIidRKUludGVydmFsNiI3JCQiMSM9ZG5AOjFSKCEjOyQiMScqW3pFanpxOiEjOlElUm9vdEYlRic= NiciIihRKUludGVydmFsNiI3JCQiMSplLixYQzNSKCEjOyQiMScqW3pFanpxOiEjOlElUm9vdEYlRic= falsepositionizer(prob2_3_5d,0,Pi/2,0.0001,20); NiRRMlN0YXJ0aW5nfmludGVydmFsNiI3JCQiIiFGJyQiMScqW3pFanpxOiEjOg== NiciIiNRKUludGVydmFsNiI3JCQiMSM+Szx3L3M7KiEjOyQiMScqW3pFanpxOiEjOlElUm9vdEYlRic= NiciIiRRKUludGVydmFsNiI3JCQiMTwmR1FFOGJoKiEjOyQiMScqW3pFanpxOiEjOlElUm9vdEYlRic= NiciIiVRKUludGVydmFsNiI3JCQiMTI/cUR4cVQnKiEjOyQiMScqW3pFanpxOiEjOlElUm9vdEYlRic= NiciIiZRKUludGVydmFsNiI3JCQiMSo+U0BDVktrKiEjOyQiMScqW3pFanpxOiEjOlElUm9vdEYlRic= NiciIidRKUludGVydmFsNiI3JCQiMV9XISlwS0xWJyohIzskIjEnKlt6RWp6cTohIzpRJVJvb3RGJUYn