equal
deleted
inserted
replaced
563 qed |
563 qed |
564 |
564 |
565 |
565 |
566 subsection "Derivative" |
566 subsection "Derivative" |
567 |
567 |
568 definition%important "jacobian f net = matrix(frechet_derivative f net)" |
568 definition\<^marker>\<open>tag important\<close> "jacobian f net = matrix(frechet_derivative f net)" |
569 |
569 |
570 proposition jacobian_works: |
570 proposition jacobian_works: |
571 "(f::(real^'a) \<Rightarrow> (real^'b)) differentiable net \<longleftrightarrow> |
571 "(f::(real^'a) \<Rightarrow> (real^'b)) differentiable net \<longleftrightarrow> |
572 (f has_derivative (\<lambda>h. (jacobian f net) *v h)) net" (is "?lhs = ?rhs") |
572 (f has_derivative (\<lambda>h. (jacobian f net) *v h)) net" (is "?lhs = ?rhs") |
573 proof |
573 proof |
589 shows "jacobian f (at x) $ k = 0" |
589 shows "jacobian f (at x) $ k = 0" |
590 using differential_zero_maxmin_component[of "axis k 1" e x f] assms |
590 using differential_zero_maxmin_component[of "axis k 1" e x f] assms |
591 vector_cart[of "\<lambda>j. frechet_derivative f (at x) j $ k"] |
591 vector_cart[of "\<lambda>j. frechet_derivative f (at x) j $ k"] |
592 by (simp add: Basis_vec_def axis_eq_axis inner_axis jacobian_def matrix_def) |
592 by (simp add: Basis_vec_def axis_eq_axis inner_axis jacobian_def matrix_def) |
593 |
593 |
594 subsection%unimportant\<open>Routine results connecting the types \<^typ>\<open>real^1\<close> and \<^typ>\<open>real\<close>\<close> |
594 subsection\<^marker>\<open>tag unimportant\<close>\<open>Routine results connecting the types \<^typ>\<open>real^1\<close> and \<^typ>\<open>real\<close>\<close> |
595 |
595 |
596 lemma vec_cbox_1_eq [simp]: |
596 lemma vec_cbox_1_eq [simp]: |
597 shows "vec ` cbox u v = cbox (vec u) (vec v ::real^1)" |
597 shows "vec ` cbox u v = cbox (vec u) (vec v ::real^1)" |
598 by (force simp: Basis_vec_def cart_eq_inner_axis [symmetric] mem_box) |
598 by (force simp: Basis_vec_def cart_eq_inner_axis [symmetric] mem_box) |
599 |
599 |