matlab后赋值解方程,跪求大神帮忙!!

我需要解一个方程,方程中的系数(方程y中系数a是由S替换的)是通过计算得到的,我解方程的部分是这么干的:%================================... 我需要解一个方程,方程中的系数(方程y中系数a是由S替换的)是通过计算得到的,我解方程的部分是这么干的:
%=============================================================================‍
%新阻抗的计算for i=1:3 S1 = daoshu(Sa);S2 = (S1).*G;%阻抗矩阵生成Sb = Sa.*G;Sz = sum(sum(S2));
S =(1/Sz^2+2953200+12974181.37)/10000; syms x y a;%定义求解变量y=-7.339e+004*x^4+1.417e+004*x^3-1107*x^2+13.3*x+23.97-a*x^2;%联立方程水泵选取KQW200/250-30/4y=subs(y,a,S);%将系数替换至方程内x1=real(double(solve(y,'x'))) ; %求解根并去掉虚数根x0=x1(x1>0);%保留正数根,即工作点流量Q
%=============================================================================
这样的确完成了循环解方程赋系数值,但是solve解的速度有点慢(外部还嵌套了1000次parfor循环),而且貌似是解析解再赋值得到数值解。我想采用fsolve解方程,但是fsolve命令怎么能让待解函数系数后进行赋值呢?X=fsolve('fun(x,a)',[]),这样使用时赋的系数a也不会识别,貌似整体都被单引号变成字符了。
小弟没系统学过Matlab,跪求怎么能用fsolve解后赋系数函数来提高计算速度!!!!!!
展开
Love_MyCindy
2014-01-10 · TA获得超过327个赞
知道答主
回答量:147
采纳率:100%
帮助的人:20.1万
展开全部
@echo off
echo.
echo.
set/p var1=请输入起始IP:
echo.
set/p var2=请输入终止IP:
echo.
for /f "tokens=1,2,3,4 delims=." %%a in ("%var1%") do (
set var4=%%a.%%b.%%c
set var5=%%d)
for /f "tokens=1,2,3,4 delims=." %%a in ("%var2%") do (
set var6=%%a.%%b.%%c
set var7=%%d)
if not %var4%==%var6% echo ErrorMessage:错误,不在同一网段! & pause>nul & exit
for /L %%i in (%var5%,1,%var7%) do (
ping -n 1 %var4%.%%i)
望采纳!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
WM_THU
2014-01-10 · TA获得超过7163个赞
知道大有可为答主
回答量:4285
采纳率:80%
帮助的人:3880万
展开全部
你的代码很乱,看不清楚本质。我只看见了一点:
X=fsolve('fun(x,a)',[])
你是想在解的时候就给a赋上具体的值,而不是保留a进行符号计算,对么?
更多追问追答
追问
恩,是的,就是想求数值解,不用符号计算,fsovle解之前对fun里边的方程系数赋值
追答

建议你用匿名函数的方法,不要用符号那一套。简单介绍如下

  1. 设已经定义了一个n元函数y = fun(x1, x2, x3);

  2. 固定x2=2, x3=1,只变化x1,如此定义:

    x2 = 2; x3 = 1;

    fun2 = @(x)fun(x, x2, x3);

    这样就得到了一个一元函数fun2。当然变量x2和x3的名字可以随便换。

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式