## How to solve . Let U ∼ Uniform(0, 1). Find the distributions of Y = min{U, 1 − U}.

Let U ∼ Uniform(0, 1). Find the distributions of Y = min{U, 1 − U}.

## How can I solve the 2D diffusion equation over a region that contains mobile sinks?

I am looking for guidance on how to simulate the following system in 2D.

I have an outer region, assumed to be rectangular for simplicity. A substance is diffusing into this region from its boundary. Again for simplicity, we assume a constant input from one side of the boundary. Let’s think of it as a shallow, rectangular water tank with a semipermeable membrane along one side, through which a substance enters the tank at a constant rate.

Now comes the tricky part. Inside the region are small mobile sinks for the diffusing substance. Assume that they are circular and uniformly absorbent around their circumferences. Think of them as motile cells that absorb the diffusing substance and also swim around in response to its concentration gradient. We can assume that the fluid is incompressible and nonviscous. My goal is to study how the sink (position) dynamics and diffusion dynamics interact.

Mathematica seems to be able to handle PDEs on regions with curved boundaries, using FEMs. So, solving the diffusion equation on a rectangular region with a circular hole in it is no problem. But how can I make the position of the hole time-dependent and solve for this time dependence simultaneously with the diffusion dynamics?

## algorithm – Seeking advise how structure python to create a maze to solve with BFS

Seeking advise on how structure python to create a maze, solve it with BFS and to have basic navigation within maze with number of moves required to navigate. Use move along the path, Up, Left, Right, Down. Below is some code that I mangled together to think about and figure how to structure python for this BFS algorithm code.

Is anyone open to mentoring on this BFS algorithm navigation maze python structure?

``````import sys

def parse_map(filename):
with open(filename, "r") as f:
return ((char for char in line) for line in f.read().rstrip("n").split("n"))(3:)

def count_x(house_map):
return sum(( row.count('p') for row in house_map ) )

def printable_house_map(house_map):
return "n".join(("".join(row) for row in house_map))

return house_map(0:row) + (house_map(row)(0:col) + ('p',) + house_map(row)(col+1:)) + house_map(row+1:)

def successors(house_map):
return ( add_x(house_map, r, c) for r in range(0, len(house_map)) for c in range(0,len(house_map(0))) if house_map(r)(c) == '.' )

def is_goal(house_map, k):
return count_x(house_map) == k

def bfs_graph_search(house_map):
fringe = (initial_house_map)
if house_map.goal_test(node.state):
return fringe
fringe = deque((house_map))
visited = set()
while fringe:
fringe = fringe.popleft()
for child in node.expand(problem):
if child.state not in fringe and child not in visited:
if house_map.goal_test(child.state):
return child
fringe.append(child)
return None

def solve(initial_house_map,k):
fringe = (initial_house_map)
while len(fringe) > 0:
for new_house_map in successors( fringe.pop() ):
if is_goal(new_house_map,k):
return(new_house_map,True)
fringe.append(new_house_map)

if __name__ == "__main__":

house_map=parse_map('map1.txt')
k = 2
print ("Initial )house map:n" + printable_house_map(house_map) + "nnSearching for solution...n")
solution = solve(house_map,k)
print ("Found:")
print (printable_house_map(solution(0)) if solution(1) else "False")

class Agent:

def __init__(self, initial, goal=None):
self.initial = initial
self.goal = goal

def actions(self, state):
raise NotImplementedError

def result(self, state, action):
raise NotImplementedError

def goal_test(self, state):
if isinstance(self.goal, list):
return is_in(state, self.goal)
else:
return state == self.goal

def path_cost(self, c, state1, action, state2):
return c + 1

def value(self, state):
raise NotImplementedError

class FringeGraph:

def __init__(self, state, parent=None, action=None, path_cost=0):
self.state = state
self.parent = parent
self.action = action
self.path_cost = path_cost
self.depth = 0
if parent:
self.depth = parent.depth + 1

def path(self):
node, path_back = self, ()
while node:
path_back.append(node)
node = node.parent
return list(reversed(path_back))

def solution(self):
return (node.action for node in self.path()(1:))

def expand(self, agent):
return (self.child_node(agent, action)
for action in agent.actions(self.state))

def child_node(self, agent, action):
next_state = agent.result(self.state, action)
next_node = Node(next_state, self, action, problem.path_cost(self.path_cost, self.state, action, next_state))
return next_node

class Agent:

def __init__(self, initial, goal=None):
self.initial = initial
self.goal = goal

def actions(self, state):
raise NotImplementedError

def result(self, state, action):
raise NotImplementedError

def goal_test(self, state):
if isinstance(self.goal, list):
return is_in(state, self.goal)
else:
return state == self.goal

def path_cost(self, c, state1, action, state2):
return c + 1

def value(self, state):
raise NotImplementedError

class FringeGraph:

