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

如题所述

含参数的方程组,在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)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-01-16
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就是了追问

能不能吧语言写成直接从excel中读取K1,K2,然后计算结果也写入excel中啊
能帮忙编写一下么

追答

鹅,我没试过Matlab通往Excel的接口……但是从excel导入到matlab我可以告诉你的……
Matlab菜单栏有个importdata,这里可以识别xls文件~

追问

提示错误,这是怎么回事

追答

噢~不是这么用的
你需要建一个fun.m
里面输入

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);
保存在works文件夹里(一般在Matlab安装目录下面有个这么个文件夹),或者保存在其他文件夹里,用Matlab的setPath指向这个文件夹。
然后在在命令栏里输入[x,y]=fun(多少多少,多少多少)
话说你没有学过m文件相关么

追问

没有哇,要不然问你这么详细还不会。。。。。

本回答被提问者和网友采纳
相似回答