| Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) | 
![]()  | 
	
| 		
			
			 | 
		#1 | 
| 
			
			 初级会员 
			
			
			
			注册日期: 2009-03-27 
				
				年龄: 39 
				
					帖子: 3
				 
				
				
				声望力: 0 ![]()  | 
	
	
	
		
		
			
			 
			
			各位大侠,我在用ode45解常微分方程的时候遇到了这样一个问题,一直没想到解决的办法,还敬请各位高手能够帮帮忙,指点一二,看能不能把这个问题解决掉。小弟在此先行拜谢啦!! 
		
		
		
		
		
		
		
	问题是这样的:我要求解的微分方程方程是类似这样的 q=[a b c d e f g h k ]经过一些符号计算后得出 dx2=2*cos(a)-sin(c)+cos(b)*sin(g)-k (其中q是以时间t为变量的。dx2也是关于时间t的微分形式。)当然是有九个未知数,有九个方程了,形式都差不多。现在我想用ode45来进行数值积分求解,可是想ode45只能解类似这样的dX3=2*cos(q(1))-sin(q(3))+cos(q(2))*sin(q(6))-q(9)形式的方程。请问可以怎么办啊?由于dx2=2*cos(a)-sin(c)+cos(b)*sin(g)-k 是同过前面的符号计算得出的结果,所以不能自己重新编写。请问有什么方式可以把dx2的形式换成dX3的形式吗?或有其他的什么方法可以解决这个问题吗?再次拜谢各位了!!  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#2 | 
| 
			
			 高级会员 
			
			
			
			注册日期: 2008-11-07 
				住址: 湖南长沙 
				
				
					帖子: 233
				 
				
				
				声望力: 22 ![]()  | 
	
	
	
		
		
			
			 
			
			你就把9个未知数写成x=(x(1) x(2) x(3) x(4) x(5) x(6) x(7) x(8) x(9)) 
		
		
		
		
		
		
			写进M文件里 然后调用[x,t]=ode45('your_function','time initiation','x initiation',...) 
				__________________ 
		
		
		
		
	坚持就是胜利,努力就有奇迹。  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#3 | 
| 
			
			 初级会员 
			
			
			
			注册日期: 2009-03-27 
				
				年龄: 39 
				
					帖子: 3
				 
				
				
				声望力: 0 ![]()  | 
	
	
	
		
		
			
			 
			
			非常感谢楼上的热心帮助。这样解决我当然也是有想过。可是关键问题是dx2=2*cos(a)-sin(c)+cos(b)*sin(g)-k 是我通过前面的符号计算的得到了。所以也就不能“把9个未知数写成x=(x(1) x(2) x(3) x(4) x(5) x(6) x(7) x(8) x(9))写进M文件里”。也因此才一直没找到好的方法解决。不知还有没有其他的方法解决呢?
		 
		
		
		
		
		
		
		
	 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 |