中易网

Matlab求解多元多次方程组

答案:2  悬赏:50  
解决时间 2021-01-15 20:04
  • 提问者网友:雾里闻花香
  • 2021-01-15 07:11
Matlab求解多元多次方程组
最佳答案
  • 二级知识专家网友:一袍清酒付
  • 2021-01-15 08:16
建议用解非线性方程组的方法求解,fsolve()函数,先设定初值,知道解的大致的范围后,再以此值为初值,在设定的精度下求解。
  用matlab解一道复杂的多元非线性方程组;
  参考如下:
  建立 Myfun.m 文件
  function F = myfun(x,a)
  E = a(1);
  I = a(2);
  R0 = a(3);
  R1 = a(4);
  T = a(5);
  A = a(6);
  v = a(7);
  rho = a(8);
  F = [ (T - rho * A * v^2) * sin(x(3)) * x(1) - (T * cos(x(3)) + rho * A * v^2 - rho * A * v^2 * cos(x(3))) * x(2) - E*I/(R0 + R1);
  (1/3) * (T - rho * A * v^2) * sin(x(3)) * x(1)^3 - (1/2) * (T * cos(x(3)) + rho * A * v^2 - rho * A * v^2 * cos(x(3))) * x(2) * x(1)^2 - E* I * x(2);
  (T - rho * A * v^2) * sin(x(3)) * x(1)^2 - (T * cos(x(3)) + rho * A * v^2 - rho * A * v^2 * cos(x(3))) * x(2) * x(1) - E* I * x(3)];
  建立一个执行文件
  clc
  clear
  a = zeros(8);
  display('# Pls input the known parameters: #')
  a(1) = input('E = ');
  a(2) = input('I = ');
  a(3) = input('R0 = ');
  a(4) = input('R1 = ');
  a(5) = input('T = ');
  a(6) = input('A = ');
  a(7) = input('v = ');
  a(8) = input('rho = ');
  display('# Pls input the initial point: #')
  x0 = zeros(3);% Make a starting guess at the solution
  x0(1) = input('x1 = ');
  x0(2) = input('y1 = ');
  x0(3) = input('phi = ');
  options = optimset('Display','iter'); % Option to display output
  [x,fval] = fsolve(@(x) myfun(x,a),x0,options) % Call solver
  运行,输入已知的几个参数,再输入初始搜索点,即可。
全部回答
  • 1楼网友:不如潦草
  • 2021-01-15 08:41
一般是因为方程不收敛导致的

你试一下数值解法
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息