matlab 一元方程求解,如何求解出这个一元方程的所有解

T=[-7.96870652074371e-05,0.000510728291346416;0.000151475553124232,3.20199086056143e-05;3.21565182869639e-05,-0.000463197744425942;0.000263127498248740,-7.96320365188935e-05;-3.21565182869639e-05,0.000463197744425942;-0.000263127498248740,7.96320365188935e-05;7.96870652074371e-05,-0.000510728291346416;-0.000151475553124232,-3.20199086056143e-05];

F=[0;0;0;0;0;-38494;0;-38494];

% % TC=F,T是8*2矩阵,C是2*1矩阵,F是8*1矩阵;

fun1=@(C) sum(((C(1)/(1-C(2)^2)).*T(:,1)+(C(1)*C(2)/(1-C(2)^2)).*T(:,2)-F(:,1)).^2);

fun=@(C) (C(1)/(1-C(2)^2)).*T(:,1)+(C(1)*C(2)/(1-C(2)^2)).*T(:,2)-F(:,1);

% % fun1是fun中各向量的平方之和

lb=[1e9,-0.5];

ub=[1e11,0.5];

options=optimoptions('particleswarm','display','off'); %粒子群算法

nars=2; % 未知量个数

C0=particleswarm(fun1,nars,lb,ub,options);%求初值

start_num=2000; % 计算起始点个数

opts=optimoptions(@lsqnonlin ,'Algorithm','trust-region-reflective','Display','off');

problem=createOptimProblem('lsqnonlin','x0',C0,'objective',fun,'lb',lb,'ub',ub,'options',opts);

% % 最小二乘法,给定初值

gs=MultiStart('UseParallel',true,'Display','iter');% 开启并行计算

parpool

[C,fval,exitflag,output,manymins]=run(gs,problem,start_num);

delete(gcp) %关闭并行计算

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值