matlab问题紧急求解!请哪位高手帮帮忙啊!

f1=diff(f,x1);f2=diff(f,x2);其中f为很多因式相乘的二元函数(matlab无法完全显示表达式),f1与f2分别为其关于x1和x2的偏导。现要求的... f1=diff(f,x1); f2=diff(f,x2); 其中f为很多因式相乘的二元函数(matlab无法完全显示表达式),f1与f2分别为其关于x1和x2的偏导。现要求的问题是: 令f1=0,f2=0,求其组成的方程组的数值解!求MATLAB代码或者方法! 展开
 我来答
象祯石韶敏
2019-09-05 · TA获得超过3745个赞
知道大有可为答主
回答量:3140
采纳率:32%
帮助的人:227万
展开全部
给你例子看看吧
syms
x1
x2
f=x1^2+2*x2^2+6*x1*x2-8+(x1-6)*(x2-x1)*(x2+6)
f1=diff(f,x1)
f2=diff(f,x2)
[x1,x2]=solve(f1,f2,'x1','x2')
像这样简单的,可以使用solve直接求出来,但如果方程很复杂,solve是求不出来的,这是需要使用fsolve来数值求解了!
具体方法是
首先使用上面的方法求出两个导数,然后把他们复制出来,新建一个函数,写出函数文件,然后在使用fsolve求解
还拿上面的举例子
两个导数分别是
f1
=
2*x1
+
6*x2
-
(x1
-
6)*(x2
+
6)
-
(x1
-
x2)*(x2
+
6)
f2
=
6*x1
+
4*x2
+
(x1
-
6)*(x2
+
6)
-
(x1
-
x2)*(x1
-
6)
那么函数可写成
function
main
x=fsolve(@(x)myfun(x),[10,-10])
x=fsolve(@(x)myfun(x),[1,-1])
function
F=myfun(x)
F=[2*x(1)
+
6*x(2)
-
(x(1)
-
6)*(x(2)
+
6)
-
(x(1)
-
x(2))*(x(2)
+
6)
6*x(1)
+
4*x(2)
+
(x(1)
-
6)*(x(2)
+
6)
-
(x(1)
-
x(2))*(x(1)
-
6)];
这样只能求出实根,不能求虚根
祝你学习愉快!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式