Posts

  • Calc Eigenvalues and Eigenvectors of Matrix via Matlab or Python

  • Matlab code % Calc eigenvalues and eigenvectors of Hamiltonian syms Omega1 Omega2 H = zeros(4,'sym'); H(2,3) = Omega1; H(3,2) = Omega1; H(3,4) = Omega2; H(4,3) = Omega2; [V,D] = eig(H); disp(D); disp(V); Python code # coding: utf-8 import sympy as sp Omega1 = sp.symbols('Omega1') Omega2 = sp.symbols('Omega2') M = sp.zeros(4,4) M[1,2] = Omega1 M[2,1] = Omega1 M[2,3] = Omega2 M[3,2] = Omega2 print(M.eigenvals()) print(M.eigenvects())
  • Judge whether an integer is odd or not

  • # coding: utf-8 ''' file: test.py create on Tue Mar 26 8:00 2019 @author: Xiao Shang email: me@ishxiao.com note: Judge whether an integer is odd or not ''' # ver 0.1 def isOdd_1(i): if(i%2 == 1): return True else: return False # ver 0.2 def isOdd_2(i): return i%2 == 1 # ver 0.3 def isOdd_3(i): return i%2 == 1 or i%2 == -1 # ver 0.4 def isOdd_4(i): return i%2 != 0 # ver 0.5 def isOdd_5(i): return i>>1 << 1 != i # ver 0.6 def isOdd_6(i): return i&1 != 0
  • How to install package in Pythonista

  • 首先,启动Pythonista,然后左滑屏幕,调出console窗口,在底部>处输入 import requests as r; exec(r.get('https://raw.githubusercontent.com/ywangd/stash/master/getstash.py').text) 然后,点击屏幕左上角的,选择“This iPad”,运行“launch_stash.py”,即打开命令窗口,在此窗口中可运行“pip install 库名”等命令
  • Java基础知识

  • 1. 面向对象和面向过程的区别 面向过程 面向对象 2. Java 语言有哪些特点 3. 关于 JVM JDK 和 JRE 最详细通俗的解答 JVM JDK 和 JRE 4. Oracle JDK 和 OpenJDK 的对比 5. Java和C++的区别 6. 什么是 Java 程序的主类 应用程序和小程序的主类有何不同 7. Java 应用程序与小程序之间有那些差别 8. 字符型常量和字符串常量的区别 9. 构造器 Constructor 是否可被 override 10. 重载和重写的区别 11. Java 面向对象编程三大特性: 封装 继承 多态 封装 继承 多态 12. String StringBuffer 和 StringBuilder 的区别是什么 String 为什么是不可变的 13. 自动装箱与拆箱 14. 在一个静态方法内调用一个非静态成员为什么是非法的 15. 在 Java 中定义一个不做事且没有参数的构造方法的作用 16. import java和javax有什么区别 17. 接口和抽象类的区别是什么 18. 成员变量与局部变量的区别有那些 19. 创建一个对象用什么运算符?对象实体与对象引用有何不同? 20. 什么是方法的返回值?返回值在类的方法里的作用是什么? 21. 一个类的构造方法的作用是什么 若一个类没有声明构造方法,该程序能正确执行吗 ?为什么? 22. 构造方法有哪些特性 23. 静态方法和实例方法有何不同 24. 对象的相等与指向他们的引用相等,两者有什么不同? 25. 在调用子类构造方法之前会先调用父类没有参数的构造方法,其目的是? 26. == 与 equals(重要) 27. hashCode 与 equals (重要)...
  • 彩虹的数学

  • 将水滴看作圆球,光线入射到水滴中,经过一次反射,最后再经一次折射离开水滴。光路示意图如下图所示。 通过几何分析计算,可求得入射光偏转角\(\theta_D\)与入射角\(\theta_i\)的关系 \[\theta_D = 180^{\circ} + 2\theta_i - 4\arcsin(\frac{\sin\theta_i}{n})\] 其中,\(n\)为水的折射率,下图中\(n=4/3\). 净偏转角随入射角变化的曲线如上图所示。在入射角\(60^{\circ}\)附近,净偏转角最小,且净偏转角随入射角变化率几乎为0,大量不同入射角的光线最后具有几乎相同的出射方向。这就意味着,在这一出射方向,存在光线的密集效应。这就是我们看到彩虹所在的方向。 Python 3 code import numpy as np import matplotlib.pyplot as plt import os theta_i_list = np.arange(25,75,0.1) # def calc_theta_D(theta_i): n = 4/3 theta_r = np.rad2deg(np.arcsin(np.sin(np.deg2rad(theta_i))/n)) theta_D = 180 + 2*theta_i - 4*theta_r return theta_D # theta_D_list = calc_theta_D(theta_i_list) min_theta_D_idx = np.where(theta_D_list == np.min(theta_D_list))[0][0] min_theta_D = theta_D_list[min_theta_D_idx] min_theta_i = theta_i_list[min_theta_D_idx] fig = plt.figure() plt.plot(theta_i_list, theta_D_list) plt.xlabel(r'$\theta_i$') plt.ylabel(r'$\theta_D$') plt.axis([25, 75, 130, 170]) plt.plot([min_theta_i,min_theta_i],[min_theta_D, min_theta_D+20],'g--') str_note = '('+str(np.round(min_theta_i,2))+','+str(np.round(min_theta_D,2))+')' #plt.text(min_theta_i,min_theta_D-2, str_note) plt.scatter(min_theta_i,min_theta_D, s=40, c='r', alpha=0.5, marker='o') plt.annotate(str_note,(min_theta_i,min_theta_D), xycoords='data', xytext=(min_theta_i-10,min_theta_D+5), arrowprops = dict(arrowstyle = '->')) str_func = r"$\theta_D = 180 + 2\theta_i - 4\arcsin(\sin(\theta_i)/n)$"...