有多个K值,如何用matlab写解二元二次方程组的代码

2025-05-14 19:41:13
推荐回答(2个)
回答1:

含参数的方程组,在matlab中,可以使用solve函数求解。
解多元方程组,solve函数调用格式如下:
[y1,...,yN] = solve(eqns,vars)

给出示例如下:
syms a b k
[b, a] = solve(a^2/16 + b^2/4 == 1, b == k*a , b, a);%2元2次方程组
b=simple(b),a=simple(a)

解得椭圆与直线交点:
b =
4*k*(1/(4*k^2 + 1))^(1/2)
-4*k*(1/(4*k^2 + 1))^(1/2)

a =
4*(1/(4*k^2 + 1))^(1/2)
-4*(1/(4*k^2 + 1))^(1/2)

回答2:

function [x1,y1]=fun(k1,k2);
%输入你表中的k1,k2就会求出来了
syms x;
syms y;
[x2,y2]=solve(y*(100-x)/((40-x-y)^2)==k1,(x-y)*(100-x)/(40-x-y)/(10-x+y)==k2);
x1=double(x2);
y1=double(y2);
例子
>>[x,y]=fun(6.141e23,1.308e18);
x =

25.0000 - 0.0000i
40.0000 + 0.0000i
25.0000 + 0.0000i

y =

15.0000 + 0.0000i
0.0000
15.0000 - 0.0000i

PS.顺便~二元二次方程组最多可以有四组根~这里出现重根或者奇异根所以可能会出现3组,如果遇到0.0000i的话说明它很可能是实解,你忽略i就是了