方程中参数未知怎么在MATLAB中表?
方程中参数未知怎么在MATLAB中表示
应该前面都没有问题吧。。 问题应该在[b,c,t]=solve('u=h','u1=0','a*f1=f2')上。我感觉(未找资料验证)在solve语句中,u和u1等作为符号型变量,它们并没有接受前面那些等式的赋值的。也就是solve里面的u和u1等,是重新定义的,跟前面的没有关系。
可以这么验证:(1)在command window中直接输入solve('u=h')结果是ans=h。。。。(2)输入solve('p*sin(x) = r'),也能求解,而不需在前面定义p、x和r,这说明是在solve中定义的符号变量。 。
这两点大体上验证了我前面的感觉。。 这个问题应该有比较科学的解决方式,可惜我不会。只提供一种最简单、最“野蛮”的的解决方式了:既然不能在solve中用u和u1等代替前面的表达式,那只能直接把表达式写入solve中了。。 。
相应的表达式可以从前面的语句中计算出来,直接copy进去就是了(确实有点长)。。 我放进去后程序如下: syms t a b c h,; u=a/(4*3*2*1)*t^4+b/(3*2*1)*t^3+c/(2*1)*t^2; u1=diff(u,1,t); u2=diff(u,2,t); f1=(1+(u1*u1))^0。
5; g=u2/(((1+u1*u1)^(3/2))); f2=diff(g,2,t); %[b,c,t]=solve('u-h','u1=0','a*f1-f2','b,c,t'); [b,c,t]=solve('a/(4*3*2*1)*t^4+b/(3*2*1)*t^3+c/(2*1)*t^2-h','1/6*a*t^3+1/2*b*t^2+c*t','a*(1+(1/6*a*t^3+1/2*b*t^2+c*t)^2)^(1/2)-a/(1+(1/6*a*t^3+1/2*b*t^2+c*t)^2)^(3/2)-9*(a*t+b)/(1+(1/6*a*t^3+1/2*b*t^2+c*t)^2)^(5/2)*(1/6*a*t^3+1/2*b*t^2+c*t)*(1/2*a*t^2+b*t+c)+15*(1/2*a*t^2+b*t+c)^3/(1+(1/6*a*t^3+1/2*b*t^2+c*t)^2)^(7/2)*(1/6*a*t^3+1/2*b*t^2+c*t)^2-3*(1/2*a*t^2+b*t+c)^3/(1+(1/6*a*t^3+1/2*b*t^2+c*t)^2)^(5/2)','b,c,t') 要特别注意,最后的[b,c,t]=。
。。这个式子后面一长串在matlab语句窗口中要整理到一行,不然会出错。(我忘了如何分行写长命令))。。还有那个长表达式,还不知道有没有搞错,我眼花了。
最后的结果: b = [ -2/3*a*6^(1/2)*(2^(1/2)*(h/a)^(1/2))^(1/2)] [ 2/3*a*6^(1/2)*(2^(1/2)*(h/a)^(1/2))^(1/2)] [ -2/3*i*a*6^(1/2)*(2^(1/2)*(h/a)^(1/2))^(1/2)] [ 2/3*i*a*6^(1/2)*(2^(1/2)*(h/a)^(1/2))^(1/2)] c = [ a*2^(1/2)*(h/a)^(1/2)] [ a*2^(1/2)*(h/a)^(1/2)] [ -a*2^(1/2)*(h/a)^(1/2)] [ -a*2^(1/2)*(h/a)^(1/2)] t = [ 6^(1/2)*(2^(1/2)*(h/a)^(1/2))^(1/2)] [ -6^(1/2)*(2^(1/2)*(h/a)^(1/2))^(1/2)] [ i*6^(1/2)*(2^(1/2)*(h/a)^(1/2))^(1/2)] [ -i*6^(1/2)*(2^(1/2)*(h/a)^(1/2))^(1/2)]。
答:很多人学数学容易犯的毛病是学题目,以为题目解决了就是数学学好了,因而不注意接受新的数学概念、数学方法。 引入参数方程来表示函数、表示曲线是一种新的方法,为了帮助...详情>>
答:详情>>
答:对于那些有志于穷尽数学奥秘的学生,他总是循循善诱地予以启发和教育,而对于那些急功近利、在学习上不肯刻苦钻研的人,则毫不客气地予以批评详情>>
答:补课是比较错误的方式。我一直到高中毕业没补过课。爸妈也不管我,随我学什么。我打游戏和化学都挺好。现在在大学读书,很深刻地感受到教育是钱买不来的。在实验室做小型的...详情>>