Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
初级会员
注册日期: 2009-05-26
住址: 西南交大
年龄: 35
帖子: 5
声望力: 0 ![]() |
![]()
本人刚接触matlab不久,菜鸟级的,希望各位帮下,谢谢了
已知某非线性方程组如下: ff(1)=(3-5*x(1))*x(1)+1-2*x(2)=0 for k=2:9 ff(k)=(3-5*x(k))*x(k)+1-x(k-1)-2*x(k+1)=0 end ff(10)=(3-5*x(10))*x(10)+1-x(9)=0 试求该方程组的解。
__________________
本着虚心的心,向各位前辈学习,我会像蜗牛一样一步一步往上爬,在最高点乘着叶片往前.......[ |
![]() |
![]() |
![]() |
#2 |
普通会员
注册日期: 2008-08-17
年龄: 43
帖子: 77
声望力: 18 ![]() |
![]()
方程求解应该用mathematica,给出数值解方法,算出来1024组解(想算符号解的话把最开头第一个N去掉,估计电脑死机了也算不出来)
NSolve[Flatten[{Table[(3 - 5 Subscript[x, i]) Subscript[x, i] + 1 - Subscript[x, i - 1] - 2 Subscript[x, i + 1] == 0, {i, 2, 9}], (3 - 5 Subscript[x, 1]) Subscript[x, 1] + 1 - 2 Subscript[x, 2] == 0, (3 - 5 Subscript[x, 10]) Subscript[x, 10] + 1 - Subscript[x, 9] == 0}], Table[Subscript[x, i], {i, 10}]] |
![]() |
![]() |
![]() |
#3 |
初级会员
注册日期: 2009-05-26
住址: 西南交大
年龄: 35
帖子: 5
声望力: 0 ![]() |
![]()
谢谢了,非常感谢,我试试
__________________
本着虚心的心,向各位前辈学习,我会像蜗牛一样一步一步往上爬,在最高点乘着叶片往前.......[ |
![]() |
![]() |
![]() |
#4 |
初级会员
注册日期: 2009-05-26
住址: 西南交大
年龄: 35
帖子: 5
声望力: 0 ![]() |
![]()
我老师说一定要MATLAB做,各位帮帮忙
__________________
本着虚心的心,向各位前辈学习,我会像蜗牛一样一步一步往上爬,在最高点乘着叶片往前.......[ |
![]() |
![]() |
![]() |
#5 |
普通会员
注册日期: 2008-08-17
年龄: 43
帖子: 77
声望力: 18 ![]() |
![]()
只能解带初值的问题了,先创建函数:
%创建sol函数 function y=sol(a) y(1)=(3-5*a(1))*a(1)+1-2*a(2); for k=2:9 y(k)=(3-5*a(k))*a(k)+1-a(k-1)-2*a(k+1); end y(10)=(3-5*a(10))*a(10)+1-a(9); %保存下来,到matlab能识别的路径下 在主程序中调用: x=fsolve('sol',zeros(1,10)) 其中zeros(1,10)表示初值全为0,也可以换成你想要的初值,比如 换成ones(1,10), [1,2,3,……]自己按需要写吧。 |
![]() |
![]() |
![]() |
#6 |
普通会员
注册日期: 2008-08-17
年龄: 43
帖子: 77
声望力: 18 ![]() |
![]()
注意,这里只是给一个解,可不是所有解。
再者,fsolve在初始值为实数的时候求不出虚数解,你可以试一下 此帖于 2009-05-30 11:56 被 zsy312 编辑。 |
![]() |
![]() |
![]() |
#7 |
初级会员
注册日期: 2009-05-17
年龄: 39
帖子: 2
声望力: 0 ![]() |
![]() |
![]() |
![]() |