def __init__(self, state, parent=None, action=None, path_cost=0):
self.state = state
self.parent = parent
self.action = action
self.path_cost = path_cost
self.depth = 0
if parent:
self.depth = parent.depth + 1

def path(self):
node, path_back = self, ()
while node:
path_back.append(node)
node = node.parent
return list(reversed(path_back))

def solution(self):
return (node.action for node in self.path()(1:))

def expand(self, agent):
return (self.child_node(agent, action)
for action in agent.actions(self.state))

def child_node(self, agent, action):
next_state = agent.result(self.state, action)
next_node = Node(next_state, self, action, agent.path_cost(self.path_cost, self.state, action, next_state))
return next_node
``````

## oracle – Can LISTAGG solve this?

I have a table like below.

ID USER ITEM
12345 JESSE ITEM1
12345 JESSE ITEM3
12345 DON ITEM2
12346 DANNY ITEM4
12346 ELISA ITEM1
12347 ANDY ITEM2
12347 ANDY ITEM4

What im trying to achieve is.

ID USER ITEMS1 ITEMS2
12345 JESSE ITEM1 ITEM3
12345 DON ITEM2
12346 DANNY ITEM4
12346 ELISA ITEM1
12347 ANDY ITEM2 ITEM4

I’ve tried to use LISTAGG but cant get resuls like above. Or should i use something else?

Thanks!

Eliza

## bitcoin core development – so many “undefined reference to” after I add some codes, how to solve it?

I am just want to modify the hash algorithm of bitcoin-0.20 and I want to replace the previous hash algorithm to the x13hash algorithm. So I modify the source below,

1, I add the x13hash files to the bitcoin-0.20/src/crypto/x13hash, there are files below:

``````aes_helper.c  bmw.c       echo.c   groestl.c  hamsi_helper.c  keccak.c  shavite.c  skein.c  sph_blake.h  sph_cubehash.h  sph_fugue.h    sph_hamsi.h  sph_keccak.h  sph_shavite.h  sph_skein.h  sph_types.h
blake.c       cubehash.c  fugue.c  hamsi.c    jh.c            luffa.c   simd.c     sm3.c    sph_bmw.h    sph_echo.h      sph_groestl.h  sph_jh.h     sph_luffa.h   sph_simd.h     sph_sm3.h
``````

2, I add a new function in block.h below

``````class CBlockHeader
{
public:
int32_t nVersion;
uint256 hashPrevBlock;
uint256 hashMerkleRoot;
uint32_t nTime;
uint32_t nBits;
uint32_t nNonce;

{
SetNull();
}

template <typename Stream, typename Operation>
inline void SerializationOp(Stream& s, Operation ser_action) {
}

void SetNull()
{
nVersion = 0;
hashPrevBlock.SetNull();
hashMerkleRoot.SetNull();
nTime = 0;
nBits = 0;
nNonce = 0;
}

bool IsNull() const
{
return (nBits == 0);
}

uint256 GetHash() const;
uint256 GetNewPoWHash() const; //new hash function

int64_t GetBlockTime() const
{
return (int64_t)nTime;
}
};
``````

3, add the function in block.cpp

``````#include <hash.h>
#include <tinyformat.h>

#define BEGIN(a)            ((char*)&(a))
#define END(a)              ((char*)&((&(a))(1)))
#define UBEGIN(a)           ((unsigned char*)&(a))
#define UEND(a)             ((unsigned char*)&((&(a))(1)))
#define ARRAYLEN(array)     (sizeof(array)/sizeof((array)(0)))

{
return SerializeHash(*this);
}
{
return HashX13sm3(BEGIN(nVersion), END(nNonce));
}
``````
1. modify the hash.h below:

`````` #include <vector>
#include "crypto/x13hash/sph_blake.h"
#include "crypto/x13hash/sph_bmw.h"
#include "crypto/x13hash/sph_groestl.h"
#include "crypto/x13hash/sph_jh.h"
#include "crypto/x13hash/sph_keccak.h"
#include "crypto/x13hash/sph_skein.h"
#include "crypto/x13hash/sph_luffa.h"
#include "crypto/x13hash/sph_cubehash.h"
#include "crypto/x13hash/sph_shavite.h"
#include "crypto/x13hash/sph_simd.h"
#include "crypto/x13hash/sph_echo.h"
#include "crypto/x13hash/sph_hamsi.h"
#include "crypto/x13hash/sph_fugue.h"
#include "crypto/x13hash/sph_sm3.h"

#ifdef GLOBALDEFINED
#define GLOBAL
#else
#define GLOBAL extern
#endif

