怎样用MATLAB批量求解一元三次方程x^3+a1*x^2+a2*x+a3=0,三个系数已知,但是是一系列值,请问怎样求解

如题,相当于很多个方程,谢谢!... 如题,相当于很多个方程,谢谢! 展开
dbb627
2011-09-16 · TA获得超过1.2万个赞
知道大有可为答主
回答量:2127
采纳率:88%
帮助的人:1365万
展开全部
>> a=magic(3);
X=solve('x^3+a1*x^2+a2*x+a3=0','x'宴缺者晌薯扮简);
X=inline(X);
a1=a(1,:);a2=a(2,:);a3=a(3,:);
root=feval(X,a1,a2,a3)

root =

-0.1615 - 0.7035i -1.5421 -0.4384 - 0.0000i
-0.1615 + 0.7035i 0.2711 - 2.4005i -1.0000 + 0.0000i
-7.6771 - 0.0000i 0.2711 + 2.4005i -4.5616
追问
能解释一下吗,我QQ:1402266560。我的悬赏加倍,多谢!
追答
a=magic(3);%3阶幻方 生成系数矩阵
X=solve('x^3+a1*x^2+a2*x+a3=0','x');%解方程
X=inline(X);%
a1=a(1,:);a2=a(2,:);a3=a(3,:);%系数赋值
root=feval(X,a1,a2,a3)%带入求根公式
久久不能记住
2011-09-16 · TA获得超过498个赞
知道小有建树答主
回答量:431
采纳率:0%
帮助的人:493万
展开全部
新版本的matlab已经不建议使用inline函数了,因为其对于较复杂的表差晌达式效率较虚滚锋低,建议备腊用匿名函数代替:
a=magic(3);
f=@(a1,a2,a3)eval(solve('x^3+a1*x^2+a2*x+a3'));
a1=a(1,:);a2=a(2,:);a3=a(3,:);
root=f(a(1,:),a(2,:),a(3,:))

root =

-0.1615 - 0.7035i -1.5421 -0.4384 - 0.0000i
-0.1615 + 0.7035i 0.2711 - 2.4005i -1.0000 + 0.0000i
-7.6771 - 0.0000i 0.2711 + 2.4005i -4.5616
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qxiaohu1
2011-09-16 · TA获得超过134个赞
知道答主
回答量:70
采纳率:0%
帮助的人:40.4万
展开全部
可用偏微分方法化成线性矩阵,然后在按线性矩阵求解就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式