{VERSION 5 0 "IBM INTEL NT" "5.0" } {USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 0 1 255 0 0 1 0 1 0 0 1 0 0 0 0 1 }{CSTYLE "2D Math" -1 2 "Times" 0 1 0 0 20 0 0 0 2 0 0 0 0 0 0 1 }{CSTYLE "2D Comment" 2 18 "" 0 1 0 0 29 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "2D Output" 2 20 "" 0 1 0 0 255 1 0 0 0 0 0 0 0 0 0 1 } {CSTYLE "" -1 257 "" 1 24 0 1 0 0 0 0 2 0 0 0 0 0 0 1 }{CSTYLE "" -1 258 "" 0 1 158 135 1 0 1 0 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 259 "" 0 1 0 0 16 0 1 0 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 260 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 261 "" 0 1 0 0 40 0 0 1 0 0 0 0 0 0 0 1 } {CSTYLE "" -1 262 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 263 "" 0 1 57 136 16 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 264 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 265 "Courier" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 }{CSTYLE "" 18 266 "Courier" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 }{CSTYLE "" -1 267 "Courier" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 }{CSTYLE "" 18 268 "Courier" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 } {CSTYLE "" -1 269 "Courier" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 }{CSTYLE " " 18 270 "Courier" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 }{CSTYLE "" -1 271 "Courier" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 }{CSTYLE "" 18 272 "Courier " 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 }{CSTYLE "" -1 273 "Courier" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 }{CSTYLE "" -1 274 "Courier" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" 18 275 "Courier" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" 18 276 "Courier" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 277 "Courier" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 } {CSTYLE "" -1 278 "Courier" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE " " 18 279 "Courier" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 280 "Courier" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 281 "Courier " 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" 18 282 "Courier" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" 18 283 "Courier" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 284 "Courier" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 285 "Courier" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 286 "Courier" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 } {CSTYLE "" 18 287 "Courier" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE " " 18 288 "Courier" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 289 "Courier" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 290 "Courier " 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 291 "Courier" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" 18 292 "Courier" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" 18 293 "Courier" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 294 "Courier" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 295 "Courier" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 } {CSTYLE "" 18 296 "Courier" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE " " -1 297 "Courier" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 298 "Courier" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 299 "Courier " 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 300 "Courier" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 301 "Courier" 1 8 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 302 "Courier" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 303 "Courier" 1 8 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 304 "Courier" 1 10 0 0 0 0 0 0 0 0 0 0 0 0 0 1 } {CSTYLE "" -1 305 "Courier" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE " " -1 306 "Courier" 1 10 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 307 "Courier" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 308 "Cour ier" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 }{CSTYLE "" 18 309 "Courier" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 }{CSTYLE "" -1 310 "Courier" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 }{CSTYLE "" 18 311 "Courier" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 }{CSTYLE "" -1 312 "Courier" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 }{CSTYLE "" 18 313 "Courier" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 } {CSTYLE "" -1 314 "Courier" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 }{CSTYLE " " 18 315 "Courier" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 }{CSTYLE "" -1 316 "Courier" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 }{CSTYLE "" -1 317 "Courier " 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" 18 318 "Courier" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" 18 319 "Courier" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 320 "Courier" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 321 "Courier" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" 18 322 "Courier" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 } {CSTYLE "" -1 323 "Courier" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE " " 18 324 "Courier" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 325 "Courier" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 326 "Courier " 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 327 "Courier" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" 18 328 "Courier" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" 18 329 "Courier" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 330 "Courier" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 331 "Courier" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 } {CSTYLE "" 18 332 "Courier" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE " " -1 333 "Courier" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 334 "Courier" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 335 "Courier " 1 8 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 336 "Courier" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 337 "Courier" 1 8 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 338 "Courier" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 339 "Courier" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 340 "Courier" 1 8 0 0 0 0 0 0 0 0 0 0 0 0 0 1 } {CSTYLE "" -1 341 "Courier" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE " " -1 342 "" 0 1 0 1 0 0 0 0 2 0 0 0 0 0 0 1 }{CSTYLE "" -1 343 "" 1 12 0 0 0 0 0 2 2 0 0 0 0 0 0 1 }{PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Warning" -1 7 1 {CSTYLE "" -1 -1 "Courier" 1 10 0 0 255 1 2 2 2 2 2 1 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Error" -1 8 1 {CSTYLE "" -1 -1 "Courier" 1 10 255 0 255 1 2 2 2 2 2 1 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Maple Output" -1 11 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }3 3 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Maple Output" -1 12 1 {CSTYLE "" -1 -1 "Ti mes" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 3 0 0 0 0 1 0 1 0 2 2 0 1 } {PSTYLE "Author" -1 19 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }3 1 0 0 8 8 1 0 1 0 2 2 0 1 }{PSTYLE "Title" -1 256 1 {CSTYLE "" -1 -1 "Times" 1 18 0 0 0 1 2 1 1 2 2 2 1 1 1 1 }2 1 0 0 12 12 1 0 1 0 2 2 19 1 }} {SECT 0 {SECT 1 {PARA 256 "" 0 "" {TEXT 257 40 "Chapter 19\n\nLinear A lgebra: Applications" }{TEXT 342 1 "\n" }}{PARA 19 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 343 31 "\251 Copyright 2003 by Andr\351 Hec k." }}}{SECT 1 {PARA 0 "" 0 "" {TEXT 260 2 "1." }{TEXT -1 91 " In [193 ], the following Denavit-Hartenberg parameters for a PUMA robot arm ca n be found.\n\n" }{TEXT 265 9 " Joint " }{XPPEDIT 266 0 "alpha" "6#% &alphaG" }{TEXT 267 4 " " }{XPPEDIT 268 0 "theta" "6#%&thetaG" } {TEXT 269 4 " " }{XPPEDIT 270 0 "d" "6#%\"dG" }{TEXT 271 4 " " } {XPPEDIT 272 0 "a" "6#%\"aG" }{TEXT 273 2 " " }{TEXT 278 8 "\n 1 \+ " }{XPPEDIT 275 0 "-Pi/2" "6#,$*&%#PiG\"\"\"\"\"#!\"\"F(" }{TEXT 274 3 " " }{XPPEDIT 276 0 "theta[1]" "6#&%&thetaG6#\"\"\"" }{TEXT 277 24 " 0 0\n 2 0 " }{XPPEDIT 279 0 "theta[2]" "6#&%&thetaG 6#\"\"#" }{TEXT 280 8 " 0 " }{XPPEDIT 18 0 "a[2]" "6#&%\"aG6#\"\" #" }{TEXT -1 1 "\n" }{TEXT 285 9 " 3 " }{XPPEDIT 282 0 "Pi/2" "6 #*&%#PiG\"\"\"\"\"#!\"\"" }{TEXT 281 3 " " }{XPPEDIT 283 0 "theta[3] " "6#&%&thetaG6#\"\"$" }{TEXT 284 3 " " }{XPPEDIT 18 0 "d[3]" "6#&% \"dG6#\"\"$" }{TEXT 299 1 " " }{TEXT 304 1 " " }{TEXT 305 1 " " } {TEXT 303 1 " " }{XPPEDIT 18 0 "a[3]" "6#&%\"aG6#\"\"$" }{TEXT -1 1 " \n" }{TEXT 290 7 " 4 " }{XPPEDIT 287 0 "-Pi/2" "6#,$*&%#PiG\"\"\" \"\"#!\"\"F(" }{TEXT 286 3 " " }{XPPEDIT 288 0 "theta[4]" "6#&%&thet aG6#\"\"%" }{TEXT 289 3 " " }{XPPEDIT 18 0 "d[4]" "6#&%\"dG6#\"\"%" }{TEXT 300 1 " " }{TEXT 306 1 " " }{TEXT 307 1 " " }{TEXT 301 1 " " } {TEXT 302 1 "0" }{TEXT -1 1 "\n" }{TEXT 295 9 " 5 " }{XPPEDIT 292 0 " Pi/2" "6#*&%#PiG\"\"\"\"\"#!\"\"" }{TEXT 291 3 " " } {XPPEDIT 293 0 "theta[5]" "6#&%&thetaG6#\"\"&" }{TEXT 294 9 " 0 0 " }{TEXT -1 1 "\n" }{TEXT 298 14 " 6 0 " }{XPPEDIT 296 0 "the ta[6]" "6#&%&thetaG6#\"\"'" }{TEXT 297 9 " 0 0" }{TEXT -1 186 "\n \nDetermine the position and orientation of the tip of this robot \+ arm as a function of the kinematic parameters. Also describe the trans lational and rotational velocity of the tip. \n" }}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 8 "restart;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "with(LinearAlgebra):" }}}{PARA 0 "" 0 "" {TEXT -1 49 "First we specify the Denavit-Hartenberg matrices." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 122 "alias(a[2]=a2, a[3]=a3, d[3]=d3, d[4]=d4, \n se q(c[i]=cos(Theta[i]), i=1..6), \n seq(s[i]=sin(Theta[i]), i=1..6) ):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 245 "M := (a,alpha,d,thet a) -> Matrix(4, 4, [[cos(theta),\n -sin(theta)*cos(alpha), sin(theta) *sin(alpha),\n a*cos(theta)], [sin(theta), cos(theta)*cos(alpha),\n \+ -cos(theta)*sin(alpha), a*sin(theta)], [0, sin(alpha),\n cos(alpha), \+ d], [0, 0, 0, 1]]):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "M(a, alpha,d,theta); " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#-%'RTABLEG6%\")cfs :-%'MATRIXG6#7&7&-%$cosG6#%&thetaG,$*&-%$sinGF.\"\"\"-F-6#%&alphaGF4! \"\"*&F2F4-F3F6F4*&%\"aGF4F,F47&F2*&F,F4F5F4,$*&F,F4F:F4F8*&F " 0 "" {MPLTEXT 1 0 61 "a := Vector(6, \{(2)=a2, (3)=a3\}): \+ " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "alpha := vect or([-Pi/2,0,Pi/2,-Pi/2,Pi/2,0]): " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "d := Vector(6, \{(3)=d3, (4)=d4\}): " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "theta := Vector(6, i -> Theta[i]): \+ " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "for i to 6 do " }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 " A[i] := M(a[i], alpha[i], d[i], t heta[i]) " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "end do; " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>&%\"AG6#\"\"\"-%'RTABLEG6%\")'>Ld\"-%'MATRIXG6 #7&7&&%\"cGF&\"\"!,$&%\"sGF&!\"\"F37&F5F3F1F37&F3F7F3F37&F3F3F3F'%'Mat rixG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>&%\"AG6#\"\"#-%'RTABLEG6%\")K \\i:-%'MATRIXG6#7&7&&%\"cGF&,$&%\"sGF&!\"\"\"\"!*&&%\"aGF&\"\"\"F1F;7& F4F1F7*&F9F;F4F;7&F7F7F;F77&F7F7F7F;%'MatrixG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>&%\"AG6#\"\"$-%'RTABLEG6%\")Gs&e\"-%'MATRIXG6#7&7&&%\" cGF&\"\"!&%\"sGF&*&&%\"aGF&\"\"\"F1F97&F4F3,$F1!\"\"*&F7F9F4F97&F3F9F3 &%\"dGF&7&F3F3F3F9%'MatrixG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>&%\"AG 6#\"\"%-%'RTABLEG6%\")Obj:-%'MATRIXG6#7&7&&%\"cGF&\"\"!,$&%\"sGF&!\"\" F37&F5F3F1F37&F3F7F3&%\"dGF&7&F3F3F3\"\"\"%'MatrixG" }}{PARA 11 "" 1 " " {XPPMATH 20 "6#>&%\"AG6#\"\"&-%'RTABLEG6%\")3n#e\"-%'MATRIXG6#7&7&&% \"cGF&\"\"!&%\"sGF&F37&F4F3,$F1!\"\"F37&F3\"\"\"F3F37&F3F3F3F:%'Matrix G" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>&%\"AG6#\"\"'-%'RTABLEG6%\"))Q>e \"-%'MATRIXG6#7&7&&%\"cGF&,$&%\"sGF&!\"\"\"\"!F77&F4F1F7F77&F7F7\"\"\" F77&F7F7F7F:%'MatrixG" }}}{PARA 0 "" 0 "" {TEXT -1 89 "It is straightf orward matrix algebra to compute the position of the tip of the robot \+ arm." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "Tip := `.`(seq(A[i], i=1..6)): " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "T := Column (Tip, 4); " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"TG-%'RTABLEG6%\")Ou \"R\"-%'MATRIXG6#7&7#,,*&,&*(&%\"cG6#\"\"\"F5&F36#\"\"#F5&%\"sG6#\"\"$ F5F5*(F2F5&F:F7F5&F3F;F5F5F5&%\"dG6#\"\"%F5F5**F2F5F6F5&%\"aGF;F5F?F5F 5**F2F5F>F5FEF5F9F5!\"\"*&&F:F4F5&FAF;F5FH*(F2F5&FFF7F5F6F5F57#,,*&,&* (FJF5F6F5F9F5F5*(FJF5F>F5F?F5F5F5F@F5F5**FJF5F6F5FEF5F?F5F5**FJF5F>F5F EF5F9F5FH*&F2F5FKF5F5*(FJF5FMF5F6F5F57#,**&,&*&F>F5F9F5FH*&F6F5F?F5F5F 5F@F5F5*(F>F5FEF5F?F5FH*(F6F5FEF5F9F5FH*&FMF5F>F5FH7#F5&%'VectorG6#%'c olumnG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 26 "T := SubVector(%, [1..3]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"TG-%'RTABLEG6%\")c$=R \"-%'MATRIXG6#7%7#,,*&,&*(&%\"cG6#\"\"\"F5&F36#\"\"#F5&%\"sG6#\"\"$F5F 5*(F2F5&F:F7F5&F3F;F5F5F5&%\"dG6#\"\"%F5F5**F2F5F6F5&%\"aGF;F5F?F5F5** F2F5F>F5FEF5F9F5!\"\"*&&F:F4F5&FAF;F5FH*(F2F5&FFF7F5F6F5F57#,,*&,&*(FJ F5F6F5F9F5F5*(FJF5F>F5F?F5F5F5F@F5F5**FJF5F6F5FEF5F?F5F5**FJF5F>F5FEF5 F9F5FH*&F2F5FKF5F5*(FJF5FMF5F6F5F57#,**&,&*&F>F5F9F5FH*&F6F5F?F5F5F5F@ F5F5*(F>F5FEF5F?F5FH*(F6F5FEF5F9F5FH*&FMF5F>F5FH&%'VectorG6#%'columnG " }}}{PARA 0 "" 0 "" {TEXT -1 63 "The orientation of the tip is descri bed be the following matrx." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 38 "R := SubMatrix(Tip, [1..3], [1..3]): " }}}{PARA 0 "" 0 "" {TEXT -1 137 "Next we compute the translational and rotational velocities fo r a robot whose physical geometry is fixed, i.e., for which the parame ters " }{XPPEDIT 18 0 "d[3], d[4], a[2], a[3]" "6&&%\"dG6#\"\"$&F$6#\" \"%&%\"aG6#\"\"#&F+6#F&" }{TEXT -1 16 " are constants. " }}{PARA 0 "" 0 "" {TEXT -1 79 "First the translational part: just compute the Jacob ian of the position vector." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "thetas := [seq(Theta[i], i=1..6)]:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "with(VectorCalculus, Jacobian):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 38 "Jacobian(Vector([T,0,0,0]), thetas); " }} {PARA 12 "" 1 "" {XPPMATH 20 "6#-%'RTABLEG6%\")G\"4T\"-%'MATRIXG6#7(7( ,,*&,&*(&%\"sG6#\"\"\"F3&%\"cG6#\"\"#F3&F16#\"\"$F3!\"\"*(F0F3&F1F6F3& F5F9F3F;F3&%\"dG6#\"\"%F3F3**F0F3F4F3&%\"aGF9F3F>F3F;**F0F3F=F3FDF3F8F 3F3*&&F5F2F3&F@F9F3F;*(F0F3&FEF6F3F4F3F;,**&,&*(FHF3F4F3F>F3F3*(FHF3F= F3F8F3F;F3F?F3F3**FHF3F=F3FDF3F>F3F;**FHF3F4F3FDF3F8F3F;*(FHF3FKF3F=F3 F;,(FMF3FRF;FQF;\"\"!FUFU7(,,*&,&*(FHF3F4F3F8F3F3*(FHF3F=F3F>F3F3F3F?F 3F3**FHF3F4F3FDF3F>F3F3**FHF3F=F3FDF3F8F3F;*&F0F3FIF3F;*(FHF3FKF3F4F3F 3,**&,&*(F0F3F4F3F>F3F3*(F0F3F=F3F8F3F;F3F?F3F3**F0F3F=F3FDF3F>F3F;**F 0F3F4F3FDF3F8F3F;*(F0F3FKF3F=F3F;,(F[oF3F`oF;F_oF;FUFUFU7(FU,**&,&*&F= F3F>F3F;*&F4F3F8F3F;F3F?F3F3*(FDF3F>F3F4F3F;*(FDF3F8F3F=F3F3*&FKF3F4F3 F;,(FeoF3FjoF3FioF;FUFUFU7(FUFUFUFUFUFUF]pF]p%'MatrixG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "Jv := %[1..3, 1..-1];" }}{PARA 12 " " 1 "" {XPPMATH 20 "6#>%#JvG-%'RTABLEG6%\")s;>9-%'MATRIXG6#7%7(,,*&,&* (&%\"sG6#\"\"\"F5&%\"cG6#\"\"#F5&F36#\"\"$F5!\"\"*(F2F5&F3F8F5&F7F;F5F =F5&%\"dG6#\"\"%F5F5**F2F5F6F5&%\"aGF;F5F@F5F=**F2F5F?F5FFF5F:F5F5*&&F 7F4F5&FBF;F5F=*(F2F5&FGF8F5F6F5F=,**&,&*(FJF5F6F5F@F5F5*(FJF5F?F5F:F5F =F5FAF5F5**FJF5F?F5FFF5F@F5F=**FJF5F6F5FFF5F:F5F=*(FJF5FMF5F?F5F=,(FOF 5FTF=FSF=\"\"!FWFW7(,,*&,&*(FJF5F6F5F:F5F5*(FJF5F?F5F@F5F5F5FAF5F5**FJ F5F6F5FFF5F@F5F5**FJF5F?F5FFF5F:F5F=*&F2F5FKF5F=*(FJF5FMF5F6F5F5,**&,& *(F2F5F6F5F@F5F5*(F2F5F?F5F:F5F=F5FAF5F5**F2F5F?F5FFF5F@F5F=**F2F5F6F5 FFF5F:F5F=*(F2F5FMF5F?F5F=,(F]oF5FboF=FaoF=FWFWFW7(FW,**&,&*&F?F5F@F5F =*&F6F5F:F5F=F5FAF5F5*(FFF5F@F5F6F5F=*(FFF5F:F5F?F5F5*&FMF5F6F5F=,(Fgo F5F\\pF5F[pF=FWFWFW%'MatrixG" }}}{PARA 0 "" 0 "" {TEXT -1 34 "Next the rotational part: compute " }{XPPEDIT 18 0 "diff(R, theta[i])*R^t" "6# *&-%%diffG6$%\"RG&%&thetaG6#%\"iG\"\"\")F'%\"tGF," }{TEXT -1 5 " for \+ " }{XPPEDIT 18 0 "i=1,`..`,6." "6%/%\"iG\"\"\"%#..G-%&FloatG6$\"\"'\" \"!" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "R1 := map(diff, R, Th eta[1]): " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "R2 := map(di ff, R, Theta[2]):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "R3 := \+ map(diff, R, Theta[3]):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 " R4 := map(diff, R, Theta[4]): " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "R5 := map(diff, R, Theta[5]):" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 31 "R6 := map(diff, R, Theta[6]): " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "Rtranspose := Transpose(R): " }}} {PARA 0 "" 0 "" {TEXT -1 15 "Let us compute " }{XPPEDIT 18 0 "(J^omega )[1];" "6#&)%\"JG%&omegaG6#\"\"\"" }{TEXT -1 1 "." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "R1.Rtranspose: omega := map(simplify, %); \+ " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%&omegaG-%'RTABLEG6%\")#*)HU\"-%' MATRIXG6#7%7%\"\"!!\"\"F.7%\"\"\"F.F.7%F.F.F.%'MatrixG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 64 "Jomega[1] := Vector[row]([omega[3,2 ],-omega[3,1],omega[2,1]]); " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>&%'J omegaG6#\"\"\"-%'RTABLEG6%\"(3!4K-%'VECTORG6#7%\"\"!F0F'&%'VectorG6#%$ rowG" }}}{PARA 0 "" 0 "" {TEXT -1 30 "We compute the other matrices." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "for i from 2 to 6 do" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 " R||i . Rtranspose: " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 28 " omega := map(simplify, %):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 53 " Jomega[i] := Vector[row]([omega[3,2], -omega[3 ,1], " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 17 " omega[2,1]]):" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 35 " print(evaln(Jomega[i])=Jomega[i]) " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "end do: " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/&%'JomegaG6#\"\"#-%'RTABLEG6%\")O$eW\"-%'VECTORG6#7%,$ &%\"sG6#\"\"\"!\"\"&%\"cGF3\"\"!&%'VectorG6#%$rowG" }}{PARA 11 "" 1 " " {XPPMATH 20 "6#/&%'JomegaG6#\"\"$-%'RTABLEG6%\")sQZ;-%'VECTORG6#7%,$ &%\"sG6#\"\"\"!\"\"&%\"cGF3\"\"!&%'VectorG6#%$rowG" }}{PARA 11 "" 1 " " {XPPMATH 20 "6#/&%'JomegaG6#\"\"%-%'RTABLEG6%\")_0g;-%'VECTORG6#7%*& &%\"cG6#\"\"\"F4,&*&&F26#\"\"#F4&%\"sG6#\"\"$F4F4*&&F;F8F4&F2FF5FAF5F:**F2F5FF5FFF5F5*&FEF5FAF5F5F5&%'Vect orG6#%$rowG" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#/&%'JomegaG6#\"\"'-%'RT ABLEG6%\")!)3e9-%'VECTORG6#7%,,*,&%\"cG6#\"\"%\"\"\"&F36#F6F6&%\"sG6# \"\"&F6&F36#\"\"#F6&F36#\"\"$F6F6*,F2F6F7F6F9F6&F:F>F6&F:FAF6!\"\"*(&F :F8F6&F:F4F6F9F6FF**&F3F;F6F7F6FDF6F@F6F6**FKF6F7F6F=F6FEF6F6,,**FKF6F HF6F=F6FEF6F6*,FHF6F2F6F9F6F=F6F@F6F6*,FHF6F2F6F9F6FDF6FEF6FF*(FIF6F7F 6F9F6F6**FKF6FHF6FDF6F@F6F6,***F2F6F9F6F=F6FEF6FF**F2F6F9F6FDF6F@F6FF* (FKF6F=F6F@F6F6*(FKF6FDF6FEF6FF&%'VectorG6#%$rowG" }}}{PARA 0 "" 0 "" {TEXT -1 62 "We put everything together in the manipulator Jacobian ma trix " }{XPPEDIT 18 0 "J" "6#%\"JG" }{TEXT -1 1 "." }}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 48 "Jomega := Transpose( ); " }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%'JomegaG-%'RTABLEG6%\")_aw9- %'MATRIXG6#7%7(\"\"!,$&%\"sG6#\"\"\"!\"\"F/*&&%\"cGF2F3,&*&&F76#\"\"#F 3&F16#\"\"$F3F3*&&F1F;F3&F7F>F3F3F3,(*&F0F3&F76#\"\"%F3F4**&F1FFF3F6F3 F:F3FBF3F4**FIF3F6F3FAF3F=F3F3,,*,FEF3F6F3&F16#\"\"&F3F:F3FBF3F3*,FEF3 F6F3FMF3FAF3F=F3F4*(F0F3FIF3FMF3F4**&F7FNF3F6F3FAF3FBF3F3**FSF3F6F3F:F 3F=F3F37(F.F6F6*&F0F3F8F3,(*&F6F3FEF3F3**F0F3FIF3F:F3FBF3F4**F0F3FIF3F AF3F=F3F3,,**FSF3F0F3F:F3F=F3F3*,F0F3FEF3FMF3F:F3FBF3F3*,F0F3FEF3FMF3F AF3F=F3F4*(FIF3F6F3FMF3F3**FSF3F0F3FAF3FBF3F37(F3F.F.,&*&FAF3F=F3F4*&F :F3FBF3F3*&FIF3F8F3,***FEF3FMF3F:F3F=F3F4**FEF3FMF3FAF3FBF3F4*(FSF3F:F 3FBF3F3*(FSF3FAF3F=F3F4%'MatrixG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "J := ; " }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%\"JG-%'RTABLEG6%\")7.v9-%'MATRIXG6#7(7(,,*&,&*(&%\"sG6#\"\"\"F5&% \"cG6#\"\"#F5&F36#\"\"$F5!\"\"*(F2F5&F3F8F5&F7F;F5F=F5&%\"dG6#\"\"%F5F 5**F2F5F6F5&%\"aGF;F5F@F5F=**F2F5F?F5FFF5F:F5F5*&&F7F4F5&FBF;F5F=*(F2F 5&FGF8F5F6F5F=,**&,&*(FJF5F6F5F@F5F5*(FJF5F?F5F:F5F=F5FAF5F5**FJF5F?F5 FFF5F@F5F=**FJF5F6F5FFF5F:F5F=*(FJF5FMF5F?F5F=,(FOF5FTF=FSF=\"\"!FWFW7 (,,*&,&*(FJF5F6F5F:F5F5*(FJF5F?F5F@F5F5F5FAF5F5**FJF5F6F5FFF5F@F5F5**F JF5F?F5FFF5F:F5F=*&F2F5FKF5F=*(FJF5FMF5F6F5F5,**&,&*(F2F5F6F5F@F5F5*(F 2F5F?F5F:F5F=F5FAF5F5**F2F5F?F5FFF5F@F5F=**F2F5F6F5FFF5F:F5F=*(F2F5FMF 5F?F5F=,(F]oF5FboF=FaoF=FWFWFW7(FW,**&,&*&F?F5F@F5F=*&F6F5F:F5F=F5FAF5 F5*(FFF5F@F5F6F5F=*(FFF5F:F5F?F5F5*&FMF5F6F5F=,(FgoF5F\\pF5F[pF=FWFWFW 7(FW,$F2F=F`p*&FJF5,&FjoF5FioF5F5,(*&F2F5&F7FCF5F=**&F3FCF5FJF5F6F5F@F 5F=**FgpF5FJF5F?F5F:F5F5,,*,FepF5FJF5&F36#\"\"&F5F6F5F@F5F5*,FepF5FJF5 F[qF5F?F5F:F5F=*(F2F5FgpF5F[qF5F=**&F7F\\qF5FJF5F?F5F@F5F5**FaqF5FJF5F 6F5F:F5F57(FWFJFJ*&F2F5FbpF5,(*&FJF5FepF5F5**F2F5FgpF5F6F5F@F5F=**F2F5 FgpF5F?F5F:F5F5,,**FaqF5F2F5F6F5F:F5F5*,F2F5FepF5F[qF5F6F5F@F5F5*,F2F5 FepF5F[qF5F?F5F:F5F=*(FgpF5FJF5F[qF5F5**FaqF5F2F5F?F5F@F5F57(F5FWFW,&* &F?F5F:F5F=*&F6F5F@F5F5*&FgpF5FbpF5,***FepF5F[qF5F6F5F:F5F=**FepF5F[qF 5F?F5F@F5F=*(FaqF5F6F5F@F5F5*(FaqF5F?F5F:F5F=%'MatrixG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 0 "" 0 "" {TEXT 261 2 "2." }{TEXT -1 102 " In [221], the following Denavit-Hartenberg \+ parameters for the IRb-6 robot manipulator can be found.\n\n" }{TEXT 308 9 " Joint " }{XPPEDIT 309 0 "alpha" "6#%&alphaG" }{TEXT 310 4 " \+ " }{XPPEDIT 311 0 "theta" "6#%&thetaG" }{TEXT 312 4 " " } {XPPEDIT 313 0 "d" "6#%\"dG" }{TEXT 314 4 " " }{XPPEDIT 315 0 "a" " 6#%\"aG" }{TEXT 316 2 " " }{TEXT 321 10 "\n 1 " }{XPPEDIT 318 0 "Pi/2" "6#*&%#PiG\"\"\"\"\"#!\"\"" }{TEXT 317 3 " " }{XPPEDIT 319 0 "theta[1]" "6#&%&thetaG6#\"\"\"" }{TEXT 320 3 " " }{XPPEDIT 18 0 " d[1]" "6#&%\"dG6#\"\"\"" }{TEXT 336 19 " 0\n 2 0 " } {XPPEDIT 322 0 "theta[2]" "6#&%&thetaG6#\"\"#" }{TEXT 323 6 " 0 " } {TEXT 337 1 " " }{TEXT 338 1 " " }{XPPEDIT 18 0 "a[2]" "6#&%\"aG6#\"\" #" }{TEXT -1 1 "\n" }{TEXT 326 14 " 3 0 " }{XPPEDIT 324 0 "th eta[3]" "6#&%&thetaG6#\"\"$" }{TEXT 325 7 " 0 " }{TEXT 335 1 " " } {XPPEDIT 18 0 "a[3]" "6#&%\"aG6#\"\"$" }{TEXT -1 1 "\n" }{TEXT 331 9 " 4 " }{XPPEDIT 328 0 "Pi/2" "6#*&%#PiG\"\"\"\"\"#!\"\"" }{TEXT 327 3 " " }{XPPEDIT 329 0 "theta[4]" "6#&%&thetaG6#\"\"%" }{TEXT 330 6 " 0 " }{TEXT 340 1 " " }{TEXT 341 2 " 0" }{TEXT -1 1 "\n" } {TEXT 334 14 " 5 0 " }{XPPEDIT 332 0 "theta[5]" "6#&%&thetaG6 #\"\"&" }{TEXT 333 3 " " }{XPPEDIT 18 0 "d[5]" "6#&%\"dG6#\"\"&" } {TEXT 339 4 " 0" }{TEXT -1 177 "\n\nDetermine the position and orien tation of the tip of this robot arm as a function of kinematic paramet ers. Also describe the translational and rotational velocity of the ti p.\n" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "restart;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "with(LinearAlgebra):" }}}{PARA 0 " " 0 "" {TEXT -1 49 "First we specify the Denavit-Hartenberg matrices. " }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 122 "alias(a[2]=a2, a[3]=a3, d[1]=d1, d[5]=d5, \n seq(c[i]=cos(Theta[i]), i=1..5), \n se q(s[i]=sin(Theta[i]), i=1..5)):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 245 "M := (a,alpha,d,theta) -> Matrix(4, 4, [[cos(theta),\n -sin( theta)*cos(alpha), sin(theta)*sin(alpha),\n a*cos(theta)], [sin(theta ), cos(theta)*cos(alpha),\n -cos(theta)*sin(alpha), a*sin(theta)], [0 , sin(alpha),\n cos(alpha), d], [0, 0, 0, 1]]):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "M(a,alpha,d,theta); " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#-%'RTABLEG6%\")Gh5:-%'MATRIXG6#7&7&-%$cosG6#%&thetaG,$* &-%$sinGF.\"\"\"-F-6#%&alphaGF4!\"\"*&F2F4-F3F6F4*&%\"aGF4F,F47&F2*&F, F4F5F4,$*&F,F4F:F4F8*&F " 0 "" {MPLTEXT 1 0 61 "a := Vector(5, \{(2)=a2, (3) =a3\}): " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "alpha := Vector([Pi/2,0,0,Pi/2,0]): " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "d := Vector(5, \{(1)=d1, (5)=d5\}): " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "theta := Vector(5, i-> Theta[i]): " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "for i to 5 d o " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 45 " A[i] := M(a[i], alpha[i], \+ d[i], theta[i]) " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "end do; " }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>&%\"AG6#\"\"\"-%'RTABLEG6%\")GPB:-%'M ATRIXG6#7&7&&%\"cGF&\"\"!&%\"sGF&F37&F4F3,$F1!\"\"F37&F3F'F3&%\"dGF&7& F3F3F3F'%'MatrixG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>&%\"AG6#\"\"#-%' RTABLEG6%\")'4E_\"-%'MATRIXG6#7&7&&%\"cGF&,$&%\"sGF&!\"\"\"\"!*&&%\"aG F&\"\"\"F1F;7&F4F1F7*&F9F;F4F;7&F7F7F;F77&F7F7F7F;%'MatrixG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>&%\"AG6#\"\"$-%'RTABLEG6%\")C\"3_\"-%'MATRI XG6#7&7&&%\"cGF&,$&%\"sGF&!\"\"\"\"!*&&%\"aGF&\"\"\"F1F;7&F4F1F7*&F9F; F4F;7&F7F7F;F77&F7F7F7F;%'MatrixG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#> &%\"AG6#\"\"%-%'RTABLEG6%\")![M`\"-%'MATRIXG6#7&7&&%\"cGF&\"\"!&%\"sGF &F37&F4F3,$F1!\"\"F37&F3\"\"\"F3F37&F3F3F3F:%'MatrixG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>&%\"AG6#\"\"&-%'RTABLEG6%\")wjJ:-%'MATRIXG6#7&7&& %\"cGF&,$&%\"sGF&!\"\"\"\"!F77&F4F1F7F77&F7F7\"\"\"&%\"dGF&7&F7F7F7F:% 'MatrixG" }}}{PARA 0 "" 0 "" {TEXT -1 89 "It is straightforward matrix algebra to compute the position of the tip of the robot arm." }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "Tip := `.`(seq(A[i], i=1..5) ): " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 40 "T := SubVector(Colu mn(Tip, 4), [1..3]); " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"TG-%'RTAB LEG6%\")C#=b\"-%'MATRIXG6#7%7#,**&,&*&,&*(&%\"cG6#\"\"\"F7&F56#\"\"#F7 &F56#\"\"$F7F7*(F4F7&%\"sGF9F7&F@F " 0 "" {MPLTEXT 1 0 38 "R := SubMatrix(Tip, [1..3], [1..3]) : " }}}{PARA 0 "" 0 "" {TEXT -1 137 "Next we compute the translationa l and rotational velocities for a robot whose physical geometry is fix ed, i.e., for which the parameters " }{XPPEDIT 18 0 "d[1], d[5], a[2], a[3]" "6&&%\"dG6#\"\"\"&F$6#\"\"&&%\"aG6#\"\"#&F+6#\"\"$" }{TEXT -1 16 " are constants. " }}{PARA 0 "" 0 "" {TEXT -1 79 "First the transla tional part: just compute the Jacobian of the position vector." }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "thetas := [seq(Theta[i], i=1 ..5)]:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "with(VectorCalcul us, Jacobian):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "Jacobian( Vector([T,0,0]), thetas); " }}{PARA 12 "" 1 "" {XPPMATH 20 "6#-%'RTAB LEG6%\")3Ek:-%'MATRIXG6#7'7',**&,&*&,&*(&%\"sG6#\"\"\"F5&%\"cG6#\"\"#F 5&F76#\"\"$F5!\"\"*(F2F5&F3F8F5&F3F;F5F5F5&F36#\"\"%F5F5*&,&*(F2F5F6F5 F@F5F5*(F2F5F?F5F:F5F5F5&F7FBF5F=F5&%\"dG6#\"\"&F5F5**F2F5F6F5&%\"aGF; F5F:F5F=**F2F5F?F5FNF5F@F5F5*(F2F5&FOF8F5F6F5F=,**&,&*&,&*(&F7F4F5F6F5 F@F5F=*(FYF5F?F5F:F5F=F5FAF5F5*&,&*(FYF5F?F5F@F5F5*(FYF5F6F5F:F5F=F5FH F5F=F5FIF5F5**FYF5F?F5FNF5F:F5F=**FYF5F6F5FNF5F@F5F=*(FYF5FRF5F?F5F=,( FTF5FjnF=FinF=*&,&*&,&FhnF5FgnF=F5FHF5F5FVF5F5FIF5\"\"!7',**&,&*&F`oF5 FAF5F5*&FWF5FHF5F=F5FIF5F5**FYF5F6F5FNF5F:F5F5**FYF5F?F5FNF5F@F5F=*(FY F5FRF5F6F5F5,**&,&*&,&FFF=FGF=F5FAF5F5*&F0F5FHF5F=F5FIF5F5**F2F5F?F5FN F5F:F5F=**F2F5F6F5FNF5F@F5F=*(F2F5FRF5F?F5F=,(F\\pF5FbpF=FapF=*&,&*&,& F1F5F>F=F5FHF5F5F^pF5F5FIF5Fao7'Fao,**&,&*&,&*&F?F5F@F5F=*&F6F5F:F5F5F 5FAF5F5*&,&*&F6F5F@F5F=*&F?F5F:F5F=F5FHF5F=F5FIF5F5*(F6F5FNF5F:F5F5*(F ?F5FNF5F@F5F=*&FRF5F6F5F5,(F[qF5FfqF=FeqF5*&,&*&,&FdqF5FcqF5F5FHF5F5F] qF5F5FIF5Fao7'FaoFaoFaoFaoFaoF]r%'MatrixG" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 21 "Jv := %[1..3, 1..-1];" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%#JvG-%'RTABLEG6%\")?Yj:-%'MATRIXG6#7%7',**&,&*&,&*(&%\"sG6#\" \"\"F7&%\"cG6#\"\"#F7&F96#\"\"$F7!\"\"*(F4F7&F5F:F7&F5F=F7F7F7&F56#\" \"%F7F7*&,&*(F4F7F8F7FBF7F7*(F4F7FAF7F " 0 "" {MPLTEXT 1 0 32 " R1 := map(diff, R, Theta[1]): " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "R2 := map(diff, R, Theta[2]):" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 29 "R3 := map(diff, R, Theta[3]):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "R4 := map(diff, R, Theta[4]): " } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "R5 := map(diff, R, Theta[5 ]):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "Rtranspose := Transp ose(R): " }}}{PARA 0 "" 0 "" {TEXT -1 15 "Let us compute " }{XPPEDIT 18 0 "J^omega*``[1]" "6#*&)%\"JG%&omegaG\"\"\"&%!G6#F'F'" }{TEXT -1 1 "." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "R1 . Rtranspose: omeg a := map(simplify, %); " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%&omegaG- %'RTABLEG6%\")oEn:-%'MATRIXG6#7%7%\"\"!!\"\"F.7%\"\"\"F.F.7%F.F.F.%'Ma trixG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 64 "Jomega[1] := Vecto r[row]([omega[3,2],-omega[3,1],omega[2,1]]); " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>&%'JomegaG6#\"\"\"-%'RTABLEG6%\"(g6&H-%'VECTORG6#7%\" \"!F0F'&%'VectorG6#%$rowG" }}}{PARA 0 "" 0 "" {TEXT -1 30 "We compute \+ the other matrices." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "for i from 2 to 5 do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 21 " R||i . Rtransp ose: " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 28 " omega := map(simplify, % ):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 53 " Jomega[i] := Vector[row]([o mega[3,2], -omega[3,1], " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 17 " ome ga[2,1]]):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 35 " print(evaln(Jomega[ i])=Jomega[i])" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "end do: " }} {PARA 11 "" 1 "" {XPPMATH 20 "6#/&%'JomegaG6#\"\"#-%'RTABLEG6%\")%G8t \"-%'VECTORG6#7%&%\"sG6#\"\"\",$&%\"cGF2!\"\"\"\"!&%'VectorG6#%$rowG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/&%'JomegaG6#\"\"$-%'RTABLEG6%\")CLJ <-%'VECTORG6#7%&%\"sG6#\"\"\",$&%\"cGF2!\"\"\"\"!&%'VectorG6#%$rowG" } }{PARA 11 "" 1 "" {XPPMATH 20 "6#/&%'JomegaG6#\"\"%-%'RTABLEG6%\")K+y: -%'VECTORG6#7%&%\"sG6#\"\"\",$&%\"cGF2!\"\"\"\"!&%'VectorG6#%$rowG" }} {PARA 12 "" 1 "" {XPPMATH 20 "6#/&%'JomegaG6#\"\"&-%'RTABLEG6%\")g\"\\ r\"-%'VECTORG6#7%*&&%\"cG6#\"\"\"F4,**(&F26#\"\"%F4&%\"sG6#\"\"#F4&F26 #\"\"$F4F4*(F7F4&F2FF4F4 F4*&&F;F3F4F5F4,**(FEF4F:F4F>F4F4*(FEF4FBF4FCF4F4*(F7F4F:F4FCF4F4*(F7F 4FBF4F>F4FF&%'VectorG6#%$rowG" }}}{PARA 0 "" 0 "" {TEXT -1 62 "We put \+ everything together in the manipulator Jacobian matrix " }{XPPEDIT 18 0 "J" "6#%\"JG" }{TEXT -1 1 "." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "Jomega := Transpose();" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%'JomegaG-%'RTABLEG6%\")7.v:-%'MATRIXG6#7%7'\"\"!&% \"sG6#\"\"\"F/F/*&&%\"cGF1F2,**(&F56#\"\"%F2&F06#\"\"#F2&F56#\"\"$F2F2 *(F8F2&F5FF2F2F27'F.,$F4 FFFIFI*&F/F2F6F27'F2F.F.F.,**(FEF2F;F2F>F2F2*(FEF2FBF2FCF2F2*(F8F2F;F2 FCF2F2*(F8F2FBF2F>F2FF%'MatrixG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "J := ; " }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%\"JG -%'RTABLEG6%\")/EP<-%'MATRIXG6#7(7',**&,&*&,&*(&%\"sG6#\"\"\"F7&%\"cG6 #\"\"#F7&F96#\"\"$F7!\"\"*(F4F7&F5F:F7&F5F=F7F7F7&F56#\"\"%F7F7*&,&*(F 4F7F8F7FBF7F7*(F4F7FAF7F " 0 "" {MPLTEXT 1 0 0 "" } }}}{SECT 1 {PARA 0 "" 0 "" {TEXT 262 2 "3." }{TEXT -1 208 " Consider t he four-compartmental model for cadmium transfer in the human body sho wn in Figure 19.4 (in the book).\n\nThe corresponding mathematical equ ations are\n " }{TEXT 258 2 "x'" }{TEXT -1 2 "( " }{TEXT 259 1 "t" }{TEXT -1 5 " ) = " } {XPPEDIT 18 0 "A*x(t)+B*u(t)" "6#,&*&%\"AG\"\"\"-%\"xG6#%\"tGF&F&*&%\" BGF&-%\"uG6#F*F&F&" }{TEXT -1 2 ", " }{XPPEDIT 18 0 "x(0)=x[0]" "6#/-% \"xG6#\"\"!&F%6#F'" }{TEXT -1 49 "\n \+ " }{XPPEDIT 18 0 "y(t)=C*x(t)" "6#/-%\"yG6#%\"tG*&%\"CG \"\"\"-%\"xG6#F'F*" }{TEXT -1 68 ",\nwhere\n \+ " }{XPPEDIT 18 0 "A=MATRIX([[a[11],a [12],a[13],a[14]],[a[21],a[22],0,0],[a[31],0,a[33],0],[a[41],0,0,a[44] ]])" "6#/%\"AG-%'MATRIXG6#7&7&&%\"aG6#\"#6&F+6#\"#7&F+6#\"#8&F+6#\"#97 &&F+6#\"#@&F+6#\"#A\"\"!F>7&&F+6#\"#JF>&F+6#\"#LF>7&&F+6#\"#TF>F>&F+6# \"#W" }{TEXT -1 62 "\n\n \+ " }{XPPEDIT 18 0 "B=MATRIX([[p,q],[0,0],[0,0],[0,0]])" " 6#/%\"BG-%'MATRIXG6#7&7$%\"pG%\"qG7$\"\"!F-7$F-F-7$F-F-" }{TEXT -1 61 "\n\n " } {XPPEDIT 18 0 "C=MATRIX([[c[11],c[12],0,0],[0,c[22],0,0],[0,0,0,c[44]] ])" "6#/%\"CG-%'MATRIXG6#7%7&&%\"cG6#\"#6&F+6#\"#7\"\"!F17&F1&F+6#\"#A F1F17&F1F1F1&F+6#\"#W" }{TEXT -1 7 "\n\nwith " }{XPPEDIT 18 0 "a[11]=- (a[0*1]+a[21]+a[31]+a[41]" "6#/&%\"aG6#\"#6,$,*&F%6#*&\"\"!\"\"\"F.F.F .&F%6#\"#@F.&F%6#\"#JF.&F%6#\"#TF.!\"\"" }{TEXT -1 2 ", " }{XPPEDIT 18 0 "a[22]=-(a[0*2]+a[12]" "6#/&%\"aG6#\"#A,$,&&F%6#*&\"\"!\"\"\"\"\" #F.F.&F%6#\"#7F.!\"\"" }{TEXT -1 2 ", " }{XPPEDIT 18 0 "a[33]=-a[13]" "6#/&%\"aG6#\"#L,$&F%6#\"#8!\"\"" }{TEXT -1 2 ", " }{XPPEDIT 18 0 "a[4 4]=-(a[0*4]+a[14]" "6#/&%\"aG6#\"#W,$,&&F%6#*&\"\"!\"\"\"\"\"%F.F.&F%6 #\"#9F.!\"\"" }{TEXT -1 1 "," }{XPPEDIT 18 0 "c[11]=a[01]" "6#/&%\"cG6 #\"#6&%\"aG6#\"\"\"" }{TEXT -1 6 ", and " }{XPPEDIT 18 0 "c[12]=a[02] " "6#/&%\"cG6#\"#7&%\"aG6#\"\"#" }{TEXT -1 23 ". The parameters p, q, \+ " }{XPPEDIT 18 0 "c[22]" "6#&%\"cG6#\"#A" }{TEXT -1 6 ", and " } {XPPEDIT 18 0 "c[44]" "6#&%\"cG6#\"#W" }{TEXT -1 100 " are supposed to be know. Use Maple to prove that this model is structurally globally \+ identifiable.\n" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "restart;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "with(LinearAlgebra):" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 150 "sequence := seq(seq( a||i|| j = a[i,j], i=0..4), j=0..4),\n seq(seq( b||i||j = b[i,j], i=0..4), j =0..4),\n seq(seq( c||i||j = c[i,j], i=0..4), j=0..4):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "eval('macro(S)', S=sequence):" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 121 "A := Matrix(4,4,[[-(a01+a21 +a31+a41), a12, a13, a14], [a21, -(a02+a12), 0,0], [a31, 0, -a13, 0], \+ [a41, 0,0,-(a04+a14)]]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"AG-%'R TABLEG6%\")w@<:-%'MATRIXG6#7&7&,*&%\"aG6$\"\"!\"\"\"!\"\"&F06$\"\"#F3F 4&F06$\"\"$F3F4&F06$\"\"%F3F4&F06$F3F7&F06$F3F:&F06$F3F=7&F5,&&F06$F2F 7F4F>F4F2F27&F8F2,$F@F4F27&F;F2F2,&&F06$F2F=F4FBF4%'MatrixG" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "B := Matrix(4,2,[[p,q],[0,0] ,[0,0],[0,0]]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"BG-%'RTABLEG6% \"('z$R#-%'MATRIXG6#7&7$%\"pG%\"qG7$\"\"!F1F0F0%'MatrixG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "C := Matrix(3,4,[[c01,c02,0,0],[0,c 22,0,0],[0,0,0,c44]]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"CG-%'RTA BLEG6%\"(GqM#-%'MATRIXG6#7%7&&%\"cG6$\"\"!\"\"\"&F/6$F1\"\"#F1F17&F1&F /6$F5F5F1F17&F1F1F1&F/6$\"\"%F<%'MatrixG" }}}{PARA 0 "" 0 "" {TEXT -1 96 "We shall study structural global identifiability of this model via the transfer function method." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "H := C . (ScalarMatrix(s,4,4)-A)^(-1) . B:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "denominator := denom(H[1,1]):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "cfsdenom := \{coeffs(denominator, s )\} minus \{1\}:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 126 "for i \+ to 3 do\n for j to 2 do\n h||i||j := collect(numer(H[i,j]), s):\n \+ cfs||i||j := \{coeffs(h||i||j, s)\}\n end do\nend do:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "cfs := `union`(cfsdenom, cfs11, cfs 12, cfs21, cfs22, cfs31, cfs32):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 120 "eqns := map( x -> x = subs( a01=b01, a12=b12, a13=b1 3, a14=b14, a21=b21, a02=b02, a31=b31, a41=b41, a04=b04, x ), cfs );" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%%eqnsG<:/**&%\"cG6$\"\"%F+\"\"\"&% \"aG6$F+F,F,,(&F.6$F,\"\"$F,&F.6$\"\"!\"\"#F,&F.6$F,F7F,F,%\"pGF,**F(F ,&%\"bGF/F,,(&F=F2F,&F=F5F,&F=F9F,F,F:F,/**F(F,F-F,,&*&F1F,F8F,F,*&F1F ,F4F,F,F,%\"qGF,**F(F,FF,FGF,/*&,.**&F)6$F6F,F,&F.6$F6F+F,F4F,F1F,F,**FSF, FUF,F8F,F1F,F,**FSF,&F.6$F,F+F,F8F,F1F,F,**FSF,FYF,F4F,F1F,F,**&F)F5F, &F.6$F7F,F,FUF,F1F,F,**FgnF,FhnF,FYF,F1F,F,F,FGF,*&,.**FSF,&F=FVF,F@F, F?F,F,**FSF,F^oF,FAF,F?F,F,**FSF,&F=FZF,FAF,F?F,F,**FSF,FaoF,F@F,F?F,F ,**FgnF,&F=FinF,F^oF,F?F,F,**FgnF,FdoF,FaoF,F?F,F,F,FGF,/*&,8*(FSF,F1F ,F4F,F,*(FSF,F1F,F8F,F,*(FSF,FYF,F4F,F,*(FgnF,FhnF,F1F,F,*(FSF,FUF,F1F ,F,*(FSF,FYF,F1F,F,*(FSF,FYF,F8F,F,*(FgnF,FhnF,FYF,F,*(FgnF,FhnF,FUF,F ,*(FSF,FUF,F4F,F,*(FSF,FUF,F8F,F,F,FGF,*&,8*(FSF,F?F,F@F,F,*(FSF,F?F,F AF,F,*(FSF,FaoF,F@F,F,*(FgnF,FdoF,F?F,F,*(FSF,F^oF,F?F,F,*(FSF,FaoF,F? F,F,*(FSF,FaoF,FAF,F,*(FgnF,FdoF,FaoF,F,*(FgnF,FdoF,F^oF,F,*(FSF,F^oF, F@F,F,*(FSF,F^oF,FAF,F,F,FGF,/*&,.*&FSF,F4F,F,*&FSF,FUF,F,*&FSF,FYF,F, *&FSF,F1F,F,*&FgnF,FhnF,F,*&FSF,F8F,F,F,FGF,*&,.*&FSF,F@F,F,*&FSF,F^oF ,F,*&FSF,FaoF,F,*&FSF,F?F,F,*&FgnF,FdoF,F,*&FSF,FAF,F,F,FGF,/*&FSF,FGF ,Fcr/,2**FYF,F4F,F1F,FhnF,F,**FYF,F4F,F1F,&F.FTF,F,**FUF,F8F,F1F,FhrF, F,**FUF,F8F,F-F,F1F,F,**FYF,F8F,F1F,FhrF,F,**FUF,F4F,F1F,FhnF,F,**FUF, F4F,F1F,F-F,F,**FUF,F4F,F1F,FhrF,F,,2**FaoF,F@F,F?F,FdoF,F,**FaoF,F@F, F?F,&F=FTF,F,**F^oF,FAF,F?F,FbsF,F,**F^oF,FAF,F " 0 "" {MPLTEXT 1 0 52 "vars := a01, a12, a13, a14, \+ a21, a02, a31, a41, a04:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "solve(eqns, \{vars\});" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#<+/&%\"aG6$ \"\"!\"\"\"&%\"bGF'/&F&6$F)\"\"#&F+F./&F&6$F)\"\"$&F+F3/&F&6$F)\"\"%&F +F8/&F&6$F/F)&F+F=/&F&6$F(F/&F+FA/&F&6$F4F)&F+FE/&F&6$F9F)&F+FI/&F&6$F (F9&F+FM" }}}{PARA 0 "" 0 "" {TEXT -1 143 "Only the trivial solution, \+ which implies structural global identifiability. Let us verify this re sult via the computation of a Groebner basis." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "with(Groebner):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "polys := [op(map(lhs-rhs, eqns) minus \{0\})]:" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 26 "gbasis(polys, plex(vars));" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#7+,&&%\"bG6$\"\"!\"\"%!\"\"&%\"aGF' \"\"\",&&F,6$F)F-F-&F&F0F*,&&F,6$\"\"$F-F-&F&F4F*,&&F&6$F(\"\"#F*&F,F9 F-,&&F,6$F:F-F-&F&F>F*,&&F,6$F-F)F-&F&FBF*,&&F,6$F-F5F-&F&FFF*,&&F&6$F -F:F*&F,FJF-,&&F,6$F(F-F-&F&FNF*" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 0 "" 0 "" {TEXT 263 2 "4." }{TEXT -1 112 " The ln-tan-cylinder coordinates are defined as\n \+ " }{XPPEDIT 18 0 "x =(a/Pi)*(ln((sinh^2 eta+sin^2 psi)/(sinh^2 eta +cos^2 psi)))" "6#/%\"x G*(%\"aG\"\"\"%#PiG!\"\"-%#lnG6#*&,&*&%%sinhG\"\"#%$etaGF'F'*&%$sinGF1 %$psiGF'F'F',&*&F0F1F2F'F'*&%$cosGF1F5F'F'F)F'" }{TEXT -1 65 "\n \+ " }{XPPEDIT 18 0 "y=2a/Pi*arctan(sinh*2*eta/(sin*2*psi))" "6#/%\"yG**\"\"#\"\"\"% \"aGF'%#PiG!\"\"-%'arctanG6#**%%sinhGF'F&F'%$etaGF'*(%$sinGF'F&F'%$psi GF'F*F'" }{TEXT -1 65 "\n \+ " }{XPPEDIT 18 0 "z=z" "6#/%\"zGF$" }{TEXT -1 74 " \nwhere\n a \+ > 0 , " }{XPPEDIT 18 0 "-1 <= eta" "6#1,$\"\"\"!\"\"%$etaG" }{XPPEDIT 18 0 "``<= 1" "6#1%!G\"\"\"" }{TEXT -1 4 " , " }{XPPEDIT 18 0 "0<=psi " "6#1\"\"!%$psiG" }{TEXT -1 1 " " }{XPPEDIT 18 0 "``<=Pi" "6#1%!G%#Pi G" }{TEXT -1 130 "\nDetermine the scale factors of these orthogonal cu rvilinear coordinates and express the Laplacian operator in these coor dinates.\n" }}{PARA 0 "" 0 "" {TEXT -1 49 "We do the work in steps. Fi rst some preparations:" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "res tart:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "with(LinearAlgebra ): \nwith(VectorCalculus):" }}{PARA 7 "" 1 "" {TEXT -1 65 "Warning, th e names CrossProduct and DotProduct have been rebound\n" }}{PARA 7 "" 1 "" {TEXT -1 66 "Warning, the assigned names <,> and <|> now have a g lobal binding\n" }}{PARA 7 "" 1 "" {TEXT -1 110 "Warning, these protec ted names have been redefined and unprotected: *, +, ., Vector, diff, \+ int, limit, series\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "int erface(showassumed=2):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "a ssume(a>0, -1<=eta, eta<=1, 0<=psi, psi<=Pi):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "alias(f=f(eta,psi,z), c=[eta,psi,z]):" }}}{PARA 0 "" 0 "" {TEXT -1 19 "The transformation:" }}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 112 "T := [a/Pi*ln( (sinh(eta)^2+sin(psi)^2) / (sinh(et a)^2+cos(psi)^2) ), 2*a/Pi*arctan(sinh(2*eta)/sin(2*psi)), z];" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"TG7%*(%#a|irG\"\"\"%#PiG!\"\"-%#ln G6#*&,&*$)-%%sinhG6#%%eta|irG\"\"#F(F(*$)-%$sinG6#%%psi|irGF6F(F(F(,&F 0F(*$)-%$cosGF;F6F(F(F*F(,$**F6F(F'F(F)F*-%'arctanG6#*&-F36#,$*&F6F(F5 F(F(F(-F:6#,$*&F6F(F " 0 "" {MPLTEXT 1 0 19 "J := Jacobian(T,c);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%\"JG-%'RTABLEG6% \")7)eT\"-%'MATRIXG6#7%7%*,%#a|irG\"\"\"%#PiG!\"\",&**\"\"#F0-%%sinhG6 #%%eta|irGF0-%%coshGF8F0,&*$)F6F5F0F0*$)-%$cosG6#%%psi|irGF5F0F0F2F0*, F5F0,&F=F0*$)-%$sinGFCF5F0F0F0F " 0 "" {MPLTEXT 1 0 22 "J := map(simplify, J);" }} {PARA 12 "" 1 "" {XPPMATH 20 "6#>%\"JG-%'RTABLEG6%\")gnP9-%'MATRIXG6#7 %7%,$*0\"\"#\"\"\"%#a|irGF1-%%sinhG6#%%eta|irGF1-%%coshGF5F1,&*&F0F1)- %$cosG6#%%psi|irGF0F1F1F1!\"\"F1%#PiGF@,**$)F7\"\"%F1F@*$)F7F0F1F1*$F; F1F@*$)FF1F " 0 "" {MPLTEXT 1 0 29 "J := ma p(combine, J, 'trig');" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"JG-%'RTA BLEG6%\")357<-%'MATRIXG6#7%7%,$*,\"\")\"\"\"%#a|irGF1-%%sinhG6#,$*&\" \"#F1%%eta|irGF1F1F1-%$cosG6#,$*&F8F1%%psi|irGF1F1F1,&*&%#PiGF1-F;6#,$ *&\"\"%F1F?F1F1F1!\"\"*&FBF1-%%coshG6#,$*&FGF1F9F1F1F1F1FHF1,$*,F0F1F2 F1-FKF5F1-%$sinGF " 0 "" {MPLTEXT 1 0 43 "g := map(combine, Transpose( J).J, 'trig'); " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"gG-%'RTABLEG6% \")_n$y\"-%'MATRIXG6#7%7%*&,&*(\"#k\"\"\")%#a|irG\"\"#F2-%$cosG6#,$*& \"\"%F2%%psi|irGF2F2F2F2*(F1F2F3F2-%%coshG6#,$*&F;F2%%eta|irGF2F2F2!\" \"F2,**&)%#PiGF5F2-F76#,$*&\"\")F2FF2F2*&FGF2-F?6#,$*&FMF2FCF2F2F2FDFD\"\"!FU7%FUF.FU7%FUFUF2%'MatrixG " }}}{PARA 0 "" 0 "" {TEXT -1 18 "The scale factors:" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "h1 := simplify(sqrt(g[1,1]));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#h1G,$**\"\")\"\"\"%#a|irGF(%#PiG!\"\",$*& ,&-%$cosG6#,$*&\"\"%F(%%psi|irGF(F(F+-%%coshG6#,$*&F4F(%%eta|irGF(F(F( F(,*-F06#,$*&F'F(F5F(F(F+\"\"#F+*(F4F(F/F(F6F(F(-F76#,$*&F'F(F;F(F(F+F +F+#F(FAF(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "h2 := simplif y(sqrt(g[2,2]));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#h2G,$**\"\")\" \"\"%#a|irGF(%#PiG!\"\",$*&,&-%$cosG6#,$*&\"\"%F(%%psi|irGF(F(F+-%%cos hG6#,$*&F4F(%%eta|irGF(F(F(F(,*-F06#,$*&F'F(F5F(F(F+\"\"#F+*(F4F(F/F(F 6F(F(-F76#,$*&F'F(F;F(F(F+F+F+#F(FAF(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "h3 := simplify(sqrt(g[3,3]));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#h3G\"\"\"" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 58 "Al s, we cannot add the coordinate system in the usual way:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 40 "AddCoordinates(lntancylinder[op(c)] , T):" }}{PARA 8 "" 1 "" {TEXT -1 108 "Error, (in VectorCalculus:-AddC oordinates) the unit Vectors in the new coordinate system are not orth ogonal\n" }}}{PARA 0 "" 0 "" {TEXT -1 199 "The reason is that Maple in its computation of scalefactors cannot apply the assumptions when it \+ verifies orthogonality of vectors. If it just about computing the lala cian, one can use basic methods." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 111 "1/(h1*h2*h3) * (diff(h2*h3/h1*diff(f,eta),eta) + \ndiff(h1*h3 /h2*diff(f,psi),psi) + diff(h1*h2/h3*diff(f,z),z));" }}{PARA 12 "" 1 " " {XPPMATH 20 "6#,$*&#\"\"\"\"#kF&*,%#a|irG!\"#,&-%$cosG6#,$*&\"\"%F&% %psi|irGF&F&!\"\"-%%coshG6#,$*&F1F&%%eta|irGF&F&F&F3%#PiG\"\"#,*-F-6#, $*&\"\")F&F2F&F&F3F;F3*(F1F&F,F&F4F&F&-F56#,$*&FAF&F9F&F&F3F&,(-%%diff G6$%\"fG-%\"$G6$F9F;F&-FI6$FK-FM6$F2F;F&*.F'F&F)F;F+F&F:F*F " 0 "" {MPLTEXT 1 0 69 "co llect(%, [diff(f,eta$2), diff(f,psi$2), diff(f,z$2)], distributed);" } }{PARA 12 "" 1 "" {XPPMATH 20 "6#,(*&#\"\"\"\"#kF&*,%#a|irG!\"#,&-%$co sG6#,$*&\"\"%F&%%psi|irGF&F&!\"\"-%%coshG6#,$*&F1F&%%eta|irGF&F&F&F3%# PiG\"\"#,*-F-6#,$*&\"\")F&F2F&F&F3F;F3*(F1F&F,F&F4F&F&-F56#,$*&FAF&F9F &F&F3F&-%%diffG6$%\"fG-%\"$G6$F9F;F&F&F3*&#F&F'F&*,F)F*F+F3F:F;F " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 0 "" 0 "" {TEXT 264 2 "5." }{TEXT -1 56 " Using the molecular orbital H\374ckel theory, compute the " } {XPPEDIT 18 0 "Pi" "6#%#PiG" }{TEXT -1 103 "-electron energy levels of benzene. Determine also the charge distribution of state with lowest \+ energy." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "restart;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "with(LinearAlgebra):" }}}{PARA 0 "" 0 "" {TEXT -1 41 "We define the H ueckel matrix for benzene." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "n := 6:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "Benzene_skeleto n := [seq([i,i+1], i=1..5), [1,6]];" }}{PARA 11 "" 1 "" {XPPMATH 20 "6 #>%1Benzene_skeletonG7(7$\"\"\"\"\"#7$F(\"\"$7$F*\"\"%7$F,\"\"&7$F.\" \"'7$F'F0" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "Hueckel_matrix := Matrix(n,n):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 75 "for ind s in Benzene_skeleton do \n Hueckel_matrix[op(inds)] := beta\nend do: " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 88 "Hueckel_matrix := Scala rMatrix(alpha,n,n) + Hueckel_matrix + \nTranspose(Hueckel_matrix);" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%/Hueckel_matrixG-%'RTABLEG6%\"(kNm#- %'MATRIXG6#7(7(%&alphaG%%betaG\"\"!F0F0F/7(F/F.F/F0F0F07(F0F/F.F/F0F07 (F0F0F/F.F/F07(F0F0F0F/F.F/7(F/F0F0F0F/F.%'MatrixG" }}}{PARA 0 "" 0 " " {TEXT -1 51 "The corresponding topological matrix is as follows." }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "topological_matrix := subs(a lpha=0, beta=1, Hueckel_matrix);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>% 3topological_matrixG-%'RTABLEG6%\"(;jw#-%'MATRIXG6#7(7(\"\"!\"\"\"F.F. F.F/7(F/F.F/F.F.F.7(F.F/F.F/F.F.7(F.F.F/F.F/F.7(F.F.F.F/F.F/7(F/F.F.F. F/F.%'MatrixG" }}}{PARA 0 "" 0 "" {TEXT -1 75 "Eigenvalues and eigenve ctors are easily computed for the topological matrix" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "Eigenvalues(topological_matrix);" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#-%'RTABLEG6%\"(?8&G-%'MATRIXG6#7(7#\" \"#7#!\"#7#\"\"\"7#!\"\"F/F1&%'VectorG6#%'columnG" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 20 "v := convert(%,set);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"vG<&!\"#!\"\"\"\"\"\"\"#" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "eigenspace := Eigenvectors(topological_matrix, out put=list);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%+eigenspaceG7&7%!\"#\" \"\"<#-%'RTABLEG6%\")s!\\T\"-%'MATRIXG6#7(7#!\"\"7#F(F2F4F2F4&%'Vector G6#%'columnG7%F(\"\"#<$-F+6%\")oo79-F/6#7(F47#\"\"!F2F2FBF4F5-F+6%\")g Y>9-F/6#7(F2F2FBF4F4FBF57%F:F(<#-F+6%\")Gw79-F/6#7(F4F4F4F4F4F4F57%F3F :<$-F+6%\")3YH9-F/6#7(F2F4FBF2F4FBF5-F+6%\")G#GT\"-F/6#7(F2FBF4F2FBF4F 5" }}}{PARA 0 "" 0 "" {TEXT -1 93 "The lowest eigenvalue of the topolo gical matrix corresponds with the orbital that has lowest " }{XPPEDIT 18 0 "pi" "6#%#piG" }{TEXT -1 39 "-electron energy. We shall compute t he " }{XPPEDIT 18 0 "pi" "6#%#piG" }{TEXT -1 43 "-electron density for the state of lowest " }{XPPEDIT 18 0 "pi" "6#%#piG" }{TEXT -1 18 "-e lectron energy. " }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "vlist := sort(convert(v, list));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%&vlistG7 &!\"#!\"\"\"\"\"\"\"#" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "v1 := vlist[1];" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#v1G!\"#" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "op(select(z->evalb(op(1,z)=v 1), eigenspace));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7%!\"#\"\"\"<#-%' RTABLEG6%\")s!\\T\"-%'MATRIXG6#7(7#!\"\"7#F%F/F1F/F1&%'VectorG6#%'colu mnG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "e1 := op(%[3]);" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%#e1G-%'RTABLEG6%\")s!\\T\"-%'MATRIXG 6#7(7#!\"\"7#\"\"\"F-F/F-F/&%'VectorG6#%'columnG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "occupation_numbers := [0,0,0,2,2,2]:" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "cnt := 0:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 204 "for val in vlist do \n espace := op(selec t(z->evalb(op(1,z)=val), eigenspace));\n m := espace[2];\n for j to \+ m do\n cnt := cnt+1;\n vals[cnt] := val;\n vecs[cnt] := op(j, espace[3])\n end do;\nend do:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 86 "pi_electron_energy := sum('occupation_numbers[i] * \n(alpha+va ls[i]*beta )', 'i'=1..n);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%3pi_ele ctron_energyG,&*&\"\"'\"\"\"%&alphaGF(F(*&\"\")F(%%betaGF(F(" }}} {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 65 "The eigen vectors are not normalized nor orthogonal to each other." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 49 "M := Transpose();" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"MG-%'RTABLEG6%\" )S,t9-%'MATRIXG6#7(7(!\"\"F.F.\"\"\"F.F/7(F/\"\"!F/F1F.F/7(F.F/F1F.F1F /7(F/F.F.F.F/F/7(F.F1F/F1F/F/7(F/F/F1F/F1F/%'MatrixG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "M . Transpose(M);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#-%'RTABLEG6%\")!=,[\"-%'MATRIXG6#7(7(\"\"'\"\"!F-F-F-F- 7(F-\"\"%F-F-F-\"\"#7(F-F-F/F-F0F-7(F-F-F-F,F-F-7(F-F-F0F-F/F-7(F-F0F- F-F-F/%'MatrixG" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 61 "We apply Gram- Schmidt orthonormalization to the eigenvectors:" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 69 "eigenvectors := GramSchmidt([seq(vecs[i], i=1. .n)], normalized=true);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%-eigenvec torsG7(-%'RTABLEG6%\")CjT:-%'MATRIXG6#7(7#,$*&\"\"'!\"\"F1#\"\"\"\"\"# F27#,$*&F1F2F1F3F4F.F6F.F6&%'VectorG6#%'columnG-F'6%\")?L_:-F+6#7(7##F 2F57#\"\"!7#F3FCFEFGF9-F'6%\")'*Q^:-F+6#7(7#,$*&F1F2\"\"$F3F27#,$*&FQF 2FQF3F4FNFNFRFNF9-F'6%\")+&fX\"-F+6#7(FGFEFCFCFEFGF9-F'6%\")Gcb9-F+6#7 (FN7#,$*&FQF2FQF3F2FN7#,$*&F1F2FQF3F4FRF^oF9-F'6%\")w=a:-F+6#7(F6F6F6F 6F6F6F9" }}}{PARA 0 "" 0 "" {TEXT -1 4 "The " }{XPPEDIT 18 0 "pi" "6#% #piG" }{TEXT -1 59 "-electron density can now be computed in the follo wing way." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "eigenvectors := convert(eigenvectors, listlist):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 101 "electron_density := seq( sum( 'occupation_numbers[i] *\n(eigenvectors[i][j])^2', 'i'=1..n ), j=1..n );" }}{PARA 11 "" 1 " " {XPPMATH 20 "6#>%1electron_densityG6(\"\"\"F&F&F&F&F&" }}}{PARA 0 " " 0 "" {TEXT -1 54 "The result is a uniform distribution over the C at oms." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}}{MARK "0" 0 } {VIEWOPTS 1 1 0 1 1 1803 1 1 1 1 }{PAGENUMBERS 0 1 2 33 1 1 } {RTABLE_HANDLES 2663564 2766316 2851320 14149072 14126868 14194660 14127628 14294608 14128228 14730140 14801180 15416324 15523320 15513896 14559500 14555628 15541876 }{RTABLE M7R0 I4RTABLE_SAVE/2663564X,%)anythingG6"6"[gl!"%!!!#E"'"'%&alphaG%%betaG""!F)F)F(F( F'F(F)F)F)F)F(F'F(F)F)F)F)F(F'F(F)F)F)F)F(F'F(F(F)F)F)F(F'F& } {RTABLE M7R0 I4RTABLE_SAVE/2766316X,%)anythingG6"6"[gl!"%!!!#E"'"'""!"""F'F'F'F(F(F'F(F'F'F' F'F(F'F(F'F'F'F'F(F'F(F'F'F'F'F(F'F(F(F'F'F'F(F'F& } {RTABLE M7R0 I4RTABLE_SAVE/2851320X*%)anythingG6"6"[gl!#%!!!"'"'""#!"#"""!""F)F*F& } {RTABLE M7R0 I5RTABLE_SAVE/14149072X*%)anythingG6"6"[gl!#%!!!"'"'!"""""F'F(F'F(F& } {RTABLE M7R0 I5RTABLE_SAVE/14126868X*%)anythingG6"6"[gl!#%!!!"'"'"""""!!""F)F(F'F& } {RTABLE M7R0 I5RTABLE_SAVE/14194660X*%)anythingG6"6"[gl!#%!!!"'"'!""F'""!"""F)F(F& } {RTABLE M7R0 I5RTABLE_SAVE/14127628X*%)anythingG6"6"[gl!#%!!!"'"'"""F'F'F'F'F'F& } {RTABLE M7R0 I5RTABLE_SAVE/14294608X*%)anythingG6"6"[gl!#%!!!"'"'!"""""""!F'F(F)F& } {RTABLE M7R0 I5RTABLE_SAVE/14128228X*%)anythingG6"6"[gl!#%!!!"'"'!""""!"""F'F(F)F& } {RTABLE M7R0 I5RTABLE_SAVE/14730140X,%)anythingG6"6"[gl!"%!!!#E"'"'!"""""F'F(F'F(F'""!F(F'F) F(F'F(F)F'F(F)F(F)F'F'F)F(F'F'F)F(F(F)F(F(F(F(F(F(F& } {RTABLE M7R0 I5RTABLE_SAVE/14801180X,%)anythingG6"6"[gl!"%!!!#E"'"'""'""!F(F(F(F(F(""%F(F(F( ""#F(F(F)F(F*F(F(F(F(F'F(F(F(F(F*F(F)F(F(F*F(F(F(F)F& } {RTABLE M7R0 I5RTABLE_SAVE/15416324X*%)anythingG6"6"[gl!#%!!!"'"',$*$""'#"""""##!""F),$F(#F+ F)F'F/F'F/F& } {RTABLE M7R0 I5RTABLE_SAVE/15523320X*%)anythingG6"6"[gl!#%!!!"'"'#!""""#""!#"""F)F'F*F+F& } {RTABLE M7R0 I5RTABLE_SAVE/15513896X*%)anythingG6"6"[gl!#%!!!"'"',$*$""$#"""""##!""""',$F(#F +F)F'F'F0F'F& } {RTABLE M7R0 I5RTABLE_SAVE/14559500X*%)anythingG6"6"[gl!#%!!!"'"'#"""""#""!#!""F)F+F*F'F& } {RTABLE M7R0 I5RTABLE_SAVE/14555628X*%)anythingG6"6"[gl!#%!!!"'"',$*$""$#"""""##!""""',$F(#F .F)F',$F(#F+F/,$F(#F+F)F2F& } {RTABLE M7R0 I5RTABLE_SAVE/15541876X*%)anythingG6"6"[gl!#%!!!"'"',$*$""'#"""""##F+F)F'F'F'F' F'F& }