GLOBAL sph_blake512_context     z_blake;
GLOBAL sph_bmw512_context       z_bmw;
GLOBAL sph_groestl512_context   z_groestl;
GLOBAL sph_jh512_context        z_jh;
GLOBAL sph_keccak512_context    z_keccak;
GLOBAL sph_skein512_context     z_skein;
GLOBAL sph_luffa512_context     z_luffa;
GLOBAL sph_cubehash512_context  z_cubehash;
GLOBAL sph_shavite512_context   z_shavite;
GLOBAL sph_simd512_context      z_simd;
GLOBAL sph_echo512_context      z_echo;
GLOBAL sph_hamsi512_context     z_hamsi;
GLOBAL sph_fugue512_context     z_fugue;
#define fillz() do {
sph_blake512_init(&z_blake);
sph_bmw512_init(&z_bmw);
sph_groestl512_init(&z_groestl);
sph_jh512_init(&z_jh);
sph_keccak512_init(&z_keccak);
sph_skein512_init(&z_skein);
sph_luffa512_init(&z_luffa);
sph_cubehash512_init(&z_cubehash);
sph_shavite512_init(&z_shavite);
sph_simd512_init(&z_simd);
sph_echo512_init(&z_echo);
sph_hamsi512_init(&z_hamsi);
sph_fugue512_init(&z_fugue);
} while (0)
typedef uint256 ChainCode;
template<typename T1>
``````

inline uint256 HashX13(const T1 pbegin, const T1 pend)

{
sph_blake512_context ctx_blake;
sph_bmw512_context ctx_bmw;
sph_groestl512_context ctx_groestl;
sph_jh512_context ctx_jh;
sph_keccak512_context ctx_keccak;
sph_skein512_context ctx_skein;
sph_luffa512_context ctx_luffa;
sph_cubehash512_context ctx_cubehash;
sph_shavite512_context ctx_shavite;
sph_simd512_context ctx_simd;
sph_echo512_context ctx_echo;
sph_hamsi512_context ctx_hamsi;
sph_fugue512_context ctx_fugue;
static unsigned char pblank(1);

#ifndef QT_NO_DEBUG
//std::string strhash;
//strhash = “”;
#endif

`````` uint256 hash(34);

sph_blake512_init(&ctx_blake);
sph_blake512 (&ctx_blake, (pbegin == pend ? pblank : static_cast<const void*>(&pbegin(0))), (pend - pbegin) * sizeof(pbegin(0)));
sph_blake512_close(&ctx_blake, static_cast<void*>(&hash(0)));

sph_bmw512_init(&ctx_bmw);
sph_bmw512 (&ctx_bmw, static_cast<const void*>(&hash(0)), 64);
sph_bmw512_close(&ctx_bmw, static_cast<void*>(&hash(2)));

sph_groestl512_init(&ctx_groestl);
sph_groestl512 (&ctx_groestl, static_cast<const void*>(&hash(2)), 64);
sph_groestl512_close(&ctx_groestl, static_cast<void*>(&hash(4)));

sph_skein512_init(&ctx_skein);
sph_skein512 (&ctx_skein, static_cast<const void*>(&hash(4)), 64);
sph_skein512_close(&ctx_skein, static_cast<void*>(&hash(6)));

sph_jh512_init(&ctx_jh);
sph_jh512 (&ctx_jh, static_cast<const void*>(&hash(6)), 64);
sph_jh512_close(&ctx_jh, static_cast<void*>(&hash(8)));

sph_keccak512_init(&ctx_keccak);
sph_keccak512 (&ctx_keccak, static_cast<const void*>(&hash(8)), 64);
sph_keccak512_close(&ctx_keccak, static_cast<void*>(&hash(10)));

sph_luffa512_init(&ctx_luffa);
sph_luffa512 (&ctx_luffa, static_cast<void*>(&hash(10)), 64);
sph_luffa512_close(&ctx_luffa, static_cast<void*>(&hash(12)));

sph_cubehash512_init(&ctx_cubehash);
sph_cubehash512 (&ctx_cubehash, static_cast<const void*>(&hash(12)), 64);
sph_cubehash512_close(&ctx_cubehash, static_cast<void*>(&hash(14)));

sph_shavite512_init(&ctx_shavite);
sph_shavite512(&ctx_shavite, static_cast<const void*>(&hash(14)), 64);
sph_shavite512_close(&ctx_shavite, static_cast<void*>(&hash(16)));

sph_simd512_init(&ctx_simd);
sph_simd512 (&ctx_simd, static_cast<const void*>(&hash(16)), 64);
sph_simd512_close(&ctx_simd, static_cast<void*>(&hash(18)));

sph_echo512_init(&ctx_echo);
sph_echo512 (&ctx_echo, static_cast<const void*>(&hash(18)), 64);
sph_echo512_close(&ctx_echo, static_cast<void*>(&hash(20)));

sph_hamsi512_init(&ctx_hamsi);
sph_hamsi512 (&ctx_hamsi, static_cast<const void*>(&hash(20)), 64);
sph_hamsi512_close(&ctx_hamsi, static_cast<void*>(&hash(22)));

sph_fugue512_init(&ctx_fugue);
sph_fugue512 (&ctx_fugue, static_cast<const void*>(&hash(22)), 64);
sph_fugue512_close(&ctx_fugue, static_cast<void*>(&hash(24)));

return hash(24);
``````

}

