查看: 6088|回复: 6|关注: 0
打印 上一主题 下一主题

山东快乐扑克三时时彩: [已解决] fsolve求解大型非线性方程组

[复制链接]

新手

9 麦片

财富积分


快乐扑克3如何跟对子 www.vqxik.tw 050


10

主题

26

帖子

0

最佳答案
跳转到指定楼层
1#
各位大神好,小弟想写了一个计算程序求解一个大型的非线性方程组。其代码形式大概如下:
  • for in = 1:n
  •     eval(['p' num2str(in) '=0;']);
  •     for ix = 1:in
  •         eval(['syms x' num2str(ix) ';']);
  •         eval(['p' num2str(in) '= p' num2str(in) '+' num2str(in+1-ix) '*(x' num2str(ix) '+' num2str(ix) ')^2' ';']);
  •         eval(['equ{' num2str(in) '}=char(p' num2str(in) ');'])
  •     end
  •     equ{in} = ['p' num2str(in) '=' equ{in}];
  • end
  • solve(equ{:})

如果n很大的情况下,方程越来越大,equ{:}也越来越复杂,solve求得的解就不合理了。小弟只能将equ{n}内的方程拷贝出来做M成文件,用Fsolve来求解。但是如果我要对不同的参数运算多次,这样以来就要多次做M文件用solve求解,其过程太繁琐了工作量很大,能不能用matlab内的命令来实现做M文件并用fsolve求解的过程?求大神们指教。

论坛优秀回答者

1

主题

9787

帖子

1467

最佳答案
  • 关注者: 334
2#
发表于 2014-1-14 10:15:46 | 只看该作者 |此回复为最佳答案
你这个方程如果过令yi = (xi+i)^2,i = 1,2,...,n,则可以转化成一个线性方程Ay=P
A可以很容易构造:
warning('off','MATLAB:toeplitz:DiagonalConflict')
A = toeplitz(1:n,zeros(1,n));
对于已知的列向量P,可以直接求解:
y = A\p;
由于每一个yi在复数范围开平方都有两解,所以方程应该有2^n组解,其中一组是:
sqrt(y) - (1:n).'

新手

9 麦片

财富积分


050


10

主题

26

帖子

0

最佳答案
3#
 楼主| 发表于 2014-1-14 10:20:59 | 只看该作者
kaaaf123 发表于 2014-1-14 10:15
你这个方程如果过令yi = (xi+i)^2,i = 1,2,...,n,则可以转化成一个线性方程Ay=P
A可以很容易构造:
warning ...

谢谢你的回复,我给出的方程组只是一个大致的形式。真正的方程组远比这个复杂得多,可能不好转换成线性方程,所以才想通过fsolve来求解??!不知道能不能通过matlab语言自动生动M函数并用fsolve求解??!

论坛优秀回答者

1

主题

9787

帖子

1467

最佳答案
  • 关注者: 334
4#
发表于 2014-1-14 11:04:37 | 只看该作者
djxurui 发表于 2014-1-14 10:20
谢谢你的回复,我给出的方程组只是一个大致的形式。真正的方程组远比这个复杂得多,可能不好转换成线性方 ...

matlabFunction可以把符号表达式转化成matlab函数
不过你既然打算用fsolve解,就不要再用符号函数了,而建议你直接构建matlab函数
就像我2L的过程中,建立A的过程就没有用到符号计算,对于你的函数虽然可能方法不一样或者更复杂一些,但是同样可以不用符号计算

新手

9 麦片

财富积分


050


10

主题

26

帖子

0

最佳答案
5#
 楼主| 发表于 2014-1-14 14:14:28 | 只看该作者
kaaaf123 发表于 2014-1-14 11:04
matlabFunction可以把符号表达式转化成matlab函数
不过你既然打算用fsolve解,就不要再用符号函数了,而 ...

你好,你说的matlab函数是指M函数吗??

论坛优秀回答者

1

主题

9787

帖子

1467

最佳答案
  • 关注者: 334
6#
发表于 2014-1-14 14:44:39 | 只看该作者
djxurui 发表于 2014-1-14 14:14
你好,你说的matlab函数是指M函数吗??

是的,也包括匿名函数

新手

9 麦片

财富积分


050


10

主题

26

帖子

0

最佳答案
7#
 楼主| 发表于 2014-1-14 14:52:46 | 只看该作者
kaaaf123 发表于 2014-1-14 14:44
是的,也包括匿名函数

哦好,谢谢了,我再研究研究?。?!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

快速回复 快乐扑克3如何跟对子 返回列表