template
inline uint256 HashX13sm3(const T1 pbegin, const T1 pend)
{
sph_blake512_context ctx_blake;
sph_bmw512_context ctx_bmw;
sph_groestl512_context ctx_groestl;
sph_jh512_context ctx_jh;
sph_keccak512_context ctx_keccak;
sph_skein512_context ctx_skein;
sm3_ctx_t ctx_sm3;
sph_cubehash512_context ctx_cubehash;
sph_shavite512_context ctx_shavite;
sph_simd512_context ctx_simd;
sph_echo512_context ctx_echo;
sph_hamsi512_context ctx_hamsi;
sph_fugue512_context ctx_fugue;
static unsigned char pblank(1);

#ifndef QT_NO_DEBUG
//std::string strhash;
//strhash = “”;
#endif

``````uint256 hash(34);

sph_blake512_init(&ctx_blake);
sph_blake512 (&ctx_blake, (pbegin == pend ? pblank : static_cast<const void*>(&pbegin(0))), (pend - pbegin) * sizeof(pbegin(0)));
sph_blake512_close(&ctx_blake, static_cast<void*>(&hash(0)));

sph_bmw512_init(&ctx_bmw);
sph_bmw512 (&ctx_bmw, static_cast<const void*>(&hash(0)), 64);
sph_bmw512_close(&ctx_bmw, static_cast<void*>(&hash(2)));

sph_groestl512_init(&ctx_groestl);
sph_groestl512 (&ctx_groestl, static_cast<const void*>(&hash(2)), 64);
sph_groestl512_close(&ctx_groestl, static_cast<void*>(&hash(4)));

sph_skein512_init(&ctx_skein);
sph_skein512 (&ctx_skein, static_cast<const void*>(&hash(4)), 64);
sph_skein512_close(&ctx_skein, static_cast<void*>(&hash(6)));

sph_jh512_init(&ctx_jh);
sph_jh512 (&ctx_jh, static_cast<const void*>(&hash(6)), 64);
sph_jh512_close(&ctx_jh, static_cast<void*>(&hash(8)));

sph_keccak512_init(&ctx_keccak);
sph_keccak512 (&ctx_keccak, static_cast<const void*>(&hash(8)), 64);
sph_keccak512_close(&ctx_keccak, static_cast<void*>(&hash(10)));

hash(12).SetNull(); //sm3 is 256bit, just in case
hash(13).SetNull();
sm3_init(&ctx_sm3);
sph_sm3(&ctx_sm3, static_cast<const void*>(&hash(10)), 64);
sph_sm3_close(&ctx_sm3, static_cast<void*>(&hash(12)));

sph_cubehash512_init(&ctx_cubehash);
sph_cubehash512 (&ctx_cubehash, static_cast<const void*>(&hash(12)), 64);
sph_cubehash512_close(&ctx_cubehash, static_cast<void*>(&hash(14)));

sph_shavite512_init(&ctx_shavite);
sph_shavite512(&ctx_shavite, static_cast<const void*>(&hash(14)), 64);
sph_shavite512_close(&ctx_shavite, static_cast<void*>(&hash(16)));

sph_simd512_init(&ctx_simd);
sph_simd512 (&ctx_simd, static_cast<const void*>(&hash(16)), 64);
sph_simd512_close(&ctx_simd, static_cast<void*>(&hash(18)));

sph_echo512_init(&ctx_echo);
sph_echo512 (&ctx_echo, static_cast<const void*>(&hash(18)), 64);
sph_echo512_close(&ctx_echo, static_cast<void*>(&hash(20)));

sph_hamsi512_init(&ctx_hamsi);
sph_hamsi512 (&ctx_hamsi, static_cast<const void*>(&hash(20)), 64);
sph_hamsi512_close(&ctx_hamsi, static_cast<void*>(&hash(22)));

sph_fugue512_init(&ctx_fugue);
sph_fugue512 (&ctx_fugue, static_cast<const void*>(&hash(22)), 64);
sph_fugue512_close(&ctx_fugue, static_cast<void*>(&hash(24)));

return hash(24);
} /* added new above */
typedef uint256 ChainCode;
``````

Finally then I make again ,it shows error below:

``````CXX      script/libbitcoin_common_a-descriptor.o
CXX      script/libbitcoin_common_a-sign.o
CXX      script/libbitcoin_common_a-signingprovider.o
CXX      script/libbitcoin_common_a-standard.o
AR       libbitcoin_util.a
AR       libbitcoin_consensus.a
AR       libbitcoin_wallet_tool.a
AR       libtest_util.a
CXXLD    libbitcoinconsensus.la
AR       libbitcoin_server.a
AR       libbitcoin_wallet.a
AR       libbitcoin_common.a
CXXLD    bitcoin-cli
CXXLD    bitcoin-tx
CXXLD    bitcoin-wallet
CXXLD    bitcoind
CXXLD    test/test_bitcoin
/usr/bin/ld: libbitcoin_consensus.a(libbitcoin_consensus_a-block.o): in function `uint256 HashX13sm3<char*>(char*, char*)':
/home/gilsun91/bitcoin-0.20/src/./hash.h:178: undefined reference to `sph_blake512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:179: undefined reference to `sph_blake512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:180: undefined reference to `sph_blake512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:182: undefined reference to `sph_bmw512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:183: undefined reference to `sph_bmw512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:184: undefined reference to `sph_bmw512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:186: undefined reference to `sph_groestl512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:187: undefined reference to `sph_groestl512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:188: undefined reference to `sph_groestl512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:190: undefined reference to `sph_skein512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:191: undefined reference to `sph_skein512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:192: undefined reference to `sph_skein512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:194: undefined reference to `sph_jh512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:195: undefined reference to `sph_jh512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:196: undefined reference to `sph_jh512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:198: undefined reference to `sph_keccak512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:199: undefined reference to `sph_keccak512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:200: undefined reference to `sph_keccak512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:204: undefined reference to `sm3_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:205: undefined reference to `sph_sm3'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:206: undefined reference to `sph_sm3_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:208: undefined reference to `sph_cubehash512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:209: undefined reference to `sph_cubehash512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:210: undefined reference to `sph_cubehash512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:212: undefined reference to `sph_shavite512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:213: undefined reference to `sph_shavite512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:214: undefined reference to `sph_shavite512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:216: undefined reference to `sph_simd512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:217: undefined reference to `sph_simd512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:218: undefined reference to `sph_simd512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:220: undefined reference to `sph_echo512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:221: undefined reference to `sph_echo512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:222: undefined reference to `sph_echo512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:224: undefined reference to `sph_hamsi512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:225: undefined reference to `sph_hamsi512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:226: undefined reference to `sph_hamsi512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:228: undefined reference to `sph_fugue512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:229: undefined reference to `sph_fugue512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:230: undefined reference to `sph_fugue512_close'
collect2: error: ld returned 1 exit status
make(2): *** (Makefile:7370: bitcoin-tx) Error 1
make(2): *** Waiting for unfinished jobs....
/usr/bin/ld: libbitcoin_consensus.a(libbitcoin_consensus_a-block.o): in function `uint256 HashX13sm3<char*>(char*, char*)':
/home/gilsun91/bitcoin-0.20/src/./hash.h:178: undefined reference to `sph_blake512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:179: undefined reference to `sph_blake512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:180: undefined reference to `sph_blake512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:182: undefined reference to `sph_bmw512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:183: undefined reference to `sph_bmw512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:184: undefined reference to `sph_bmw512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:186: undefined reference to `sph_groestl512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:187: undefined reference to `sph_groestl512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:188: undefined reference to `sph_groestl512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:190: undefined reference to `sph_skein512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:191: undefined reference to `sph_skein512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:192: undefined reference to `sph_skein512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:194: undefined reference to `sph_jh512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:195: undefined reference to `sph_jh512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:196: undefined reference to `sph_jh512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:198: undefined reference to `sph_keccak512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:199: undefined reference to `sph_keccak512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:200: undefined reference to `sph_keccak512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:204: undefined reference to `sm3_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:205: undefined reference to `sph_sm3'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:206: undefined reference to `sph_sm3_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:208: undefined reference to `sph_cubehash512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:209: undefined reference to `sph_cubehash512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:210: undefined reference to `sph_cubehash512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:212: undefined reference to `sph_shavite512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:213: undefined reference to `sph_shavite512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:214: undefined reference to `sph_shavite512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:216: undefined reference to `sph_simd512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:217: undefined reference to `sph_simd512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:218: undefined reference to `sph_simd512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:220: undefined reference to `sph_echo512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:221: undefined reference to `sph_echo512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:222: undefined reference to `sph_echo512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:224: undefined reference to `sph_hamsi512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:225: undefined reference to `sph_hamsi512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:226: undefined reference to `sph_hamsi512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:228: undefined reference to `sph_fugue512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:229: undefined reference to `sph_fugue512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:230: undefined reference to `sph_fugue512_close'
collect2: error: ld returned 1 exit status
make(2): *** (Makefile:7374: bitcoin-wallet) Error 1
/usr/bin/ld: libbitcoin_consensus.a(libbitcoin_consensus_a-block.o): in function `uint256 HashX13sm3<char*>(char*, char*)':
/home/gilsun91/bitcoin-0.20/src/./hash.h:178: undefined reference to `sph_blake512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:179: undefined reference to `sph_blake512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:180: undefined reference to `sph_blake512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:182: undefined reference to `sph_bmw512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:183: undefined reference to `sph_bmw512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:184: undefined reference to `sph_bmw512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:186: undefined reference to `sph_groestl512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:187: undefined reference to `sph_groestl512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:188: undefined reference to `sph_groestl512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:190: undefined reference to `sph_skein512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:191: undefined reference to `sph_skein512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:192: undefined reference to `sph_skein512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:194: undefined reference to `sph_jh512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:195: undefined reference to `sph_jh512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:196: undefined reference to `sph_jh512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:198: undefined reference to `sph_keccak512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:199: undefined reference to `sph_keccak512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:200: undefined reference to `sph_keccak512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:204: undefined reference to `sm3_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:205: undefined reference to `sph_sm3'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:206: undefined reference to `sph_sm3_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:208: undefined reference to `sph_cubehash512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:209: undefined reference to `sph_cubehash512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:210: undefined reference to `sph_cubehash512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:212: undefined reference to `sph_shavite512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:213: undefined reference to `sph_shavite512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:214: undefined reference to `sph_shavite512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:216: undefined reference to `sph_simd512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:217: undefined reference to `sph_simd512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:218: undefined reference to `sph_simd512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:220: undefined reference to `sph_echo512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:221: undefined reference to `sph_echo512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:222: undefined reference to `sph_echo512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:224: undefined reference to `sph_hamsi512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:225: undefined reference to `sph_hamsi512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:226: undefined reference to `sph_hamsi512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:228: undefined reference to `sph_fugue512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:229: undefined reference to `sph_fugue512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:230: undefined reference to `sph_fugue512_close'
collect2: error: ld returned 1 exit status
make(2): *** (Makefile:7378: bitcoind) Error 1
/usr/bin/ld: libbitcoin_consensus.a(libbitcoin_consensus_a-block.o): in function `uint256 HashX13sm3<char*>(char*, char*)':
/home/gilsun91/bitcoin-0.20/src/./hash.h:178: undefined reference to `sph_blake512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:179: undefined reference to `sph_blake512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:180: undefined reference to `sph_blake512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:182: undefined reference to `sph_bmw512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:183: undefined reference to `sph_bmw512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:184: undefined reference to `sph_bmw512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:186: undefined reference to `sph_groestl512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:187: undefined reference to `sph_groestl512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:188: undefined reference to `sph_groestl512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:190: undefined reference to `sph_skein512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:191: undefined reference to `sph_skein512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:192: undefined reference to `sph_skein512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:194: undefined reference to `sph_jh512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:195: undefined reference to `sph_jh512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:196: undefined reference to `sph_jh512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:198: undefined reference to `sph_keccak512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:199: undefined reference to `sph_keccak512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:200: undefined reference to `sph_keccak512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:204: undefined reference to `sm3_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:205: undefined reference to `sph_sm3'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:206: undefined reference to `sph_sm3_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:208: undefined reference to `sph_cubehash512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:209: undefined reference to `sph_cubehash512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:210: undefined reference to `sph_cubehash512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:212: undefined reference to `sph_shavite512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:213: undefined reference to `sph_shavite512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:214: undefined reference to `sph_shavite512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:216: undefined reference to `sph_simd512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:217: undefined reference to `sph_simd512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:218: undefined reference to `sph_simd512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:220: undefined reference to `sph_echo512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:221: undefined reference to `sph_echo512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:222: undefined reference to `sph_echo512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:224: undefined reference to `sph_hamsi512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:225: undefined reference to `sph_hamsi512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:226: undefined reference to `sph_hamsi512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:228: undefined reference to `sph_fugue512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:229: undefined reference to `sph_fugue512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:230: undefined reference to `sph_fugue512_close'
``````

## differential equations – How we can solve a function which contain another variable

``````Clear[picardSeries, iterate];
iterate[initial_, flow_, psi_, n_, t_] :=
initial +
Expand@Apply[Subtract,
Assuming[{Subscript[t, n + 1] > 0},
Integrate[flow[Subscript[t, n + 1], psi],
Subscript[t, n + 1]]] /. {{Subscript[t, n + 1] ->
Subscript[t, n]}, {Subscript[t, n + 1] -> 0}}]

picardSeries[initialVector_, flow_, n_, var_] :=
Module[{time},
Fold[iterate[initialVector, flow, #1, #2, time] &, initialVector,
Reverse[Range[n] - 1]] /. {Subscript[time, 0] -> var}]

flow[t_, f_] := 0.1 f - 0.1 f^2;
``````

If is work on function f which contain a variable t but my problem is, i want to call function f which contain some terms such as t/2 or t/3 etc. then plz suggest me, which type of changes require in above code.

## equation solving – Plot is fast, solve is slow – what optimizations can be made?

I’m trying to solve a 3D geometric problem in terms of 3 variables (rotational angles), and I think the end is finally in sight – quite literally, I can see on a 3D plot where my solution exists. When I tell Mathematica to solve for it, however, it computes all night with no apparent progress.

Disclaimers: I come from a programming background and understand optimization, but I’m VERY new to Mathematica and have no idea what kind of optimizations need to be made. I’m hoping you can help point me in the right direction.

I’ve defined two functions:

1. rotateVector – this takes an axis (must be a unit vector), an angle, and a vector to rotate, and rotates the vector about the axis by the angle. It’s a simple matrix multiplication, so I think it’s probably relatively optimized already. For my specific problem, I’m only working in the reals, and using the built-in Mathematica rotation seemed to add more complexity than I needed. If that was a dumb mistake, I’m happy to correct.
``````rotateVector(axis_, angle_, vector_) := Module(
{rotationMatrix, cosAngle, cosAngleC, sinAngle, ux, uy, uz},
ux = axis((1));
uy = axis((2));
uz = axis((3));
cosAngle = Cos(angle);
cosAngleC = 1 - cosAngle;
sinAngle = Sin(angle);
rotationMatrix = {{cosAngle + ux*ux*cosAngleC,
ux*uy*cosAngleC - uz*sinAngle,
ux*uz*cosAngleC + uy*sinAngle}, {uy*ux*cosAngleC + uz*sinAngle,
cosAngle + uy*uy*cosAngleC,
uy*uz*cosAngleC - ux*sinAngle}, {uz*ux*cosAngleC - uy*sinAngle,
uz*uy*cosAngleC + ux*sinAngle, cosAngle + uz*uz*cosAngleC}};
rotationMatrix.vector
)
``````
1. calcVectors2 (as in version 2) – this takes 3 arguments: an “outward angle” connected to the first transform, a “bend angle” connected to the 2nd, and a “crease angle”. It used to take a fourth, “crease amount,” but I found a way to solve for that.
``````calcVectors2(outAngle_, bendAngle_, creaseAngle_) := Module(
{p1, p1Out, p1Bend, crease, creaseOut, creaseBend, creaseMirror,
creaseMirrorProj, creaseOrth, p1Proj, p1Orth, creaseAmount,
afterCrease, afterCreaseMirror},
p1 = {0, 0, -1};
p1Out = rotateVector({1, 0, 0}, outAngle, p1);
p1Bend = rotateVector({0, 1, 0}, bendAngle, p1Out);
crease = rotateVector({0, 1, 0}, creaseAngle, p1);
creaseOut = rotateVector({1, 0, 0}, outAngle, crease);
creaseBend = rotateVector({0, 1, 0}, bendAngle, creaseOut);
creaseMirror = {-creaseBend((1)), creaseBend((2)),
creaseBend((3))};
creaseMirrorProj = Projection(creaseMirror, creaseBend);
creaseOrth = creaseMirror - creaseMirrorProj;
p1Proj = Projection(p1Bend, creaseBend);
p1Orth = p1Bend - p1Proj;
creaseAmount = -VectorAngle(p1Orth, creaseOrth);
afterCrease = rotateVector(creaseBend, creaseAmount, p1Bend);
afterCreaseMirror = {-afterCrease((1)), afterCrease((2)),
afterCrease((3))};
VectorAngle(afterCreaseMirror, creaseBend)
)
``````

If it helps to understand my problem: I take a unit vector pointing straight down in Z, called “p1.” I also generate a “crease vector” in the XZ plane (lower left quadrant), at angle “creaseAngle” to p1. I rotate both vectors about the X axis by “outward angle” (in the 0 to -Pi/2 range), then rotate about the Y axis by “bend angle” (0 to -Pi/4). Finally, I rotate the resultant “p1Bend” about the “creaseBend” by an amount I calculate to bring it into a plane defined between the “creaseBend” vector, and a mirror of that vector over the YZ plane. The final constraint: mirror the resultant vector that started as p1 over the YZ plane, and compare the angle between it and the “creaseBend” vector – I want it to be 0.

When I put in a fixed value for outAngle (-Pi/4), and “x” and “y” for my “bendAngle” and “creaseAngle”, I can see a plot where I can SEE the solution line – shaped roughly parabola-ish – this only takes a couple minutes or so to plot:

`Plot3D(calcVectors2(-Pi/4, x, y), {x, -((Pi)/3), (Pi)/ 12}, {y, -((Pi)/12), (7 (Pi))/12}, PlotPoints -> 70, MaxRecursion -> 7)`

When I tell it to solve, however… it just chugs and chugs and chugs and nothing seems to happen; I gave up after 8 hours. I tried to simplify the problem, and assign a fixed value (-Pi/8) for x so I could see just a slice, and again the 0 is very visually apparent:

`Plot(calcVectors2(-Pi/4, -Pi/8, x), {x, -Pi/12, 7 Pi/12})`

However, when I try to solve for `calcVectors2(-Pi/4, -Pi/8, x) == 0`, it just hangs again. Admittedly, I haven’t tried running this for 8 hours yet, but I figure I have some TERRIBLY unoptimized code, and I was wondering where I should look for speedups. I would love to be able to find a general solution for all 3 arguments to calcVectors2, but in terms of practical usage, the first 2 arguments are chosen for a given application. I guess what I’m ultimately after is a formula for the 3rd argument, using the first 2 arguments as input.

Where can I optimize so it doesn’t take forever to solve?

## python – How to numerically solve the linear dispersion relation?

The un-normalized linear dispersion relation (Lakhina, 2020) is given by:

$$1 + frac{1}{k^2 lambda_{de}^2} = frac{omega_{p1}^2}{(omega – kV_1)^2 – 3k^2v_{t1}^2} – frac{omega_{p2}^2}{(omega – kV_2)^2 – 3k^2v_{t2}^2}$$ $$(1)$$

where $$k$$ is the wavenumber, $$lambda_{de}$$ is the Debye length, $$omega_{pp}$$ is the proton plasma frequency, $$V$$ and $$v$$ are the drift speeds.

Normalizing equation (1), the linear dispersion relation, with the provided parameters in the paper gives:

$$1 + frac{1}{K^2} = frac{n_1^0}{(omega/omega_{pp} – U_1K)^2 – 3K^2sigma_1} + frac{n_2^0}{(omega/omega_{pp} – U_2K)^2 – 3K^2sigma_2}$$ $$(2)$$

where $$K = klambda_{de}$$, $$n_1^0$$ and $$n_2^0$$ are the normalised number densities, $$sigma_1$$ and $$sigma_2$$ are the normalised temperatures, and $$U_1$$ and $$U_2$$ are the proton beam speeds 1 and 2, respectively.

To re-plot panel (c) of Figure 1, which has both real and complex frequencies, I solved for $$omega/omega_{pp}$$ numerally using `fsolve` from the `scipy.optimize` package in Python.

(Figure taken from: Lakhina, 2020)

``````#Importing modules
from scipy.optimize import fsolve
import numpy as np
import matplotlib.pyplot as plt

#Parameters
n1 = 0.5
n2 = 0.5
sig1 = 0.1
sig2 = 0.1

#Function for the linear dispersion relation
def disprfun_n(Omega, K, U1, U2):

return 1 + 1/K**2 - n1/((Omega - U1*K)**2 - 3*(K**2)*sig1) - n2/((Omega - U2*K - 3*(K**2)*sig2)**2)

#Solving for the imaginary frequency
sol1 = fsolve(func=disprfun_n, x0=2e-20, args=(2.5e-20, -0.5, 0.5))
sol2 = fsolve(func=disprfun_n, x0=0.03, args=(0.2, -1, 1))
sol3 = fsolve(func=disprfun_n, x0=0.062, args=(0.4, -1, 1))
sol4 = fsolve(func=disprfun_n, x0=0.0099, args=(0.6, -1, 1))
sol5 = fsolve(func=disprfun_n,x0=0.016, args=(0.8, -1, 1))
sol6 = fsolve(func=disprfun_n, x0=0.025, args=(1, -1, 1))

#Plotting
x1 = np.array((3.5e-9, 0.2, 0.4, 0.6, 0.8, 1))
y1 = np.array((sol1, sol2, sol3, sol4, sol5, sol6))

plt.axhline(0, color = 'k', lw = 1)
plt.axvline(0, color = 'k', lw = 1)
plt.xlabel("k $$lambda_{de}$$")
plt.ylabel("$$omega_i/omega$$")
plt.plot(x1, y1, '--')
plt.plot(x1, -y1, '--')
``````

Output:

In the code, I first import the relevant Python modules. Then, define a function for the linear dispersion equation (6). In the code, Omega = $$omega_{pp}/omega$$, which is what we are solving for, and K = $$klambda_{de}$$. Next, solve for Omega using `fsolve`. Finally, the results are plotted. The output of the code shows the variation of the imaginary frequency. However, when compared to the imaginary frequency in Figure 1 (c), we can see that the shape is incorrect. The initial guesses, x0, were estimated using Figure 1 (c). In this special case, $$U_1 = -U_0$$ and $$U_2 = U_0$$.

I am not sure where I am going wrong.

Is there an easier way of re-producing Figure 1 (each panel)?

## How to solve differential equation with integrating factor method?

I need to solve first order differential equation of this type:

$$dfrac{partial T_1}{partial T_0} + a dfrac{T_1}{T_0} = f (T_0)$$

I know it need to be integrating factor method, but I don$$`$$t know how to write that in Wolfram Mathematica?

## Plugin to solve CONTINUOUS avg input

Plugin to solve CONTINUOUS avg input – WordPress Development Stack Exchange